Program: bbtk
Module: $RCSfile: bbtkBlackBoxDescriptor.h,v $
Language: C++
- Date: $Date: 2008/02/05 12:16:55 $
- Version: $Revision: 1.4 $
+ Date: $Date: 2008/04/18 12:59:15 $
+ Version: $Revision: 1.9 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#ifndef __bbtkBlackBoxDescriptor_h__
#define __bbtkBlackBoxDescriptor_h__
+#include "bbtkObject.h"
#include "bbtkBlackBoxInputDescriptor.h"
#include "bbtkBlackBoxOutputDescriptor.h"
#include <map>
class BlackBox;
class Package;
+ BBTK_FORWARD_DECLARE_POINTER(BlackBox);
+ BBTK_FORWARD_DECLARE_POINTER(Package);
//==========================================================================
- class BBTK_EXPORT BlackBoxDescriptor
+ class BBTK_EXPORT BlackBoxDescriptor : public Object
{
+ BBTK_ABSTRACT_OBJECT_INTERFACE(BlackBoxDescriptor);
public:
/// The type of descriptor of inputs
typedef BlackBoxInputDescriptor InputDescriptor;
/// The kinds of black box
typedef enum
{
- STANDARD,
- ADAPTOR,
- DEFAULT_ADAPTOR
+ STANDARD=0,
+ ADAPTOR=1,
+ DEFAULT_ADAPTOR=2,
+ WIDGET_ADAPTOR=3,
+ DEFAULT_WIDGET_ADAPTOR=4
}
Kind;
- /// Default ctor
- BlackBoxDescriptor();
- /// Default dtor
- virtual ~BlackBoxDescriptor();
- /// Creates an instance with name boxname of the BlackBox
+ /// Releases a descriptor
+ // static void Release(BlackBoxDescriptor::WeakPointer);
+
+ /// Creates an instance with name boxname of the BlackBox
/// of which this is the descriptor
- virtual BlackBox* CreateInstance(const std::string& boxname) = 0;
+ virtual BlackBoxPointer NewBlackBox(const std::string& boxname) = 0;
/// Returns the name of the **TYPE** of the black box
const std::string& GetTypeName() const { return mTypeName; }
+ /// Returns the full name of the **TYPE** of the black box (+package name)
+ std::string GetFullTypeName() const;
+
/// Returns the description of the BlackBox
const std::string& GetDescription() const { return mDescription; }
/// Returns the category(s) of the BlackBox
const std::string& GetCategory() const { return mCategory; }
- /// Returns the Package to which the box belongs
- Package* GetPackage() { return mPackage; }
-
- /// Returns the Package to which the box belongs
- const Package* GetPackage() const { return mPackage; }
+ /// Returns the Package to which the box belongs (const pointer)
+ PackagePointer GetPackage() const { return mPackage; }
/// Returns the kind of box
Kind GetKind() const { return mKind; }
void AddToCategory( const std::string&, bool clear = false );
/// Sets the Package to which the box belongs
- void SetPackage(Package *package) { mPackage = package; }
+ void SetPackage(PackagePointer package) { mPackage = package; }
/// Sets the kind of box
void SetKind(Kind kind) { mKind = kind; }
int detail, int level,
const std::string& output_dir = "",
bool relative_link = false );
+ ///
+ virtual void Check(bool recursive=true) const;
protected:
/// Adds an input descriptor
std::string mAuthor;
/// The category of the black box
std::string mCategory;
- /// The kind of box
+ /// The kind of box (standard / adaptor)
Kind mKind;
/// The Package to which the box belongs
- Package *mPackage;
+ PackagePointer mPackage;
/// The inputs
InputDescriptorMapType mInput;
/// The outputs
OutputDescriptorMapType mOutput;
-
+
};
// class BlackBoxDescriptor
//==========================================================================