#include "persistence.h"#include <typeinfo>#include <cstdio>Go to the source code of this file.
Defines | |
| #define | SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(prefix, class_scope, class_name, ref_list) |
| #define | SAMPA_PERSISTENT_REGISTER(prefix, class_scope, class_name, ref_list) |
| #define | SAMPA_MAKE_PERSISTENT(class_scope, class_name, ref_list) SAMPA_PERSISTENT_REGISTER(/**/,class_scope,class_name,ref_list) |
| #define | SAMPA_MAKE_TMPL_PERSISTENT(class_scope, class_name, ref_list) SAMPA_PERSISTENT_REGISTER(template<>,class_scope,class_name,ref_list) |
| #define | SAMPA_MAKE_ABSTRACT_PERSISTENT(class_scope, class_name, ref_list) SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(/**/,class_scope, class_name,ref_list) |
| #define | SAMPA_MAKE_ABSTRACT_TMPL_PERSISTENT(class_scope, class_name, ref_list) SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(template<>,class_scope,class_name,ref_list) |
| #define SAMPA_MAKE_ABSTRACT_PERSISTENT | ( | class_scope, | |||
| class_name, | |||||
| ref_list | ) | SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(/**/,class_scope, class_name,ref_list) |
Definition at line 59 of file persistence.cxx.
| #define SAMPA_MAKE_ABSTRACT_TMPL_PERSISTENT | ( | class_scope, | |||
| class_name, | |||||
| ref_list | ) | SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(template<>,class_scope,class_name,ref_list) |
Definition at line 61 of file persistence.cxx.
| #define SAMPA_MAKE_PERSISTENT | ( | class_scope, | |||
| class_name, | |||||
| ref_list | ) | SAMPA_PERSISTENT_REGISTER(/**/,class_scope,class_name,ref_list) |
Definition at line 55 of file persistence.cxx.
| #define SAMPA_MAKE_TMPL_PERSISTENT | ( | class_scope, | |||
| class_name, | |||||
| ref_list | ) | SAMPA_PERSISTENT_REGISTER(template<>,class_scope,class_name,ref_list) |
Definition at line 57 of file persistence.cxx.
| #define SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR | ( | prefix, | |||
| class_scope, | |||||
| class_name, | |||||
| ref_list | ) |
Value:
prefix class_scope::class_name() {\
int sp = 0; \
gc_segment* const gc_stack = storage::gc_stack; \
long const shift = storage::base_address_shift; \
if (gc_stack != NULL) { ref_list storage::gc_stack=&gc_stack[sp]; } \
else if (shift != 0) { ref_list } \
}
Definition at line 27 of file persistence.cxx.
| #define SAMPA_PERSISTENT_REGISTER | ( | prefix, | |||
| class_scope, | |||||
| class_name, | |||||
| ref_list | ) |
Value:
SAMPA_PERSISTENT_DEFAULT_CONSTRUCTOR(prefix, class_scope, class_name, ref_list) \ prefix void class_scope::constructor(object* ptr) { new (ptr) class_name; } \ prefix class_descriptor class_scope::self_class(typeid(class_name()).name(), sizeof(class_name), &class_name::constructor)
Definition at line 51 of file persistence.cxx.
1.5.3