OSDN Git Service

2bce2dbff9f2424684060684abccd86fd0ac2947
[eos/base.git] / src / Objects / DataManip / eosStarFile / inc / eosStarFile.h
1 /*
2 # eosStarFile.h : $Revision$  
3 # $Date$ 
4 # Created by $Author$
5 # Usage : eosStarFile.h 
6 # Attention
7 #   $Loccker$
8 #       $State$ 
9 #
10 */
11 /* $Log$ */
12 #ifndef EOS_STAR_FILE
13 #define EOS_STAR_FILE
14
15 #include <stdio.h>
16
17 /* constant begin */
18
19
20 /* constant end */
21
22 /* struct begin */
23 typedef struct eosStarFileData {
24     char* key;
25     char**  valueS;
26     double* valueR;
27     int*    valueI;
28 } eosStarFileData;
29
30 typedef struct eosStgrFileDataBlock {
31     char* dataBlockName;
32
33     int   numDataItem;
34     eosStarFileData* data;
35
36     int numLoopKey;
37     int numLoopData;
38     eosStarFileData* loop;
39 } eosStgrFileDataBlock;
40
41 typedef struct eosStarFile {
42     int numDataBlock;
43     eosStgrFileDataBlock*  block;
44 } eosStarFile;
45
46 /* struct end */
47
48 #ifdef __cplusplus
49 extern "C" {
50 #endif
51
52 /* prototype begin */
53
54 extern void eosStarFileDataSizeSet(eosStarFile* star, int mode);
55
56
57 // 
58 void eosStarFileDataKeySet(eosStarFile* star, char* key, int index, int mode);
59 void eosStarFileDataValueSSet(eosStarFile* star, char* key, char* value, int mode);
60 void eosStarFileDataValueRSet(eosStarFile* star, char* key, double value, int mode);
61 void eosStarFileDataValueISet(eosStarFile* star, char* key, int    value, int mode);
62
63 void eosStarFileLoopDataKeySet(eosStarFile* star, int index, int mode);
64 void eosStarFileLoopDataValueSSet(eosStarFile* star, char* key, char**  value, int mode);
65 void eosStarFileLoopDataValueRSet(eosStarFile* star, char* key, double* value, int mode);
66 void eosStarFileLoopDataValueISet(eosStarFile* star, char* key, int*    value, int mode);
67
68 // esoStarFileRead.c
69 extern void eosStarFileRead (FILE* fpt, eosStarFile* star, int mode);
70 extern void eosStarFileDataSizeGet(FILE* fpt, eosStarFile* star, int mode);
71 extern void eosStarFileRead0 (FILE* fpt, eosStarFile* star, int mode);
72
73 // data: block==NULL, ignore datablock
74 extern int eosStarFileDataGetIndex(eosStarFile* star, char* block, char* dataKey, int* blockIndex, int* dataIndex, int mode);
75
76 extern char** eosStarFileDataGetStringP(eosStarFile* star, char* block, char* key, int mode);
77 extern char* eosStarFileDataGetString (eosStarFile* star, char* block, char* key, char** value, int mode);
78
79 extern double* eosStarFileDataGetRealP(eosStarFile* star, char* block, char* key, int mode);
80 extern double eosStarFileDataGetReal (eosStarFile* star, char* block, char* key, double* value, int mode);
81
82 extern int* eosStarFileDataGetIntegerP(eosStarFile* star, char* block, char* key, int mode);
83 extern int  eosStarFilDataGetInterger (eosStarFile* star, char* block, char* key, int* value, int mode);
84
85 // Loop
86 char** eosStarFileLoopDataGetStringP(eosStarFile* star, char* key, int mode);
87 void eosStarFileLoopDataGetString(eosStarFile* star, char* key, char*** value, int mode);
88
89 double* eosStarFileLoopDataGetRealP(eosStarFile* star, char* key, int mode);
90 void eosStarFileLoopDataGetReal(eosStarFile* star, char* key, double** value, int mode);
91
92 int* eosStarFileLoopDataGetIntergerP(eosStarFile* star, char* key, int mode);
93 void eosStarFileLoopDataGetInterger(eosStarFile* star, char* key, int** value, int mode);
94
95 /* prototype end */
96
97 #ifdef __cplusplus
98 };
99 #endif
100
101 #endif  /* EOS_STAR_FILE */