persistence.cxx File Reference

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

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


Generated on Sat Feb 16 16:23:15 2008 for Sampa by  doxygen 1.5.3