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