#include "Reflex/Builder/NamespaceBuilder.h"
#include "Reflex/Builder/FunctionBuilder.h"
#include "Reflex/ValueObject.h"
#include "Reflex/Tools.h"
#include <string>
#include <sstream>
Go to the source code of this file.
Namespaces | |
namespace | Reflex |
Classes | |
class | Reflex::PluginService |
Defines | |
#define | PLUGINSVC_FACTORY_NS "__pf__" |
#define | PLUGINSVC_CNAME(name, serial) name ## _dict ## serial |
#define | PLUGINSVC_FACTORY(type, signature) _PLUGINSVC_FACTORY(type, signature, __LINE__) |
#define | PLUGINSVC_FACTORY_WITH_ID(type, id, signature) _PLUGINSVC_FACTORY_WITH_ID(type, id, signature, __LINE__) |
#define | _PLUGINSVC_FACTORY(type, signature, serial) |
#define | _PLUGINSVC_FACTORY_WITH_ID(type, id, signature, serial) |
#define _PLUGINSVC_FACTORY | ( | type, | |||
signature, | |||||
serial | ) |
Value:
namespace { \ struct PLUGINSVC_CNAME (type, serial) { \ PLUGINSVC_CNAME(type, serial) () { \ std::string name = Reflex::GetType < type > ().Name(Reflex::SCOPED); \ Reflex::Type sig = Reflex::FunctionDistiller < signature > ::Get(); \ std::string fname = (std::string(PLUGINSVC_FACTORY_NS "::") + Reflex::PluginService::FactoryName(name)); \ Reflex::FunctionBuilder(sig, fname.c_str(), \ Factory < type, signature > ::Func, 0, "", Reflex::PUBLIC) \ .AddProperty("name", name); \ if (Reflex::PluginService::Debug()) { std::cout << "PluginService: Declared factory for class " << name << " with signature " << sig.Name() << std::endl; } \ } \ }; \ PLUGINSVC_CNAME(type, serial) PLUGINSVC_CNAME(s_ ## type, serial); \ }
Definition at line 377 of file PluginService.h.
Value:
namespace { \ struct PLUGINSVC_CNAME (type, serial) { \ PLUGINSVC_CNAME(type, serial) () { \ std::string name = Reflex::GetType < type > ().Name(Reflex::SCOPED); \ Reflex::Type sig = Reflex::FunctionDistiller < signature > ::Get(); \ std::stringstream s; s << id; \ std::string fname = (std::string(PLUGINSVC_FACTORY_NS "::") + Reflex::PluginService::FactoryName(s.str())); \ Reflex::FunctionBuilder(sig, fname.c_str(), \ Factory < type, signature > ::Func, 0, "", Reflex::PUBLIC) \ .AddProperty("name", name) \ .AddProperty("id", id); \ if (Reflex::PluginService::Debug()) { std::cout << "PluginService: Declared factory for id " << fname << " with signature " << sig.Name() << std::endl; } \ } \ }; \ PLUGINSVC_CNAME(type, serial) PLUGINSVC_CNAME(s_ ## type, serial); \ }
Definition at line 393 of file PluginService.h.
Definition at line 373 of file PluginService.h.
Definition at line 374 of file PluginService.h.
#define PLUGINSVC_FACTORY_NS "__pf__" |
Definition at line 23 of file PluginService.h.
#define PLUGINSVC_FACTORY_WITH_ID | ( | type, | |||
id, | |||||
signature | ) | _PLUGINSVC_FACTORY_WITH_ID(type, id, signature, __LINE__) |
Definition at line 375 of file PluginService.h.