#include <stdio.h>
#include "host.h"
#include "serialis.h"
#include "lsterr.h"
Go to the source code of this file.
Classes | |
class | ELIST2_LINK |
class | ELIST2 |
class | ELIST2_ITERATOR |
Defines | |
#define | QUOTE_IT(parm) #parm |
#define | ELIST2IZEH_A(CLASSNAME) |
#define | ELIST2IZEH_B(CLASSNAME) |
#define | ELIST2IZEH_C(CLASSNAME) |
#define | ELIST2IZEH(CLASSNAME) |
#define | ELIST2IZE(CLASSNAME) |
#define ELIST2IZE | ( | CLASSNAME | ) |
\ \ \ DLLSYM void CLASSNAME##_zapper( /*delete a link*/ \ ELIST2_LINK* link) /*link to delete*/ \ { \ delete (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 ELIST2IZEH | ( | CLASSNAME | ) |
\ ELIST2IZEH_A( CLASSNAME ) \ \ ELIST2IZEH_B( CLASSNAME ) \ \ ELIST2IZEH_C( CLASSNAME )
#define ELIST2IZEH_A | ( | CLASSNAME | ) |
\ extern DLLSYM void CLASSNAME##_zapper( /*delete a link*/ \ ELIST2_LINK* link);
#define ELIST2IZEH_B | ( | CLASSNAME | ) |
\ \ \ class DLLSYM CLASSNAME##_LIST : public ELIST2 \ { \ public: \ CLASSNAME##_LIST():ELIST2() {} \ /* 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 */\ { ELIST2::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 ELIST2IZEH_C | ( | CLASSNAME | ) |
#define QUOTE_IT | ( | parm | ) | #parm |