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