tesseract-doxygen/ccutil/elst.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  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 Documentation

#define ELISTIZE ( CLASSNAME   ) 
Value:
\
     \
                                                                            \
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   ) 
Value:
\
ELISTIZEH_A( CLASSNAME )                                                                        \
                                                                                                        \
ELISTIZEH_B( CLASSNAME )                                                                        \
                                                                                                        \
ELISTIZEH_C( CLASSNAME )
#define ELISTIZEH_A ( CLASSNAME   ) 
Value:
\
extern DLLSYM void CLASSNAME##_zapper(ELIST_LINK* link);
#define ELISTIZEH_B ( CLASSNAME   ) 
Value:
\
         \
                                                                                                        \
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   ) 
Value:
\
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
Generated on Sun Jul 18 17:10:49 2010 for Tesseract by  doxygen 1.6.3