0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034 #ifndef __OUBF_H
0035 #define __OUBF_H
0036
0037 #ifdef __cplusplus
0038 extern "C" {
0039 #endif
0040
0041 #include <stdint.h>
0042 #include <ubf.h>
0043 #include <atmi.h>
0044
0045
0046 #define OBerror(P_CTXT) (*O_Bget_Ferror_addr(P_CTXT))
0047
0048
0049
0050
0051
0052 extern NDRX_API int * Ondrx_Bget_Ferror_addr(TPCONTEXT_T *p_ctxt);
0053 extern NDRX_API int * O_Bget_Ferror_addr(TPCONTEXT_T *p_ctxt);
0054 extern NDRX_API int OBlen(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ);
0055 extern NDRX_API int OCBadd(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, char * buf, BFLDLEN len, int usrtype);
0056 extern NDRX_API int OCBchg(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char * buf, BFLDLEN len, int usrtype);
0057 extern NDRX_API int OCBget(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char *buf, BFLDLEN *len, int usrtype);
0058 extern NDRX_API int OBdel(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ);
0059 extern NDRX_API int OBpres(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ);
0060 extern NDRX_API int OBproj(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID * fldlist);
0061 extern NDRX_API int OBprojcpy(TPCONTEXT_T *p_ctxt, UBFH * p_ub_dst, UBFH * p_ub_src, BFLDID * fldlist);
0062 extern NDRX_API BFLDID OBfldid(TPCONTEXT_T *p_ctxt, char *fldnm);
0063 extern NDRX_API char * OBfname(TPCONTEXT_T *p_ctxt, BFLDID bfldid);
0064 extern NDRX_API int OBcpy(TPCONTEXT_T *p_ctxt, UBFH * p_ub_dst, UBFH * p_ub_src);
0065 extern NDRX_API int OBchg(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char * buf, BFLDLEN len);
0066 extern NDRX_API int OBinit(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDLEN len);
0067 extern NDRX_API int OBnext(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *bfldid, BFLDOCC *occ, char *buf, BFLDLEN *len);
0068 extern NDRX_API int OBnext2(TPCONTEXT_T *p_ctxt, Bnext_state_t *bnext_state, UBFH *p_ub, BFLDID *bfldid, BFLDOCC *occ, char *buf, BFLDLEN *len, char **d_ptr);
0069 extern NDRX_API int OBget(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ, char * buf, BFLDLEN * buflen);
0070 extern NDRX_API char * OBboolco(TPCONTEXT_T *p_ctxt, char * expr);
0071 extern NDRX_API char * OBfind(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ, BFLDLEN * p_len);
0072 extern NDRX_API int OBboolev(TPCONTEXT_T *p_ctxt, UBFH * p_ub, char *tree);
0073 extern NDRX_API double OBfloatev(TPCONTEXT_T *p_ctxt, UBFH * p_ub, char *tree);
0074 extern NDRX_API int OBadd(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, char *buf, BFLDLEN len);
0075 extern NDRX_API int OBaddfast(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, char *buf, BFLDLEN len, Bfld_loc_info_t *next_fld);
0076 extern NDRX_API char * OBecodestr(TPCONTEXT_T *p_ctxt, int err);
0077 extern NDRX_API void OB_error(TPCONTEXT_T *p_ctxt, char *str);
0078 extern NDRX_API char * OBstrerror(TPCONTEXT_T *p_ctxt, int err);
0079 extern NDRX_API BFLDID OBmkfldid(TPCONTEXT_T *p_ctxt, int fldtype, BFLDID bfldid);
0080 extern NDRX_API BFLDOCC OBoccur(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid);
0081 extern NDRX_API long OBused(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0082 extern NDRX_API int OBfldtype(TPCONTEXT_T *p_ctxt, BFLDID bfldid);
0083 extern NDRX_API int OBdelall(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid);
0084 extern NDRX_API int OBdelete(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldlist);
0085 extern NDRX_API BFLDOCC OBfldno(TPCONTEXT_T *p_ctxt, BFLDID bfldid);
0086 extern NDRX_API long OBunused(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0087 extern NDRX_API long OBsizeof(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0088 extern NDRX_API char * OBtype(TPCONTEXT_T *p_ctxt, BFLDID bfldid);
0089 extern NDRX_API int OBfree(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0090 extern NDRX_API UBFH * OBalloc(TPCONTEXT_T *p_ctxt, BFLDOCC f, BFLDLEN v);
0091 extern NDRX_API UBFH * OBrealloc(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDOCC f, BFLDLEN v);
0092 extern NDRX_API int OBupdate(TPCONTEXT_T *p_ctxt, UBFH *p_ub_dst, UBFH *p_ub_src);
0093 extern NDRX_API int OBconcat(TPCONTEXT_T *p_ctxt, UBFH *p_ub_dst, UBFH *p_ub_src);
0094 extern NDRX_API char * OCBfind(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ, BFLDLEN * len, int usrtype);
0095 extern NDRX_API char * OCBgetalloc(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ, int usrtype, BFLDLEN *extralen);
0096 extern NDRX_API BFLDOCC OCBfindocc(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid,char * buf, BFLDLEN len, int usrtype);
0097 extern NDRX_API BFLDOCC OBfindocc(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid,char * buf, BFLDLEN len);
0098 extern NDRX_API char * OBgetalloc(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid, BFLDOCC occ, BFLDLEN *extralen);
0099 extern NDRX_API char * OBfindlast(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID bfldid,BFLDOCC *occ, BFLDLEN *len);
0100 extern NDRX_API int OBgetlast(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid,BFLDOCC *occ, char *buf, BFLDLEN *len);
0101 extern NDRX_API int OBprint(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0102 extern NDRX_API int OBfprint(TPCONTEXT_T *p_ctxt, UBFH *p_ub, FILE * outf);
0103 extern NDRX_API int OBfprintcb(TPCONTEXT_T *p_ctxt, UBFH *p_ub, ndrx_plugin_tplogprintubf_hook_t p_writef, void *dataptr1);
0104 extern NDRX_API char * OBtypcvt(TPCONTEXT_T *p_ctxt, BFLDLEN * to_len, int to_type,char *from_buf, int from_type, BFLDLEN from_len);
0105 extern NDRX_API int OBextread(TPCONTEXT_T *p_ctxt, UBFH * p_ub, FILE *inf);
0106 extern NDRX_API int OBextreadcb(TPCONTEXT_T *p_ctxt, UBFH * p_ub, long (*p_readf)(char *buffer, long bufsz, void *dataptr1), void *dataptr1);
0107 extern NDRX_API void OBboolpr(TPCONTEXT_T *p_ctxt, char * tree, FILE *outf);
0108 extern NDRX_API void OBboolprcb(TPCONTEXT_T *p_ctxt, char * tree, int (*p_writef)(char *buffer, long datalen, void *dataptr1), void *dataptr1);
0109 extern NDRX_API int OBread(TPCONTEXT_T *p_ctxt, UBFH * p_ub, FILE * inf);
0110 extern NDRX_API int OBwrite(TPCONTEXT_T *p_ctxt, UBFH *p_ub, FILE * outf);
0111 extern NDRX_API int OBwritecb(TPCONTEXT_T *p_ctxt, UBFH *p_ub, long (*p_writef)(char *buffer, long bufsz, void *dataptr1), void *dataptr1);
0112 extern NDRX_API void OBtreefree(TPCONTEXT_T *p_ctxt, char *tree);
0113 extern NDRX_API int OBboolsetcbf(TPCONTEXT_T *p_ctxt, char *funcname, long (*functionPtr)(UBFH *p_ub, char *funcname));
0114 extern NDRX_API int OBboolsetcbf2(TPCONTEXT_T *p_ctxt, char *funcname, long (*functionPtr)(UBFH *p_ub, char *funcname, char *arg1));
0115 extern NDRX_API int OBadds(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, char *buf);
0116 extern NDRX_API int OBchgs(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char *buf);
0117 extern NDRX_API int OBgets(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char *buf);
0118 extern NDRX_API char * OBgetsa(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, BFLDLEN *extralen);
0119 extern NDRX_API char * OBfinds(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ);
0120 extern NDRX_API int OBisubf(TPCONTEXT_T *p_ctxt, UBFH *p_ub);
0121 extern NDRX_API int OBindex(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDOCC occ);
0122 extern NDRX_API BFLDOCC OBunindex(TPCONTEXT_T *p_ctxt, UBFH * p_ub);
0123 extern NDRX_API long OBidxused(TPCONTEXT_T *p_ctxt, UBFH * p_ub);
0124 extern NDRX_API int OBrstrindex(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDOCC occ);
0125 extern NDRX_API int OBjoin(TPCONTEXT_T *p_ctxt, UBFH *dest, UBFH *src);
0126 extern NDRX_API int OBojoin(TPCONTEXT_T *p_ctxt, UBFH *dest, UBFH *src);
0127 extern NDRX_API int OBcmp(TPCONTEXT_T *p_ctxt, UBFH *p_ubf1, UBFH *p_ubf2);
0128 extern NDRX_API int OBsubset(TPCONTEXT_T *p_ctxt, UBFH *p_ubf1, UBFH *p_ubf2);
0129 extern NDRX_API BFLDOCC OBnum(TPCONTEXT_T *p_ctxt, UBFH * p_ub);
0130 extern NDRX_API long OBneeded(TPCONTEXT_T *p_ctxt, BFLDOCC nrfields, BFLDLEN totsize);
0131 extern NDRX_API int OBvnull(TPCONTEXT_T *p_ctxt, char *cstruct, char *cname, BFLDOCC occ, char *view);
0132 extern NDRX_API int OBvselinit(TPCONTEXT_T *p_ctxt, char *cstruct, char *cname, char *view);
0133 extern NDRX_API int OBvsinit(TPCONTEXT_T *p_ctxt, char *cstruct, char *view);
0134 extern NDRX_API void OBvrefresh(TPCONTEXT_T *p_ctxt);
0135 extern NDRX_API int OBvopt(TPCONTEXT_T *p_ctxt, char *cname, int option, char *view);
0136 extern NDRX_API int OBvftos(TPCONTEXT_T *p_ctxt, UBFH *p_ub, char *cstruct, char *view);
0137 extern NDRX_API int OBvstof(TPCONTEXT_T *p_ctxt, UBFH *p_ub, char *cstruct, int mode, char *view);
0138 extern NDRX_API int OCBvget(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, char *cname, BFLDOCC occ, char *buf, BFLDLEN *len, int usrtype, long flags);
0139 extern NDRX_API char * OCBvgetalloc(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, char *cname, BFLDOCC occ, int usrtype, long flags, BFLDLEN *extralen);
0140 extern NDRX_API int OCBvchg(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, char *cname, BFLDOCC occ, char *buf, BFLDLEN len, int usrtype);
0141 extern NDRX_API long OBvsizeof(TPCONTEXT_T *p_ctxt, char *view);
0142 extern NDRX_API long OBvcpy(TPCONTEXT_T *p_ctxt, char *cstruct_dst, char *cstruct_src, char *view);
0143 extern NDRX_API BFLDOCC OBvoccur(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, char *cname, BFLDOCC *maxocc, BFLDOCC *realocc, long *dim_size, int* fldtype);
0144 extern NDRX_API int OBvsetoccur(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, char *cname, BFLDOCC occ);
0145 extern NDRX_API int OBvnext(TPCONTEXT_T *p_ctxt, Bvnext_state_t *state, char *view, char *cname, int *fldtype, BFLDOCC *maxocc, long *dim_size);
0146 extern NDRX_API int OBvcmp(TPCONTEXT_T *p_ctxt, char *cstruct1, char *view1, char *cstruct2, char *view2);
0147 extern NDRX_API int OBvprint(TPCONTEXT_T *p_ctxt, char *cstruct, char *view);
0148 extern NDRX_API int OBvfprint(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, FILE * outf);
0149 extern NDRX_API int OBvfprintcb(TPCONTEXT_T *p_ctxt, char *cstruct, char *view,ndrx_plugin_tplogprintubf_hook_t p_writef, void *dataptr1);
0150 extern NDRX_API int OBvextread(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, FILE *inf);
0151 extern NDRX_API int OBvextreadcb(TPCONTEXT_T *p_ctxt, char *cstruct, char *view, long (*p_readf)(char *buffer, long bufsz, void *dataptr1), void *dataptr1);
0152 extern NDRX_API void * Ondrx_ubf_tls_get(TPCONTEXT_T *p_ctxt);
0153 extern NDRX_API int Ondrx_ubf_tls_set(TPCONTEXT_T *p_ctxt, void *data);
0154 extern NDRX_API void Ondrx_ubf_tls_free(TPCONTEXT_T *p_ctxt, void *data);
0155 extern NDRX_API void * Ondrx_ubf_tls_new(TPCONTEXT_T *p_ctxt, int auto_destroy, int auto_set);
0156 extern NDRX_API EDB_env * OBfldddbgetenv(TPCONTEXT_T *p_ctxt, EDB_dbi **dbi_id, EDB_dbi **dbi_nm);
0157 extern NDRX_API int OBflddbload(TPCONTEXT_T *p_ctxt);
0158 extern NDRX_API BFLDID OBflddbid(TPCONTEXT_T *p_ctxt, char *fldname);
0159 extern NDRX_API char * OBflddbname(TPCONTEXT_T *p_ctxt, BFLDID bfldid);
0160 extern NDRX_API int OBflddbget(TPCONTEXT_T *p_ctxt, EDB_val *data, short *p_fldtype,BFLDID *p_bfldno, BFLDID *p_bfldid, char *fldname, int fldname_bufsz);
0161 extern NDRX_API int OBflddbunlink(TPCONTEXT_T *p_ctxt);
0162 extern NDRX_API void OBflddbunload(TPCONTEXT_T *p_ctxt);
0163 extern NDRX_API int OBflddbdrop(TPCONTEXT_T *p_ctxt, EDB_txn *txn);
0164 extern NDRX_API int OBflddbdel(TPCONTEXT_T *p_ctxt, EDB_txn *txn, BFLDID bfldid);
0165 extern NDRX_API int OBflddbadd(TPCONTEXT_T *p_ctxt, EDB_txn *txn, short fldtype, BFLDID bfldno, char *fldname);
0166 extern NDRX_API int OB32to16(TPCONTEXT_T *p_ctxt, UBFH *dest, UBFH *src);
0167 extern NDRX_API int OB16to32(TPCONTEXT_T *p_ctxt, UBFH *dest, UBFH *src);
0168 extern NDRX_API int OBgetr(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID *fldidocc, char * buf, BFLDLEN * buflen);
0169 extern NDRX_API int OBgetrv(TPCONTEXT_T *p_ctxt, UBFH * p_ub, char * buf, BFLDLEN * buflen, ...);
0170 extern NDRX_API int OCBgetr(TPCONTEXT_T *p_ctxt, UBFH * p_ub, BFLDID *fldidocc,char * buf, BFLDLEN * buflen, int usrtype);
0171 extern NDRX_API int OCBgetrv(TPCONTEXT_T *p_ctxt, UBFH * p_ub, char * buf, BFLDLEN * buflen, int usrtype, ...);
0172 extern NDRX_API char * OCBgetallocr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, int usrtype, BFLDLEN *extralen);
0173 extern NDRX_API char * OCBgetallocrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, int usrtype, BFLDLEN *extralen, ...);
0174 extern NDRX_API char* OBfindr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, BFLDLEN *p_len);
0175 extern NDRX_API char* OBfindrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDLEN *p_len, ...);
0176 extern NDRX_API char * OCBfindr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, BFLDLEN *len, int usrtype);
0177 extern NDRX_API char * OCBfindrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDLEN *len, int usrtype, ...);
0178 extern NDRX_API int OBpresr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc);
0179 extern NDRX_API int OBpresrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, ...);
0180 extern NDRX_API int OCBvgetr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, char *cname, BFLDOCC occ, char *buf, BFLDLEN *len, int usrtype, long flags);
0181 extern NDRX_API int OCBvgetrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, char *cname, BFLDOCC occ,char *buf, BFLDLEN *len, int usrtype, long flags, ...);
0182 extern NDRX_API int OBvnullr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, char *cname, BFLDOCC occ);
0183 extern NDRX_API int OBvnullrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, char *cname, BFLDOCC occ, ...);
0184 extern NDRX_API char * OCBvgetallocr(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID *fldidocc, char *cname, BFLDOCC occ, int usrtype, long flags, BFLDLEN *extralen);
0185 extern NDRX_API char* OCBvgetallocrv(TPCONTEXT_T *p_ctxt, UBFH *p_ub, char *cname, BFLDOCC occ,int usrtype, long flags, BFLDLEN *extralen, ...);
0186 extern NDRX_API int Ondrx_Fchg(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, BFLDOCC occ, char * buf, BFLDLEN len);
0187 extern NDRX_API int Ondrx_Fadd(TPCONTEXT_T *p_ctxt, UBFH *p_ub, BFLDID bfldid, char *buf, BFLDLEN len);
0188 #endif
0189