PluginService.h File Reference

#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 Documentation

#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.

#define _PLUGINSVC_FACTORY_WITH_ID ( type,
id,
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::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.

#define PLUGINSVC_CNAME ( name,
serial   )     name ## _dict ## serial

Definition at line 373 of file PluginService.h.

#define PLUGINSVC_FACTORY ( type,
signature   )     _PLUGINSVC_FACTORY(type, signature, __LINE__)

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.


Generated on Tue Jul 5 16:04:14 2011 for ROOT_528-00b_version by  doxygen 1.5.1