#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 | ELISTIZE(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 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 QUOTE_IT | ( | parm | ) | #parm |
1.6.3