#include <stdio.h>#include "host.h"#include "serialis.h"#include "lsterr.h"Go to the source code of this file.
Classes | |
| class | ELIST_LINK |
| class | ELIST |
| class | ELIST_ITERATOR |
Defines | |
| #define | QUOTE_IT(parm) #parm |
| #define | ELISTIZEH_A(CLASSNAME) |
| #define | ELISTIZEH_B(CLASSNAME) |
| #define | ELISTIZEH_C(CLASSNAME) |
| #define | ELISTIZEH(CLASSNAME) |
| #define | ELISTIZEH_S(CLASSNAME) |
| #define | ELISTIZE(CLASSNAME) |
| #define | ELISTIZE_S(CLASSNAME) |
| #define ELISTIZE | ( | CLASSNAME | ) |
\
\
\
DLLSYM void CLASSNAME##_zapper(ELIST_LINK* link) { \
delete reinterpret_cast<CLASSNAME*>(link); \
} \
\
/* Become a deep copy of src_list*/ \
void CLASSNAME##_LIST::deep_copy(const CLASSNAME##_LIST* src_list, \
CLASSNAME* (*copier)(const CLASSNAME*)) { \
\
CLASSNAME##_IT from_it(const_cast<CLASSNAME##_LIST*>(src_list)); \
CLASSNAME##_IT to_it(this); \
\
for (from_it.mark_cycle_pt(); !from_it.cycled_list(); from_it.forward()) \
to_it.add_after_then_move((*copier)(from_it.data())); \
}
| #define ELISTIZE_S | ( | CLASSNAME | ) |
| #define ELISTIZEH | ( | CLASSNAME | ) |
\ ELISTIZEH_A( CLASSNAME ) \ \ ELISTIZEH_B( CLASSNAME ) \ \ ELISTIZEH_C( CLASSNAME )
| #define ELISTIZEH_A | ( | CLASSNAME | ) |
\ extern DLLSYM void CLASSNAME##_zapper(ELIST_LINK* link);
| #define ELISTIZEH_B | ( | CLASSNAME | ) |
\
\
\
class DLLSYM CLASSNAME##_LIST : public ELIST \
{ \
public: \
CLASSNAME##_LIST():ELIST() {}\
/* constructor */ \
\
CLASSNAME##_LIST( /* dont construct */ \
const CLASSNAME##_LIST&) /*by initial assign*/\
{ DONT_CONSTRUCT_LIST_BY_COPY.error( QUOTE_IT( CLASSNAME##_LIST ), \
ABORT, NULL ); } \
\
void clear() /* delete elements */\
{ ELIST::internal_clear( &CLASSNAME##_zapper ); } \
\
~CLASSNAME##_LIST() /* destructor */ \
{ clear(); } \
\
/* Become a deep copy of src_list*/ \
void deep_copy(const CLASSNAME##_LIST* src_list, \
CLASSNAME* (*copier)(const CLASSNAME*)); \
\
void operator=( /* prevent assign */ \
const CLASSNAME##_LIST&) \
{ DONT_ASSIGN_LISTS.error( QUOTE_IT( CLASSNAME##_LIST ), \
ABORT, NULL ); }
| #define ELISTIZEH_C | ( | CLASSNAME | ) |
| #define ELISTIZEH_S | ( | CLASSNAME | ) |
\ ELISTIZEH_A( CLASSNAME ) \ \ extern DLLSYM void CLASSNAME##_serialiser( \ FILE* f, \ ELIST_LINK* element); \ \ extern DLLSYM ELIST_LINK* CLASSNAME##_de_serialiser( \ FILE* f); \ \ ELISTIZEH_B( CLASSNAME ) \ \ void dump( /* dump to file */ \ FILE* f) \ { ELIST::internal_dump( f, &CLASSNAME##_serialiser );} \ \ void de_dump( /* get from file */ \ FILE* f) \ { ELIST::internal_de_dump( f, &CLASSNAME##_de_serialiser );} \ \ void serialise_asc( /*dump to ascii*/ \ FILE* f); \ void de_serialise_asc( /*de-dump from ascii*/\ FILE* f); \ \ make_serialise( CLASSNAME##_LIST ) \ \ ELISTIZEH_C( CLASSNAME )
| #define QUOTE_IT | ( | parm | ) | #parm |
1.6.3