* added a virtual destructor (good for abstract classes :))
* added a method for creating an item using factory name and item's id
* hid createItem method (as I want it to be used from within BasicItemFactory::create method only)
* addedd deRegisterFactory method (I'm not sure if it's really needed or how to properly implement it ;(
* added 'static' to ourFactories definition (fixed a problem)
git-svn-id: file:///svnroot/simple-launcher/trunk@227
3ba93dab-e023-0410-b42a-
de7732cf370a
private:
BasicItemFactory();
+ virtual ~BasicItemFactory();
+
+public:
+ static BasicItem *create(const std::string& factoryName, const std::string& itemID);
+
public:
virtual const string::std& factoryName() const = 0;
+protected:
virtual BasicItem *createItem(const std::string&) const = 0;
-protected:
static void registerFactory(const std::string&, BasicItemFactory *);
+ static void deRegisterFactory(const std::string&, BasicItemFactory *);
protected:
- std::map<std::string, BasicItemFactory *> ourFactories;
+ static std::map<std::string, BasicItemFactory *> ourFactories;
};
struct BasicItemCollection {