|
|
Go to the documentation of this file. 1 #ifndef Fireworks_Core_register_dataproxybuilder_macro_h 2 #define Fireworks_Core_register_dataproxybuilder_macro_h 23 #include "boost/lexical_cast.hpp" 28 #define REGISTER_PROXYBUILDER_METHODS() \ 29 const std::string& typeName() const { return classTypeName(); } \ 30 const std::string& view() const { return classView();} \ 31 const std::string& purpose() const { return classPurpose();} \ 32 static const std::string& classRegisterTypeName(); \ 33 static const std::string& classTypeName(); \ 34 static const std::string& classPurpose(); \ 35 static const std::string& classView() \ 37 #define CONCATENATE_HIDDEN(a,b) a ## b 38 #define CONCATENATE(a,b) CONCATENATE_HIDDEN(a,b) 40 #define DEFINE_PROXYBUILDER_METHODS(_builder_,_type_,_purpose_,_view_) \ 41 const std::string& _builder_::classTypeName() { \ 42 static std::string s_type = edm::TypeWithDict(typeid(_type_)).name(); \ 44 const std::string& _builder_::classRegisterTypeName() { \ 45 static std::string s_type( typeid(_type_).name() ); \ 47 const std::string& _builder_::classView(){ \ 48 static std::string s_view( boost::lexical_cast<std::string>(_view_)); \ 50 const std::string& _builder_::classPurpose(){ \ 51 static std::string s_purpose(_purpose_); return s_purpose;} enum {CONCATENATE(dummy_proxybuilder_methods_, __LINE__)}