tesseract-doxygen/ccutil/clst.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  CLIST_LINK
class  CLIST
class  CLIST_ITERATOR

Defines

#define QUOTE_IT(parm)   #parm
#define CLISTIZEH_A(CLASSNAME)
#define CLISTIZEH_B(CLASSNAME)
#define CLISTIZEH_C(CLASSNAME)
#define CLISTIZEH(CLASSNAME)
#define CLISTIZEH_S(CLASSNAME)
#define CLISTIZE(CLASSNAME)
#define CLISTIZE_S(CLASSNAME)

Define Documentation

#define CLISTIZE ( CLASSNAME   ) 
Value:
\
                        \
                                                                                                                                                                \
DLLSYM void                                     CLASSNAME##_c1_zapper(          /*delete a link*/               \
void*                                           link)                                           /*link to delete*/              \
{                                                                                                                                                               \
delete (CLASSNAME *) link;                                                                                                              \
}                                                                                                                                                               \
                                                                                                                                                                \
                                                                                                                                                                \
                                                                                                                                                                \
                        \
                                                                                                                                                                \
DLLSYM void*                            CLASSNAME##_c1_copier(          /*deep copy a link*/    \
void*                                           old_element)                            /*source link*/                 \
{                                                                                                                                                               \
        CLASSNAME*                      new_element;                                                                            \
                                                                                                                                                                \
new_element = new CLASSNAME;                                                                                                    \
*new_element = *((CLASSNAME*) old_element);                                                                     \
return (void*) new_element;                                                                                                             \
}
#define CLISTIZE_S ( CLASSNAME   ) 
Value:
\
CLISTIZE( CLASSNAME )                                                                                                                   \
                                                                                                                                                                \
                        \
                                                                                                                                                                \
DLLSYM void                                     CLASSNAME##_c1_serialiser(                                                      \
FILE*                                           f,                                                                                                      \
void*                                           element)                                                                                        \
{                                                                                                                                                               \
((CLASSNAME*) element)->serialise( f );                                                                         \
}                                                                                                                                                               \
                                                                                                                                                                \
                                                                                                                                                                \
                                                                                                                                                                \
                        \
                                                                                                                                                                \
DLLSYM void*                            CLASSNAME##_c1_de_serialiser(                                           \
FILE*                                           f)                                                                                                      \
{                                                                                                                                                               \
return CLASSNAME::de_serialise( f );                                                                                    \
}
#define CLISTIZEH ( CLASSNAME   ) 
Value:
\
CLISTIZEH_A( CLASSNAME )                                                                                                                \
                                                                                                                                                                \
CLISTIZEH_B( CLASSNAME )                                                                                                                \
                                                                                                                                                                \
CLISTIZEH_C( CLASSNAME )
#define CLISTIZEH_A ( CLASSNAME   ) 
Value:
\
extern DLLSYM void                      CLASSNAME##_c1_zapper(          /*delete a link*/               \
void*                                           link);                                          /*link to delete*/              \
                                                                                                                                                                \
extern DLLSYM void*                     CLASSNAME##_c1_copier(          /*deep copy a link*/    \
void*                                           old_element);
#define CLISTIZEH_B ( CLASSNAME   ) 
Value:
\
                        \
                                                                                                                                                                \
class DLLSYM                            CLASSNAME##_CLIST : public CLIST                                        \
{                                                                                                                                                               \
public:                                                                                                                                                 \
                                                        CLASSNAME##_CLIST():CLIST() {}                                          \
                                                                                                                /* constructor */               \
                                                                                                                                                                \
                                                        CLASSNAME##_CLIST(      /* dont construct */                    \
        const CLASSNAME##_CLIST&)                                                       /*by initial assign*/   \
        { DONT_CONSTRUCT_LIST_BY_COPY.error( QUOTE_IT( CLASSNAME##_CLIST ),                     \
                                                                                                                ABORT, NULL ); }                \
                                                                                                                                                                \
void                                            deep_clear()                            /* delete elements */   \
        { CLIST::internal_deep_clear( &CLASSNAME##_c1_zapper ); }                                       \
                                                                                                                                                                \
void                                            deep_copy(                                      /* become a deep */             \
        const CLASSNAME##_CLIST*list)                                           /* copy of src list*/   \
        { CLIST::internal_deep_copy( &CLASSNAME##_c1_copier, list ); }                          \
                                                                                                                                                                \
void                                            operator=(                                      /* prevent assign */    \
        const CLASSNAME##_CLIST&)                                                                                                       \
        { DONT_ASSIGN_LISTS.error( QUOTE_IT( CLASSNAME##_CLIST ),                                       \
                                                                                        ABORT, NULL ); }
#define CLISTIZEH_C ( CLASSNAME   ) 
#define CLISTIZEH_S ( CLASSNAME   ) 
Value:
\
CLISTIZEH_A( CLASSNAME )                                                                                                                \
                                                                                                                                                                \
extern DLLSYM void                      CLASSNAME##_c1_serialiser(                                                      \
FILE*                                           f,                                                                                                      \
void*                                           element);                                                                                       \
                                                                                                                                                                \
extern DLLSYM void*                     CLASSNAME##_c1_de_serialiser(                                           \
FILE*                                           f);                                                                                                     \
                                                                                                                                                                \
CLISTIZEH_B( CLASSNAME )                                                                                                                \
                                                                                                                                                                \
        void                                    dump(                                           /* dump to file */              \
        FILE*                                   f)                                                                                                      \
        { CLIST::internal_dump( f, &CLASSNAME##_c1_serialiser );}                                       \
                                                                                                                                                                \
        void                                    de_dump(                                        /* get from file */             \
        FILE*                                   f)                                                                                                      \
        { CLIST::internal_de_dump( f, &CLASSNAME##_c1_de_serialiser );}                         \
                                                                                                                                                                \
make_serialise( CLASSNAME##_CLIST )                                                                                             \
                                                                                                                                                                \
CLISTIZEH_C( CLASSNAME )
#define QUOTE_IT ( parm   )     #parm
Generated on Sun Jul 18 17:10:49 2010 for Tesseract by  doxygen 1.6.3