15 #ifndef INCdbStaticLibh
16 #define INCdbStaticLibh 1
21 #include "dbCoreAPI.h"
22 #include "dbFldTypes.h"
34 typedef struct dbEntry {
46 DBCORE_API DBBASE * dbAllocBase(
void);
47 DBCORE_API
void dbFreeBase(DBBASE *pdbbase);
48 DBCORE_API
DBENTRY * dbAllocEntry(DBBASE *pdbbase);
49 DBCORE_API
void dbFreeEntry(
DBENTRY *pdbentry);
50 DBCORE_API
void dbInitEntry(DBBASE *pdbbase,
53 DBCORE_API
void dbFinishEntry(
DBENTRY *pdbentry);
55 DBCORE_API
void dbCopyEntryContents(
DBENTRY *pfrom,
58 DBCORE_API
extern int dbBptNotMonotonic;
60 DBCORE_API
long dbReadDatabase(DBBASE **ppdbbase,
61 const char *filename,
const char *path,
const char *substitutions);
62 DBCORE_API
long dbReadDatabaseFP(DBBASE **ppdbbase,
63 FILE *fp,
const char *path,
const char *substitutions);
64 DBCORE_API
long dbPath(DBBASE *pdbbase,
const char *path);
65 DBCORE_API
long dbAddPath(DBBASE *pdbbase,
const char *path);
66 DBCORE_API
char * dbGetPromptGroupNameFromKey(DBBASE *pdbbase,
68 DBCORE_API
short dbGetPromptGroupKeyFromName(DBBASE *pdbbase,
70 DBCORE_API
long dbWriteRecord(DBBASE *ppdbbase,
71 const char *filename,
const char *precordTypename,
int level);
72 DBCORE_API
long dbWriteRecordFP(DBBASE *ppdbbase,
73 FILE *fp,
const char *precordTypename,
int level);
74 DBCORE_API
long dbWriteMenu(DBBASE *pdbbase,
75 const char *filename,
const char *menuName);
76 DBCORE_API
long dbWriteMenuFP(DBBASE *pdbbase,
77 FILE *fp,
const char *menuName);
78 DBCORE_API
long dbWriteRecordType(DBBASE *pdbbase,
79 const char *filename,
const char *recordTypeName);
80 DBCORE_API
long dbWriteRecordTypeFP(DBBASE *pdbbase,
81 FILE *fp,
const char *recordTypeName);
82 DBCORE_API
long dbWriteDevice(DBBASE *pdbbase,
83 const char *filename);
84 DBCORE_API
long dbWriteDeviceFP(DBBASE *pdbbase, FILE *fp);
85 DBCORE_API
long dbWriteDriver(DBBASE *pdbbase,
86 const char *filename);
87 DBCORE_API
long dbWriteDriverFP(DBBASE *pdbbase, FILE *fp);
88 DBCORE_API
long dbWriteLinkFP(DBBASE *pdbbase, FILE *fp);
89 DBCORE_API
long dbWriteRegistrarFP(DBBASE *pdbbase, FILE *fp);
90 DBCORE_API
long dbWriteFunctionFP(DBBASE *pdbbase, FILE *fp);
91 DBCORE_API
long dbWriteVariableFP(DBBASE *pdbbase, FILE *fp);
92 DBCORE_API
long dbWriteBreaktable(DBBASE *pdbbase,
93 const char *filename);
94 DBCORE_API
long dbWriteBreaktableFP(DBBASE *pdbbase,
97 DBCORE_API
long dbFindRecordType(
DBENTRY *pdbentry,
98 const char *recordTypename);
99 DBCORE_API
long dbFirstRecordType(
DBENTRY *pdbentry);
100 DBCORE_API
long dbNextRecordType(
DBENTRY *pdbentry);
101 DBCORE_API
char * dbGetRecordTypeName(
DBENTRY *pdbentry);
102 DBCORE_API
int dbGetNRecordTypes(
DBENTRY *pdbentry);
103 DBCORE_API
long dbPutRecordAttribute(
DBENTRY *pdbentry,
104 const char *name,
const char*
value);
105 DBCORE_API
long dbGetRecordAttribute(
DBENTRY *pdbentry,
107 DBCORE_API
long dbGetAttributePart(
DBENTRY *pdbentry,
108 const char **ppname);
110 DBCORE_API
long dbFirstField(
DBENTRY *pdbentry,
int dctonly);
111 DBCORE_API
long dbNextField(
DBENTRY *pdbentry,
int dctonly);
112 DBCORE_API
int dbGetNFields(
DBENTRY *pdbentry,
int dctonly);
113 DBCORE_API
char * dbGetFieldName(
DBENTRY *pdbentry);
114 DBCORE_API
int dbGetFieldDbfType(
DBENTRY *pdbentry);
115 DBCORE_API
char * dbGetDefault(
DBENTRY *pdbentry);
116 DBCORE_API
char * dbGetPrompt(
DBENTRY *pdbentry);
117 DBCORE_API
int dbGetPromptGroup(
DBENTRY *pdbentry);
119 DBCORE_API
long dbCreateRecord(
DBENTRY *pdbentry,
121 DBCORE_API
long dbDeleteRecord(
DBENTRY *pdbentry);
122 DBCORE_API
long dbFreeRecords(DBBASE *pdbbase);
123 DBCORE_API
long dbFindRecordPart(
DBENTRY *pdbentry,
124 const char **ppname);
125 DBCORE_API
long dbFindRecord(
DBENTRY *pdbentry,
128 DBCORE_API
long dbFirstRecord(
DBENTRY *pdbentry);
129 DBCORE_API
long dbNextRecord(
DBENTRY *pdbentry);
130 DBCORE_API
int dbGetNRecords(
DBENTRY *pdbentry);
131 DBCORE_API
int dbGetNAliases(
DBENTRY *pdbentry);
132 DBCORE_API
char * dbGetRecordName(
DBENTRY *pdbentry);
133 DBCORE_API
long dbCopyRecord(
DBENTRY *pdbentry,
134 const char *newRecordName,
int overWriteOK);
136 DBCORE_API
long dbVisibleRecord(
DBENTRY *pdbentry);
137 DBCORE_API
long dbInvisibleRecord(
DBENTRY *pdbentry);
138 DBCORE_API
int dbIsVisibleRecord(
DBENTRY *pdbentry);
140 DBCORE_API
long dbCreateAlias(
DBENTRY *pdbentry,
141 const char *paliasName);
142 DBCORE_API
int dbIsAlias(
DBENTRY *pdbentry);
144 DBCORE_API
int dbFollowAlias(
DBENTRY *pdbentry);
145 DBCORE_API
long dbDeleteAliases(
DBENTRY *pdbentry);
147 DBCORE_API
long dbFindFieldPart(
DBENTRY *pdbentry,
148 const char **ppname);
149 DBCORE_API
long dbFindField(
DBENTRY *pdbentry,
150 const char *pfieldName);
151 DBCORE_API
int dbFoundField(
DBENTRY *pdbentry);
152 DBCORE_API
char * dbGetString(
DBENTRY *pdbentry);
153 DBCORE_API
long dbPutString(
DBENTRY *pdbentry,
154 const char *pstring);
155 DBCORE_API
char * dbVerify(
DBENTRY *pdbentry,
156 const char *pstring);
157 DBCORE_API
int dbIsDefaultValue(
DBENTRY *pdbentry);
159 DBCORE_API
long dbFirstInfo(
DBENTRY *pdbentry);
160 DBCORE_API
long dbNextInfo(
DBENTRY *pdbentry);
161 DBCORE_API
long dbFindInfo(
DBENTRY *pdbentry,
163 DBCORE_API
long dbNextMatchingInfo(
DBENTRY *pdbentry,
164 const char *pattern);
165 DBCORE_API
long dbDeleteInfo(
DBENTRY *pdbentry);
166 DBCORE_API
const char * dbGetInfoName(
DBENTRY *pdbentry);
167 DBCORE_API
const char * dbGetInfoString(
DBENTRY *pdbentry);
168 DBCORE_API
long dbPutInfoString(
DBENTRY *pdbentry,
170 DBCORE_API
long dbPutInfoPointer(
DBENTRY *pdbentry,
172 DBCORE_API
void * dbGetInfoPointer(
DBENTRY *pdbentry);
173 DBCORE_API
const char * dbGetInfo(
DBENTRY *pdbentry,
175 DBCORE_API
long dbPutInfo(
DBENTRY *pdbentry,
176 const char *name,
const char *
string);
178 DBCORE_API
brkTable * dbFindBrkTable(DBBASE *pdbbase,
181 DBCORE_API
const char * dbGetFieldTypeString(
int dbfType);
182 DBCORE_API
int dbFindFieldType(
const char *type);
184 DBCORE_API
dbMenu * dbFindMenu(DBBASE *pdbbase,
186 DBCORE_API
char ** dbGetMenuChoices(
DBENTRY *pdbentry);
187 DBCORE_API
int dbGetMenuIndex(
DBENTRY *pdbentry);
188 DBCORE_API
long dbPutMenuIndex(
DBENTRY *pdbentry,
int index);
189 DBCORE_API
int dbGetNMenuChoices(
DBENTRY *pdbentry);
190 DBCORE_API
char * dbGetMenuStringFromIndex(
DBENTRY *pdbentry,
192 DBCORE_API
int dbGetMenuIndexFromString(
DBENTRY *pdbentry,
197 DBCORE_API
char * dbGetRelatedField(
DBENTRY *pdbentry);
202 DBCORE_API
int dbGetNLinks(
DBENTRY *pdbentry);
203 DBCORE_API
long dbGetLinkField(
DBENTRY *pdbentry,
int index);
206 DBCORE_API
void dbDumpPath(DBBASE *pdbbase);
207 DBCORE_API
void dbDumpRecord(DBBASE *pdbbase,
208 const char *precordTypename,
int level);
209 DBCORE_API
void dbDumpMenu(DBBASE *pdbbase,
210 const char *menuName);
211 DBCORE_API
void dbDumpRecordType(DBBASE *pdbbase,
212 const char *recordTypeName);
213 DBCORE_API
void dbDumpField(DBBASE *pdbbase,
214 const char *recordTypeName,
const char *fname);
215 DBCORE_API
void dbDumpDevice(DBBASE *pdbbase,
216 const char *recordTypeName);
217 DBCORE_API
void dbDumpDriver(DBBASE *pdbbase);
218 DBCORE_API
void dbDumpLink(DBBASE *pdbbase);
219 DBCORE_API
void dbDumpRegistrar(DBBASE *pdbbase);
220 DBCORE_API
void dbDumpFunction(DBBASE *pdbbase);
221 DBCORE_API
void dbDumpVariable(DBBASE *pdbbase);
222 DBCORE_API
void dbDumpBreaktable(DBBASE *pdbbase,
224 DBCORE_API
void dbPvdDump(DBBASE *pdbbase,
int verbose);
225 DBCORE_API
void dbReportDeviceConfig(DBBASE *pdbbase,
229 #define dbCalloc(nobj,size) callocMustSucceed(nobj,size,"dbCalloc")
230 #define dbMalloc(size) mallocMustSucceed(size,"dbMalloc")
231 DBCORE_API
void dbCatString(
char **
string,
int *stringLength,
232 char *pnew,
char *separator);
234 extern int dbStaticDebug;
235 extern int dbConvertStrict;
237 #define S_dbLib_recordTypeNotFound (M_dbLib|1)
238 #define S_dbLib_recExists (M_dbLib|3)
239 #define S_dbLib_recNotFound (M_dbLib|5)
240 #define S_dbLib_flddesNotFound (M_dbLib|7)
241 #define S_dbLib_fieldNotFound (M_dbLib|9)
242 #define S_dbLib_badField (M_dbLib|11)
243 #define S_dbLib_menuNotFound (M_dbLib|13)
244 #define S_dbLib_badLink (M_dbLib|15)
245 #define S_dbLib_nameLength (M_dbLib|17)
246 #define S_dbLib_noRecSup (M_dbLib|19)
247 #define S_dbLib_strLen (M_dbLib|21)
248 #define S_dbLib_noSizeOffset (M_dbLib|23)
249 #define S_dbLib_outMem (M_dbLib|27)
250 #define S_dbLib_infoNotFound (M_dbLib|29)
Routines for code that can't continue or return after an error.