X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdynamicobjectloader.h;h=ee1827bbd067f10e32123bde3e484743e64d0495;hb=daca21051927eabee098e422fe5a0990acacfb96;hp=e29633d7b6724ab7bc39071a39938887e851dcf3;hpb=6e78ca102c93c2bab2f8f68f71879baf40225a78;p=libs%2Fdatafile.git diff --git a/source/dynamicobjectloader.h b/source/dynamicobjectloader.h index e29633d..ee1827b 100644 --- a/source/dynamicobjectloader.h +++ b/source/dynamicobjectloader.h @@ -31,8 +31,8 @@ protected: typedef Msp::TypeRegistry TypeRegistry; Collection *coll; -private: T *object; +private: Loader *obj_loader; std::function store_func; @@ -50,9 +50,10 @@ public: T *get_object() { T *o = object; object = 0; return o; } T *store_object(Collection &, const std::string &); -private: - void type(const Symbol &); +protected: + virtual void type(const Symbol &); +private: template typename std::enable_if::value, typename U::Loader *>::type create_object_loader(U &obj) const; @@ -70,8 +71,8 @@ Loader::ActionMap DynamicObjectLoader::shared_actions; template DynamicObjectLoader::DynamicObjectLoader(Collection *c): coll(c), - object(0), - obj_loader(0) + object(nullptr), + obj_loader(nullptr) { set_actions(shared_actions); }