1 /******************************************************************************
2 *
3 * Copyright (C) 2006, The Gentee Group. All rights reserved.
4 * This file is part of the Gentee open source project - http://www.gentee.com.
5 *
6 * THIS FILE IS PROVIDED UNDER THE TERMS OF THE GENTEE LICENSE ("AGREEMENT").
7 * ANY USE, REPRODUCTION OR DISTRIBUTION OF THIS FILE CONSTITUTES RECIPIENTS
8 * ACCEPTANCE OF THE AGREEMENT.
9 *
10 * ID: collection 18.10.06 0.0.A.
11 *
12 * Author: Alexey Krivonogov ( gentee )
13 *
14 ******************************************************************************/
15
16 #ifndef _COLLECTION_
17 #define _COLLECTION_
18
19 #ifdef __cplusplus
20 extern "C" {
21 #endif // __cplusplus
22
23 #include "buf.h"
24
25 //--------------------------------------------------------------------------
26
27 typedef struct
28 {
29 buf data;
30 uint count; // The number of items
31 uint flag; // Флаги
32 // uint ifor; // The number of the current item foreach
33 // uint pfor; // The offset of the current item foreach
34 // uint owner; // The collection is an owner of its items
35 } collect, * pcollect;
36
37 puint STDCALL collect_add( pcollect pclt, puint input, uint type );
38 pubyte STDCALL collect_addptr( pcollect pclt, pubyte ptr );
39 pubyte STDCALL collect_index( pcollect pclt, uint index );
40 uint STDCALL collect_gettype( pcollect pclt, uint index );
41 pubyte STDCALL collect_copy( pcollect pclt, pubyte data );
42 uint STDCALL collect_count( pcollect pclt );
43 void STDCALL collect_delete( pcollect pclt );
44
45 /*
46 pvoid STDCALL arr_append( parr pa );
47 uint STDCALL arr_appenditems( parr pa, uint count );
48 void STDCALL arr_appendnum( parr pa, uint val );
49 pvoid STDCALL arr_appendzero( parr pa );
50 void STDCALL arr_clear( parr pa );
51 uint STDCALL arr_count( parr pa );
52 uint STDCALL arr_getlast( parr pa );
53 uint STDCALL arr_getuint( parr pa, uint num );
54 void STDCALL arr_init( parr pa, uint size );
55 void STDCALL arr_delete( parr pa );
56 uint STDCALL arr_pop( parr pa );
57 pvoid STDCALL arr_ptr( parr pa, uint num );
58 void STDCALL arr_reserve( parr pa, uint count );
59 void STDCALL arr_setuint( parr pa, uint num, uint value );
60 void STDCALL arr_step( parr pa, uint count );
61 pvoid STDCALL arr_top( parr pa );
62
63 pgarr STDCALL garr_init( pgarr pga );
64 void STDCALL garr_del( pgarr pga, uint from, uint number );
65 void STDCALL garr_delete( pgarr pga );
66 pgarr STDCALL garr_expand( pgarr pga, uint count );
67 pgarr STDCALL garr_insert( pgarr pga, uint from, uint number );
68 uint STDCALL garr_count( pgarr pga );
69 pgarr STDCALL garr_oftype( pgarr pga, uint itype );
70 pgarr STDCALL garr_array( pgarr pga, uint first );
71 pgarr STDCALL garr_array2( pgarr pga, uint first, uint second );
72 pgarr STDCALL garr_array3( pgarr pga, uint first, uint second, uint third );
73 pubyte STDCALL garr_index( pgarr pga, uint first );
74 pubyte STDCALL garr_index2( pgarr pga, uint first, uint second );
75 pubyte STDCALL garr_index3( pgarr pga, uint first, uint second, uint third );
76 */
77
78
79 //--------------------------------------------------------------------------
80
81 #ifdef __cplusplus
82 }
83 #endif // __cplusplus
84
85 #endif // _COLLECTION_
86
87
Редактировать