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(
const DBENTRY *pfrom,
58 DBCORE_API
extern int dbBptNotMonotonic;
68 DBCORE_API
long dbReadDatabase(DBBASE **ppdbbase,
69 const char *filename,
const char *path,
const char *substitutions);
80 DBCORE_API
long dbReadDatabaseFP(DBBASE **ppdbbase,
81 FILE *fp,
const char *path,
const char *substitutions);
82 DBCORE_API
long dbPath(DBBASE *pdbbase,
const char *path);
83 DBCORE_API
long dbAddPath(DBBASE *pdbbase,
const char *path);
84 DBCORE_API
char * dbGetPromptGroupNameFromKey(DBBASE *pdbbase,
86 DBCORE_API
short dbGetPromptGroupKeyFromName(DBBASE *pdbbase,
88 DBCORE_API
long dbWriteRecord(DBBASE *ppdbbase,
89 const char *filename,
const char *precordTypename,
int level);
90 DBCORE_API
long dbWriteRecordFP(DBBASE *ppdbbase,
91 FILE *fp,
const char *precordTypename,
int level);
92 DBCORE_API
long dbWriteMenu(DBBASE *pdbbase,
93 const char *filename,
const char *menuName);
94 DBCORE_API
long dbWriteMenuFP(DBBASE *pdbbase,
95 FILE *fp,
const char *menuName);
96 DBCORE_API
long dbWriteRecordType(DBBASE *pdbbase,
97 const char *filename,
const char *recordTypeName);
98 DBCORE_API
long dbWriteRecordTypeFP(DBBASE *pdbbase,
99 FILE *fp,
const char *recordTypeName);
100 DBCORE_API
long dbWriteDevice(DBBASE *pdbbase,
101 const char *filename);
102 DBCORE_API
long dbWriteDeviceFP(DBBASE *pdbbase, FILE *fp);
103 DBCORE_API
long dbWriteDriver(DBBASE *pdbbase,
104 const char *filename);
105 DBCORE_API
long dbWriteDriverFP(DBBASE *pdbbase, FILE *fp);
106 DBCORE_API
long dbWriteLinkFP(DBBASE *pdbbase, FILE *fp);
107 DBCORE_API
long dbWriteRegistrarFP(DBBASE *pdbbase, FILE *fp);
108 DBCORE_API
long dbWriteFunctionFP(DBBASE *pdbbase, FILE *fp);
109 DBCORE_API
long dbWriteVariableFP(DBBASE *pdbbase, FILE *fp);
110 DBCORE_API
long dbWriteBreaktable(DBBASE *pdbbase,
111 const char *filename);
112 DBCORE_API
long dbWriteBreaktableFP(DBBASE *pdbbase,
115 DBCORE_API
long dbFindRecordType(
DBENTRY *pdbentry,
116 const char *recordTypename);
117 DBCORE_API
long dbFirstRecordType(
DBENTRY *pdbentry);
118 DBCORE_API
long dbNextRecordType(
DBENTRY *pdbentry);
119 DBCORE_API
char * dbGetRecordTypeName(
DBENTRY *pdbentry);
120 DBCORE_API
int dbGetNRecordTypes(
DBENTRY *pdbentry);
121 DBCORE_API
long dbPutRecordAttribute(
DBENTRY *pdbentry,
122 const char *name,
const char*
value);
123 DBCORE_API
long dbGetRecordAttribute(
DBENTRY *pdbentry,
125 DBCORE_API
long dbGetAttributePart(
DBENTRY *pdbentry,
126 const char **ppname);
128 DBCORE_API
long dbFirstField(
DBENTRY *pdbentry,
int dctonly);
129 DBCORE_API
long dbNextField(
DBENTRY *pdbentry,
int dctonly);
130 DBCORE_API
int dbGetNFields(
DBENTRY *pdbentry,
int dctonly);
131 DBCORE_API
char * dbGetFieldName(
DBENTRY *pdbentry);
132 DBCORE_API
int dbGetFieldDbfType(
DBENTRY *pdbentry);
133 DBCORE_API
char * dbGetDefault(
DBENTRY *pdbentry);
134 DBCORE_API
char * dbGetPrompt(
DBENTRY *pdbentry);
135 DBCORE_API
int dbGetPromptGroup(
DBENTRY *pdbentry);
137 DBCORE_API
long dbCreateRecord(
DBENTRY *pdbentry,
139 DBCORE_API
long dbDeleteRecord(
DBENTRY *pdbentry);
140 DBCORE_API
long dbFreeRecords(DBBASE *pdbbase);
141 DBCORE_API
long dbFindRecordPart(
DBENTRY *pdbentry,
142 const char **ppname);
143 DBCORE_API
long dbFindRecord(
DBENTRY *pdbentry,
146 DBCORE_API
long dbFirstRecord(
DBENTRY *pdbentry);
147 DBCORE_API
long dbNextRecord(
DBENTRY *pdbentry);
148 DBCORE_API
int dbGetNRecords(
DBENTRY *pdbentry);
149 DBCORE_API
int dbGetNAliases(
DBENTRY *pdbentry);
150 DBCORE_API
char * dbGetRecordName(
DBENTRY *pdbentry);
151 DBCORE_API
long dbCopyRecord(
DBENTRY *pdbentry,
152 const char *newRecordName,
int overWriteOK);
154 DBCORE_API
long dbVisibleRecord(
DBENTRY *pdbentry);
155 DBCORE_API
long dbInvisibleRecord(
DBENTRY *pdbentry);
156 DBCORE_API
int dbIsVisibleRecord(
DBENTRY *pdbentry);
158 DBCORE_API
long dbCreateAlias(
DBENTRY *pdbentry,
159 const char *paliasName);
160 DBCORE_API
int dbIsAlias(
DBENTRY *pdbentry);
162 DBCORE_API
int dbFollowAlias(
DBENTRY *pdbentry);
163 DBCORE_API
long dbDeleteAliases(
DBENTRY *pdbentry);
165 DBCORE_API
long dbFindFieldPart(
DBENTRY *pdbentry,
166 const char **ppname);
167 DBCORE_API
long dbFindField(
DBENTRY *pdbentry,
168 const char *pfieldName);
169 DBCORE_API
int dbFoundField(
DBENTRY *pdbentry);
170 DBCORE_API
char * dbGetString(
DBENTRY *pdbentry);
171 DBCORE_API
long dbPutString(
DBENTRY *pdbentry,
172 const char *pstring);
173 DBCORE_API
char * dbVerify(
DBENTRY *pdbentry,
174 const char *pstring);
175 DBCORE_API
int dbIsDefaultValue(
DBENTRY *pdbentry);
177 DBCORE_API
long dbFirstInfo(
DBENTRY *pdbentry);
178 DBCORE_API
long dbNextInfo(
DBENTRY *pdbentry);
179 DBCORE_API
long dbFindInfo(
DBENTRY *pdbentry,
181 DBCORE_API
long dbNextMatchingInfo(
DBENTRY *pdbentry,
182 const char *pattern);
183 DBCORE_API
long dbDeleteInfo(
DBENTRY *pdbentry);
184 DBCORE_API
const char * dbGetInfoName(
DBENTRY *pdbentry);
185 DBCORE_API
const char * dbGetInfoString(
DBENTRY *pdbentry);
186 DBCORE_API
long dbPutInfoString(
DBENTRY *pdbentry,
188 DBCORE_API
long dbPutInfoPointer(
DBENTRY *pdbentry,
190 DBCORE_API
void * dbGetInfoPointer(
DBENTRY *pdbentry);
191 DBCORE_API
const char * dbGetInfo(
DBENTRY *pdbentry,
193 DBCORE_API
long dbPutInfo(
DBENTRY *pdbentry,
194 const char *name,
const char *
string);
196 DBCORE_API
brkTable * dbFindBrkTable(DBBASE *pdbbase,
199 DBCORE_API
const char * dbGetFieldTypeString(
int dbfType);
200 DBCORE_API
int dbFindFieldType(
const char *type);
202 DBCORE_API
dbMenu * dbFindMenu(DBBASE *pdbbase,
204 DBCORE_API
char ** dbGetMenuChoices(
DBENTRY *pdbentry);
205 DBCORE_API
int dbGetMenuIndex(
DBENTRY *pdbentry);
206 DBCORE_API
long dbPutMenuIndex(
DBENTRY *pdbentry,
int index);
207 DBCORE_API
int dbGetNMenuChoices(
DBENTRY *pdbentry);
208 DBCORE_API
char * dbGetMenuStringFromIndex(
DBENTRY *pdbentry,
210 DBCORE_API
int dbGetMenuIndexFromString(
DBENTRY *pdbentry,
215 DBCORE_API
char * dbGetRelatedField(
DBENTRY *pdbentry);
220 DBCORE_API
int dbGetNLinks(
DBENTRY *pdbentry);
221 DBCORE_API
long dbGetLinkField(
DBENTRY *pdbentry,
int index);
224 DBCORE_API
void dbDumpPath(DBBASE *pdbbase);
225 DBCORE_API
void dbDumpRecord(DBBASE *pdbbase,
226 const char *precordTypename,
int level);
227 DBCORE_API
void dbDumpMenu(DBBASE *pdbbase,
228 const char *menuName);
229 DBCORE_API
void dbDumpRecordType(DBBASE *pdbbase,
230 const char *recordTypeName);
231 DBCORE_API
void dbDumpField(DBBASE *pdbbase,
232 const char *recordTypeName,
const char *fname);
233 DBCORE_API
void dbDumpDevice(DBBASE *pdbbase,
234 const char *recordTypeName);
235 DBCORE_API
void dbDumpDriver(DBBASE *pdbbase);
236 DBCORE_API
void dbDumpLink(DBBASE *pdbbase);
237 DBCORE_API
void dbDumpRegistrar(DBBASE *pdbbase);
238 DBCORE_API
void dbDumpFunction(DBBASE *pdbbase);
239 DBCORE_API
void dbDumpVariable(DBBASE *pdbbase);
240 DBCORE_API
void dbDumpBreaktable(DBBASE *pdbbase,
242 DBCORE_API
void dbPvdDump(DBBASE *pdbbase,
int verbose);
243 DBCORE_API
void dbReportDeviceConfig(DBBASE *pdbbase,
247 #define dbCalloc(nobj,size) callocMustSucceed(nobj,size,"dbCalloc")
248 #define dbMalloc(size) mallocMustSucceed(size,"dbMalloc")
249 DBCORE_API
void dbCatString(
char **
string,
int *stringLength,
250 char *pnew,
char *separator);
252 extern int dbStaticDebug;
253 extern int dbConvertStrict;
255 #define S_dbLib_recordTypeNotFound (M_dbLib|1)
256 #define S_dbLib_recExists (M_dbLib|3)
257 #define S_dbLib_recNotFound (M_dbLib|5)
258 #define S_dbLib_flddesNotFound (M_dbLib|7)
259 #define S_dbLib_fieldNotFound (M_dbLib|9)
260 #define S_dbLib_badField (M_dbLib|11)
261 #define S_dbLib_menuNotFound (M_dbLib|13)
262 #define S_dbLib_badLink (M_dbLib|15)
263 #define S_dbLib_nameLength (M_dbLib|17)
264 #define S_dbLib_noRecSup (M_dbLib|19)
265 #define S_dbLib_strLen (M_dbLib|21)
266 #define S_dbLib_noSizeOffset (M_dbLib|23)
267 #define S_dbLib_outMem (M_dbLib|27)
268 #define S_dbLib_infoNotFound (M_dbLib|29)
Routines for code that can't continue or return after an error.