/home/rays/src/opensrc/tesseract-ocr/ccutil/elst2.h File Reference

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

#define ELIST2IZE ( CLASSNAME   ) 
Value:
\
                        \
                                                                                                                                                                                                                \
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   ) 
Value:
\
ELIST2IZEH_A( CLASSNAME )                                                                                                                                               \
                                                                                                                                                                                                                \
ELIST2IZEH_B( CLASSNAME )                                                                                                                                               \
                                                                                                                                                                                                                \
ELIST2IZEH_C( CLASSNAME )
#define ELIST2IZEH_A ( CLASSNAME   ) 
Value:
\
extern DLLSYM void                      CLASSNAME##_zapper(                     /*delete a link*/               \
ELIST2_LINK*                            link);
#define ELIST2IZEH_B ( CLASSNAME   ) 
Value:
\
                        \
                                                                                                                                                                                                                \
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
Generated on Thu Feb 2 08:19:21 2012 for Tesseract by  doxygen 1.6.3