/ocr/ocrservice/jni/hydrogen/include/leptonica/ptra.h
C++ Header | 80 lines | 30 code | 15 blank | 35 comment | 0 complexity | 31e4ce2092e77b2b6af42546bf54f598 MD5 | raw file
1/*====================================================================* 2 - Copyright (C) 2001 Leptonica. All rights reserved. 3 - This software is distributed in the hope that it will be 4 - useful, but with NO WARRANTY OF ANY KIND. 5 - No author or distributor accepts responsibility to anyone for the 6 - consequences of using this software, or for whether it serves any 7 - particular purpose or works at all, unless he or she says so in 8 - writing. Everyone is granted permission to copy, modify and 9 - redistribute this source code, for commercial or non-commercial 10 - purposes, with the following restrictions: (1) the origin of this 11 - source code must not be misrepresented; (2) modified versions must 12 - be plainly marked as such; and (3) this notice may not be removed 13 - or altered from any source or modified source distribution. 14 *====================================================================*/ 15 16#ifndef LEPTONICA_PTRA_H 17#define LEPTONICA_PTRA_H 18 19/* 20 * Contains the following structs: 21 * struct L_Ptra 22 * struct L_Ptraa 23 * 24 * Contains definitions for: 25 * L_Ptra compaction flags for removal 26 * L_Ptra shifting flags for insert 27 * L_Ptraa accessor flags 28 */ 29 30 31/*------------------------------------------------------------------------* 32 * Generic Ptr Array Structs * 33 *------------------------------------------------------------------------*/ 34 35 /* Generic pointer array */ 36struct L_Ptra 37{ 38 l_int32 nalloc; /* size of allocated ptr array */ 39 l_int32 imax; /* greatest valid index */ 40 l_int32 nactual; /* actual number of stored elements */ 41 void **array; /* ptr array */ 42}; 43typedef struct L_Ptra L_PTRA; 44 45 46 /* Array of generic pointer arrays */ 47struct L_Ptraa 48{ 49 l_int32 nalloc; /* size of allocated ptr array */ 50 struct L_Ptra **ptra; /* array of ptra */ 51}; 52typedef struct L_Ptraa L_PTRAA; 53 54 55 56/*------------------------------------------------------------------------* 57 * Array flags * 58 *------------------------------------------------------------------------*/ 59 60 /* Flags for removal from L_Ptra */ 61enum { 62 L_NO_COMPACTION = 1, /* null the pointer only */ 63 L_COMPACTION = 2 /* compact the array */ 64}; 65 66 /* Flags for insertion into L_Ptra */ 67enum { 68 L_AUTO_DOWNSHIFT = 0, /* choose based on number of holes */ 69 L_MIN_DOWNSHIFT = 1, /* downshifts min # of ptrs below insert */ 70 L_FULL_DOWNSHIFT = 2 /* downshifts all ptrs below insert */ 71}; 72 73 /* Accessor flags for L_Ptraa */ 74enum { 75 L_HANDLE_ONLY = 0, /* ptr to L_Ptra; caller can inspect only */ 76 L_REMOVE = 1 /* caller owns; destroy or save in L_Ptraa */ 77}; 78 79 80#endif /* LEPTONICA_PTRA_H */