From: mishas Date: Fri, 21 Sep 2007 05:58:52 +0000 (+0000) Subject: Played with BasicItemFactory: X-Git-Url: http://git.maemo.org/git/?p=simple-launcher;a=commitdiff_plain;h=4a70560b26063176efba62fba8dd9f32e3d328fc Played with BasicItemFactory: * 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 --- diff --git a/misc/BasicItem.h b/misc/BasicItem.h index 5c3cca9..037f9b3 100644 --- a/misc/BasicItem.h +++ b/misc/BasicItem.h @@ -62,16 +62,22 @@ class BasicItemFactory { 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 ourFactories; + static std::map ourFactories; }; struct BasicItemCollection {