#pragma once #include "Utilities\commondefs.hpp" #include #include #include /* unofficial - from http://arcticinteractive.com/static/boost/libs/factory/doc/html/index.html */ //#include #include #include #include using namespace boost::factory; #ifdef __INPUT_RAW_EVENT_FACTORY_CPP_ #define RAW_EVENT_FACTORY_DECL FDX_DLL_EXPORT #else #define RAW_EVENT_FACTORY_DECL FDX_DLL_IMPORT #endif namespace Input { class RawEvent; class RawEventFactory { public: DECL_CLASS_COLLECTIONS(RawEventFactory); typedef RawEvent factory_base_type; typedef factory_base_type * factory_return_type; typedef factory < factory_return_type (const parameter_strings & parms) ,id_type ,map_type ,error_policy > raw_event_factory_type; private: RAW_EVENT_FACTORY_DECL RawEventFactory(void); // force use of singleton by making constructor private RAW_EVENT_FACTORY_DECL ~RawEventFactory(void); raw_event_factory_type reFactory; public: RAW_EVENT_FACTORY_DECL static RawEventFactory * theFactory(); RAW_EVENT_FACTORY_DECL static factory_return_type create(const std::string &evType, const parameter_strings &parms); RAW_EVENT_FACTORY_DECL static void registerForSerialization(); }; }