X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=kernel%2Fsrc%2FbbtkPackage.h;h=4c0b70534cf890d37f22f4f0a43c7b73bcfc3372;hb=c2a4b1893412e50a3d9abff221938a2d16c4a7cb;hp=3b4d8dcf3082ded00d4dc4cb4610964283f46db4;hpb=2d76cd309d74d5f83d701d6bb0a4140d5d122b36;p=bbtk.git diff --git a/kernel/src/bbtkPackage.h b/kernel/src/bbtkPackage.h index 3b4d8dc..4c0b705 100644 --- a/kernel/src/bbtkPackage.h +++ b/kernel/src/bbtkPackage.h @@ -3,8 +3,8 @@ Program: bbtk Module: $RCSfile: bbtkPackage.h,v $ Language: C++ - Date: $Date: 2008/01/30 09:28:15 $ - Version: $Revision: 1.2 $ + Date: $Date: 2008/04/09 11:16:57 $ + Version: $Revision: 1.7 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See doc/license.txt or @@ -47,8 +47,8 @@ namespace bbtk /// Returns the author of the package const std::string& GetAuthor() const { return mAuthor; } - /// Returns the keyword of the package - const std::string& GetKeyword() const { return mKeyword; } + /// Returns the category of the package + const std::string& GetCategory() const { return mCategory; } /// Returns the description of the package const std::string& GetDescription() const { return mDescription; } @@ -65,9 +65,19 @@ namespace bbtk BlackBox* NewBlackBox(const std::string& type, const std::string& name) const; - BlackBox* NewAdaptor(TypeInfo typein, - TypeInfo typeout, - const std::string& name) const; + BlackBox* NewAdaptor(const DataInfo& typein, + const DataInfo& typeout, + const std::string& name) const; + + BlackBox* NewWidgetAdaptor(const DataInfo& typein, + const DataInfo& typeout, + const std::string& name) const; + bool FindAdaptor(const DataInfo& typein, + const DataInfo& typeout, + std::string& adaptor) const; + bool FindWidgetAdaptor(const DataInfo& typein, + const DataInfo& typeout, + std::string& adaptor) const; bool RegisterBlackBox(BlackBoxDescriptor*); void UnRegisterBlackBox(const std::string& name); @@ -100,14 +110,67 @@ namespace bbtk /// Changes the name of a black box type void ChangeBlackBoxName( const std::string& oldname, const std::string& newname ); + /// The type of map of descriptors + typedef std::map< std::string, BlackBoxDescriptor*> BlackBoxMapType; + const BlackBoxMapType& GetBlackBoxMap() const { return mBlackBoxMap; } + BlackBoxMapType& GetBlackBoxMap() { return mBlackBoxMap; } + + /// The type of key in the map of adaptor descriptors + class AdaptorKey + { + public: + AdaptorKey( const DataInfo& typein, const DataInfo& typeout, + BlackBoxDescriptor::Kind kind ) + : mTypeIn(typein), mTypeOut(typeout), mKind(kind) {} + + bool operator< ( const AdaptorKey& k ) const + { + return ( ( mKind < k.mKind ) || + ( ( mKind == k.mKind ) && + ( ( mTypeIn < k.mTypeIn ) || + ( ( mTypeIn == k.mTypeIn ) && + ( mTypeOut < k.mTypeOut ) ) ) ) ); + } + + bool operator== ( const AdaptorKey& k ) const + { + return ( ( mKind == k.mKind ) && + ( mTypeIn == k.mTypeIn ) && + ( mTypeOut == k.mTypeOut ) ); + } + DataInfo mTypeIn; + DataInfo mTypeOut; + BlackBoxDescriptor::Kind mKind; + }; + + /// The type of map of adaptor descriptors + typedef std::map< AdaptorKey, BlackBoxDescriptor*> AdaptorMapType; + + + const AdaptorMapType& GetAdaptorMap() const { return mAdaptorMap; } + + + // Factories management + /// Adds the factory to the set of factories which use the package + void AddFactory(Factory* f) { mFactorySet.insert(f); } + /// Removes the factory from the set of factories which use the package + void RemoveFactory(Factory* f) { mFactorySet.erase(f); } + + /// Gets the set of factories which use the package + std::set& GetFactorySet() { return mFactorySet; } + /// Gets the set of factories which use the package (const) + const std::set& GetFactorySet() const { return mFactorySet; } + + void CheckBoxes() const; private: + /// The name of the package std::string mName; /// The author of the package std::string mAuthor; - /// The keywords of the package - std::string mKeyword; + /// The categories of the package + std::string mCategory; /// The description of the package std::string mDescription; /// The version of the package @@ -120,43 +183,21 @@ namespace bbtk /// (path relative to bbtk doc root) std::string mDocRelativeURL; - - /// The type of map of descriptors - typedef std::map< std::string, BlackBoxDescriptor*> BlackBoxMapType; /// The map of black boxes descriptors BlackBoxMapType mBlackBoxMap; - /// The type of key in the map of adaptor descriptors - class AdaptorKey - { - public: - AdaptorKey( TypeInfo typein, TypeInfo typeout) - : mTypeIn(typein.name()), mTypeOut(typeout.name()) {} - - bool operator< ( const AdaptorKey& k ) const - { - // return ( ( mTypeIn.before(k.mTypeIn) ) || - // ( ( mTypeIn == k.mTypeIn ) && - // ( mTypeOut.before(k.mTypeOut) ) ) ); - return ( ( mTypeIn < k.mTypeIn ) || - ( ( mTypeIn == k.mTypeIn ) && - ( mTypeOut < k.mTypeOut ) ) ); - } - - private: - // TypeInfo mTypeIn; - // TypeInfo mTypeOut; - std::string mTypeIn; - std::string mTypeOut; - }; - - //typedef std::string AdaptorKey; - /// The type of map of adaptor descriptors - typedef std::map< AdaptorKey, BlackBoxDescriptor*> AdaptorMapType; + public: + + private: /// The map of adaptors descriptors AdaptorMapType mAdaptorMap; + + + /// The set of factories which contain the package + std::set mFactorySet; + }; // EO class Package //====================================================================