|
107 | 107 | * }; |
108 | 108 | * \endcode |
109 | 109 | */ |
| 110 | +#define GENERATE_INTERFACE_NO_INLINE_DESTRUCTOR(base_name, proxy_name, functions) \ |
| 111 | + class base_name : public cppipc::ipc_object_base { \ |
| 112 | + public: \ |
| 113 | + typedef proxy_name proxy_object_type; \ |
| 114 | + virtual ~base_name(); \ |
| 115 | + inline virtual void save(graphlab::oarchive& oarc) const {} \ |
| 116 | + inline virtual void load(graphlab::iarchive& iarc) {} \ |
| 117 | + BOOST_PP_SEQ_FOR_EACH(__GENERATE_BASE__, _, __ADD_PARENS__(functions)) \ |
| 118 | + REGISTRATION_BEGIN(base_name) \ |
| 119 | + BOOST_PP_SEQ_FOR_EACH(__GENERATE_REGISTRATION__, base_name, __ADD_PARENS__(functions)) \ |
| 120 | + REGISTRATION_END \ |
| 121 | + }; |
| 122 | + |
110 | 123 | #define GENERATE_INTERFACE(base_name, proxy_name, functions) \ |
111 | 124 | class base_name : public cppipc::ipc_object_base { \ |
112 | 125 | public: \ |
|
120 | 133 | REGISTRATION_END \ |
121 | 134 | }; |
122 | 135 |
|
| 136 | +#define GENERATE_BASE_DESTRUCTOR(base_name) \ |
| 137 | + base_name::~base_name() { } |
123 | 138 |
|
124 | 139 |
|
125 | 140 |
|
|
292 | 307 | class proxy_name; \ |
293 | 308 | GENERATE_INTERFACE(base_name, proxy_name, functions) |
294 | 309 |
|
| 310 | +#define GENERATE_INTERFACE_AND_PROXY_NO_INLINE_DESTRUCTOR(base_name, proxy_name, functions) \ |
| 311 | + class proxy_name; \ |
| 312 | + GENERATE_INTERFACE_NO_INLINE_DESTRUCTOR(base_name, proxy_name, functions) |
295 | 313 | #else |
296 | 314 |
|
297 | 315 | #define GENERATE_INTERFACE_AND_PROXY(base_name, proxy_name, functions) \ |
298 | 316 | class proxy_name; \ |
299 | 317 | GENERATE_INTERFACE(base_name, proxy_name, functions) \ |
300 | | - GENERATE_PROXY(base_name, proxy_name, functions) |
| 318 | + GENERATE_PROXY(base_name, proxy_name, functions) |
301 | 319 |
|
| 320 | +#define GENERATE_INTERFACE_AND_PROXY_NO_INLINE_DESTRUCTOR(base_name, proxy_name, functions) \ |
| 321 | + class proxy_name; \ |
| 322 | + GENERATE_INTERFACE_NO_INLINE_DESTRUCTOR(base_name, proxy_name, functions) \ |
| 323 | + GENERATE_PROXY(base_name, proxy_name, functions) |
302 | 324 | #endif |
303 | 325 |
|
304 | 326 | #endif |
0 commit comments