00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef _EYEDB_API_LIB_H
00026 #define _EYEDB_API_LIB_H
00027
00028 #include <eyedblib/rpc_fe.h>
00029 #include "rpc_lib.h"
00030 #include <eyedblib/rpcdb.h>
00031 #include <eyedb/internals/ObjectHeader.h>
00032
00033 namespace eyedb {
00034
00035 #ifndef _IDB_KERN_
00036 typedef union {
00037 eyedblib::int32 a_int;
00038 eyedblib::int64 a_int64;
00039 char *a_string;
00040 rpc_ClientData a_data;
00041
00042
00043 rpcDB_LocalDBContext a_ldbctx;
00044 eyedbsm::Oid a_oid;
00045 Bool a_bool;
00046 RPCStatusRec a_status;
00047 } ClientArg;
00048
00049 extern rpc_ClientFunction
00050 *DBMCREATE_RPC,
00051 *DBMUPDATE_RPC,
00052
00053 *DBCREATE_RPC,
00054 *DBDELETE_RPC,
00055
00056 *DBINFO_RPC,
00057 *DBMOVE_RPC,
00058 *DBCOPY_RPC,
00059 *DBRENAME_RPC,
00060
00061 *USER_ADD_RPC,
00062 *USER_DELETE_RPC,
00063 *USER_PASSWD_SET_RPC,
00064 *PASSWD_SET_RPC,
00065
00066 *DEFAULT_DBACCESS_SET_RPC,
00067 *USER_DBACCESS_SET_RPC,
00068 *USER_SYSACCESS_SET_RPC,
00069
00070 *BACKEND_INTERRUPT_RPC,
00071
00072 *TRANSACTION_BEGIN_RPC,
00073 *TRANSACTION_ABORT_RPC,
00074 *TRANSACTION_COMMIT_RPC,
00075
00076 *TRANSACTION_PARAMS_SET_RPC,
00077 *TRANSACTION_PARAMS_GET_RPC,
00078
00079 *DBOPEN_RPC,
00080 *DBOPENLOCAL_RPC,
00081 *DBCLOSE_RPC,
00082
00083 *OBJECT_CREATE_RPC,
00084 *OBJECT_READ_RPC,
00085 *OBJECT_WRITE_RPC,
00086 *OBJECT_DELETE_RPC,
00087 *OBJECT_HEADER_READ_RPC,
00088 *OBJECT_SIZE_MODIFY_RPC,
00089 *OBJECT_PROTECTION_SET_RPC,
00090 *OBJECT_PROTECTION_GET_RPC,
00091 *OBJECT_CHECK_RPC,
00092
00093 *OID_MAKE_RPC,
00094
00095 *DATA_CREATE_RPC,
00096 *DATA_READ_RPC,
00097 *DATA_WRITE_RPC,
00098 *DATA_DELETE_RPC,
00099 *DATA_SIZE_GET_RPC,
00100 *DATA_SIZE_MODIFY_RPC,
00101
00102 *VDDATA_CREATE_RPC,
00103 *VDDATA_WRITE_RPC,
00104 *VDDATA_DELETE_RPC,
00105
00106 *SCHEMA_COMPLETE_RPC,
00107
00108 *ATTRIBUTE_INDEX_CREATE_RPC,
00109 *ATTRIBUTE_INDEX_REMOVE_RPC,
00110
00111 *INDEX_CREATE_RPC,
00112 *INDEX_REMOVE_RPC,
00113
00114 *CONSTRAINT_CREATE_RPC,
00115 *CONSTRAINT_DELETE_RPC,
00116
00117 *COLLECTION_GET_BY_IND_RPC,
00118 *COLLECTION_GET_BY_VALUE_RPC,
00119
00120 *SET_OBJECT_LOCK_RPC,
00121 *GET_OBJECT_LOCK_RPC,
00122
00123 *QUERY_LANG_CREATE_RPC,
00124 *QUERY_DATABASE_CREATE_RPC,
00125 *QUERY_CLASS_CREATE_RPC,
00126 *QUERY_COLLECTION_CREATE_RPC,
00127 *QUERY_ATTRIBUTE_CREATE_RPC,
00128 *QUERY_DELETE_RPC,
00129 *QUERY_SCAN_NEXT_RPC,
00130
00131 *EXECUTABLE_CHECK_RPC,
00132 *EXECUTABLE_EXECUTE_RPC,
00133 *EXECUTABLE_SET_EXTREF_PATH_RPC,
00134 *EXECUTABLE_GET_EXTREF_PATH_RPC,
00135
00136 *OQL_CREATE_RPC,
00137 *OQL_DELETE_RPC,
00138 *OQL_GETRESULT_RPC,
00139
00140 *SET_CONN_INFO_RPC,
00141 *CHECK_AUTH_RPC,
00142
00143 *INDEX_GET_COUNT_RPC,
00144 *INDEX_GET_STATS_RPC,
00145 *INDEX_SIMUL_STATS_RPC,
00146 *COLLECTION_GET_IMPLSTATS_RPC,
00147 *COLLECTION_SIMUL_IMPLSTATS_RPC,
00148 *INDEX_GET_IMPL_RPC,
00149 *COLLECTION_GET_IMPL_RPC,
00150
00151 *SET_LOG_MASK_RPC,
00152
00153 *GET_DEFAULT_DATASPACE_RPC,
00154 *SET_DEFAULT_DATASPACE_RPC,
00155 *DATASPACE_SET_CURRENT_DATAFILE_RPC,
00156 *DATASPACE_GET_CURRENT_DATAFILE_RPC,
00157
00158 *GET_DEFAULT_INDEX_DATASPACE_RPC,
00159 *SET_DEFAULT_INDEX_DATASPACE_RPC,
00160 *GET_INDEX_LOCATIONS_RPC,
00161 *MOVE_INDEX_RPC,
00162 *GET_INSTANCE_CLASS_LOCATIONS_RPC,
00163 *MOVE_INSTANCE_CLASS_RPC,
00164 *GET_OBJECTS_LOCATIONS_RPC,
00165 *MOVE_OBJECTS_RPC,
00166 *GET_ATTRIBUTE_LOCATIONS_RPC,
00167 *MOVE_ATTRIBUTE_RPC,
00168
00169 *CREATE_DATAFILE_RPC,
00170 *DELETE_DATAFILE_RPC,
00171 *MOVE_DATAFILE_RPC,
00172 *DEFRAGMENT_DATAFILE_RPC,
00173 *RESIZE_DATAFILE_RPC,
00174 *GET_DATAFILEI_NFO_RPC,
00175 *RENAME_DATAFILE_RPC,
00176 *CREATE_DATASPACE_RPC,
00177 *UPDATE_DATASPACE_RPC,
00178 *DELETE_DATASPACE_RPC,
00179 *RENAME_DATASPACE_RPC,
00180 *GET_SERVER_OUTOFBAND_DATA_RPC,
00181
00182 *SET_MAXOBJCOUNT_RPC,
00183 *GET_MAXOBJCOUNT_RPC,
00184 *SET_LOGSIZE_RPC,
00185 *GET_LOGSIZE_RPC;
00186 #endif
00187
00188 extern rpc_Client *
00189 rpcFeInit(void);
00190
00191 extern void
00192 rpcFeRelease(void);
00193
00194 extern rpc_Client *
00195 getRpcClient(void);
00196
00197 extern RPCStatus
00198 connOpen(const char *, const char *, ConnHandle **, int, std::string &);
00199
00200 extern RPCStatus
00201 connClose(ConnHandle *);
00202
00203 extern RPCStatus
00204 dbmCreate(ConnHandle *, const char *, const char *,
00205 const DbCreateDescription *);
00206
00207 extern RPCStatus
00208 dbmUpdate(ConnHandle *, const char *, const char *, const char *);
00209
00210 extern RPCStatus
00211 dbCreate(ConnHandle *, const char *, const char *, const char *,
00212 const char *, const DbCreateDescription *);
00213
00214 extern RPCStatus
00215 dbDelete(ConnHandle *, const char *, const char *, const char *,
00216 const char *);
00217
00218 extern RPCStatus
00219 dbInfo(ConnHandle *, const char *, const char *, const char *,
00220 const char *, int *, DbCreateDescription *);
00221
00222 extern RPCStatus
00223 dbMove(ConnHandle *, const char *, const char *, const char *,
00224 const char *, const DbCreateDescription *);
00225
00226 extern RPCStatus
00227 dbCopy(ConnHandle *, const char *, const char *, const char *,
00228 const char *, const char *,
00229 Bool, const DbCreateDescription *);
00230
00231 extern RPCStatus
00232 dbRename(ConnHandle *, const char *, const char *, const char *,
00233 const char *, const char *);
00234
00235 extern RPCStatus
00236 userAdd(ConnHandle *, const char *, const char *, const char *,
00237 const char *, const char *, int);
00238
00239 extern RPCStatus
00240 userDelete(ConnHandle *, const char *, const char *, const char *,
00241 const char *);
00242
00243 extern RPCStatus
00244 userPasswdSet(ConnHandle *, const char *, const char *, const char *,
00245 const char *, const char *);
00246
00247 extern RPCStatus
00248 passwdSet(ConnHandle *, const char *, const char *, const char *,
00249 const char *);
00250
00251 extern RPCStatus
00252 defaultDBAccessSet(ConnHandle *, const char *,
00253 const char *, const char *, const char *, int);
00254
00255 extern RPCStatus
00256 userDBAccessSet(ConnHandle *, const char *,
00257 const char *, const char *,
00258 const char *, const char *, int);
00259
00260 extern RPCStatus
00261 userSysAccessSet(ConnHandle *, const char *,
00262 const char *, const char *,
00263 const char *, int);
00264
00265 extern RPCStatus
00266 backendInterrupt(ConnHandle *, int);
00267
00268
00269
00270 extern RPCStatus
00271 transactionBegin(DbHandle *,
00272 const TransactionParams *,
00273 TransactionId *);
00274
00275 extern RPCStatus
00276 transactionCommit(DbHandle *, TransactionId);
00277
00278 extern RPCStatus
00279 transactionAbort(DbHandle *, TransactionId);
00280
00281 extern RPCStatus
00282 transactionParamsSet(DbHandle *,
00283 const TransactionParams *);
00284
00285 extern RPCStatus
00286 transactionParamsGet(DbHandle *, TransactionParams *);
00287
00288
00289
00290 extern RPCStatus
00291 dbOpen(ConnHandle *, const char *, const char *, const char *,
00292 const char *, int, int, int, unsigned int,
00293 int *, void *, char **, int *,
00294 unsigned int *, DbHandle **);
00295
00296 extern RPCStatus
00297 dbClose(const DbHandle *);
00298
00299
00300 extern RPCStatus
00301 objectCreate(DbHandle *, short, const Data, eyedbsm::Oid *);
00302
00303 extern RPCStatus
00304 objectDelete(DbHandle *, const eyedbsm::Oid *, unsigned int flags);
00305
00306 extern RPCStatus
00307 objectRead(DbHandle *, Data, Data *, short *, const eyedbsm::Oid *,
00308 ObjectHeader *phdr, LockMode lockmode, void **);
00309
00310 extern RPCStatus
00311 objectWrite(DbHandle *, const Data, const eyedbsm::Oid *);
00312
00313 extern RPCStatus
00314 objectHeaderRead(DbHandle *, const eyedbsm::Oid *, ObjectHeader *);
00315
00316 extern RPCStatus
00317 objectSizeModify(DbHandle *, unsigned int, const eyedbsm::Oid *);
00318
00319 extern RPCStatus
00320 objectCheck(DbHandle *, const eyedbsm::Oid *, int *, eyedbsm::Oid *);
00321
00322 extern RPCStatus
00323 objectProtectionSet(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *);
00324
00325 extern RPCStatus
00326 objectProtectionGet(DbHandle *, const eyedbsm::Oid *, eyedbsm::Oid *);
00327
00328 extern RPCStatus
00329 oidMake(DbHandle *, short, const Data, unsigned int, eyedbsm::Oid *);
00330
00331
00332 extern RPCStatus
00333 dataCreate(DbHandle *, short, unsigned int, const Data, eyedbsm::Oid *);
00334
00335 extern RPCStatus
00336 dataDelete(DbHandle *, const eyedbsm::Oid *);
00337
00338 extern RPCStatus
00339 dataRead(DbHandle *, int, unsigned int, Data, short *, const eyedbsm::Oid *);
00340
00341 extern RPCStatus
00342 dataWrite(DbHandle *, int, unsigned int, const Data, const eyedbsm::Oid *);
00343
00344 extern RPCStatus
00345 dataSizeGet(DbHandle *, const eyedbsm::Oid *, unsigned int *);
00346
00347 extern RPCStatus
00348 dataSizeModify(DbHandle *, unsigned int, const eyedbsm::Oid *);
00349
00350 extern RPCStatus
00351 schemaComplete(DbHandle *, const char *);
00352
00353
00354 extern RPCStatus
00355 VDdataCreate(DbHandle *, short, const eyedbsm::Oid *, const eyedbsm::Oid *,
00356 int, int, int, const Data, const eyedbsm::Oid *, eyedbsm::Oid *,
00357 Data, Size);
00358
00359 extern RPCStatus
00360 VDdataDelete(DbHandle *,const eyedbsm::Oid *, const eyedbsm::Oid *,
00361 int, const eyedbsm::Oid *, const eyedbsm::Oid *,
00362 Data, Size);
00363
00364 extern RPCStatus
00365 VDdataWrite(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *,
00366 int, int, unsigned int, const Data, const eyedbsm::Oid *, const eyedbsm::Oid *,
00367 Data, Size);
00368
00369
00370 extern RPCStatus
00371 attributeIndexCreate(DbHandle *, const eyedbsm::Oid *, int, int,
00372 eyedbsm::Oid *, Data, Size);
00373
00374 extern RPCStatus
00375 attributeIndexRemove(DbHandle *, const eyedbsm::Oid *, int, int, Data,
00376 Size);
00377
00378 extern RPCStatus
00379 indexCreate(DbHandle *, bool index_move, const eyedbsm::Oid *);
00380
00381 extern RPCStatus
00382 indexRemove(DbHandle *, const eyedbsm::Oid *, int);
00383
00384 extern RPCStatus
00385 constraintCreate(DbHandle *, const eyedbsm::Oid *);
00386
00387 extern RPCStatus
00388 constraintDelete(DbHandle *, const eyedbsm::Oid *, int);
00389
00390
00391 extern RPCStatus
00392 collectionGetByInd(DbHandle *, const eyedbsm::Oid *, int, int *, Data,
00393 int);
00394
00395 extern RPCStatus
00396 collectionGetByOid(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *, int *,
00397 int *);
00398
00399 extern RPCStatus
00400 collectionGetByValue(DbHandle *, const eyedbsm::Oid *, Data, int,
00401 int *, int *);
00402
00403
00404 extern RPCStatus
00405 setObjectLock(DbHandle *, const eyedbsm::Oid *, int, int *);
00406
00407 extern RPCStatus
00408 getObjectLock(DbHandle *, const eyedbsm::Oid *, int *);
00409
00410
00411 extern RPCStatus
00412 queryLangCreate(DbHandle *, const char *, int *, void *, int *);
00413
00414 extern RPCStatus
00415 queryDatabaseCreate(DbHandle *, int *);
00416
00417 extern RPCStatus
00418 queryClassCreate(DbHandle *, const eyedbsm::Oid *, int *);
00419
00420 extern RPCStatus
00421 queryCollectionCreate(DbHandle *, const eyedbsm::Oid *, Bool, int *);
00422
00423 extern RPCStatus
00424 queryAttributeCreate(DbHandle *, const eyedbsm::Oid *, int, int, Data,
00425 Data, int, int, int, int *);
00426
00427 extern RPCStatus
00428 queryDelete(DbHandle *, int);
00429
00430 extern RPCStatus
00431 queryScanNext(DbHandle *, int qid, int wanted, int *found,
00432 void *atom_array);
00433
00434
00435
00436 extern RPCStatus
00437 execCheck(DbHandle *, const char *intname, const eyedbsm::Oid *oid,
00438 const char *extref);
00439
00440 extern RPCStatus
00441 execExecute(DbHandle *, const char *user, const char *passwd,
00442 const char *intname,
00443 const char *name,
00444 int exec_type,
00445 const eyedbsm::Oid *cloid,
00446 const char *extref,
00447 const void *sign,
00448 const eyedbsm::Oid *execoid,
00449 const eyedbsm::Oid *objoid,
00450 void *o,
00451 const void *argarray,
00452 void *argret);
00453
00454 extern RPCStatus
00455 execSetExtRefPath(ConnHandle *, const char *user,
00456 const char *passwd, const char *path);
00457
00458 extern RPCStatus
00459 execGetExtRefPath(ConnHandle *, const char *user, const char *passwd,
00460 char path[], unsigned int pathlen);
00461
00462 extern RPCStatus
00463 set_conn_info(ConnHandle *, const char *, int, const char *, const char *,
00464 int *, int *, int, char **);
00465
00466 extern RPCStatus
00467 checkAuth(ConnHandle *, const char *);
00468
00469 extern RPCStatus
00470 oqlCreate(ConnHandle *, DbHandle *, const char *, int *, void *);
00471
00472 extern RPCStatus
00473 oqlDelete(ConnHandle *, DbHandle *, int);
00474
00475 extern RPCStatus
00476 oqlGetResult(ConnHandle *, DbHandle *, int, void *);
00477
00478 extern RPCStatus
00479 setLogMask(ConnHandle *, eyedblib::int64);
00480
00481 extern RPCStatus
00482 indexGetCount(DbHandle *, const eyedbsm::Oid *, int *);
00483
00484 extern RPCStatus
00485 indexGetStats(DbHandle *, const eyedbsm::Oid *, Data *);
00486
00487 extern RPCStatus
00488 indexSimulStats(DbHandle *, const eyedbsm::Oid *, const Data,
00489 Size, Data *);
00490
00491 extern RPCStatus
00492 collectionGetImplStats(DbHandle *, int, const eyedbsm::Oid *, Data *);
00493
00494 extern RPCStatus
00495 collectionSimulImplStats(DbHandle *, int, const eyedbsm::Oid *, const Data, Size, Data *);
00496
00497 extern RPCStatus
00498 indexGetImplementation(DbHandle *, const eyedbsm::Oid *, Data *);
00499
00500 extern RPCStatus
00501 collectionGetImplementation(DbHandle *, int, const eyedbsm::Oid *, Data *);
00502
00503 extern RPCStatus
00504 getDefaultDataspace(DbHandle *, int *);
00505
00506 extern RPCStatus
00507 setDefaultDataspace(DbHandle *, int);
00508
00509 extern RPCStatus
00510 dataspaceSetCurrentDatafile(DbHandle *, int, int);
00511
00512 extern RPCStatus
00513 dataspaceGetCurrentDatafile(DbHandle *, int, int *);
00514
00515 extern RPCStatus
00516 getDefaultIndexDataspace(DbHandle *, const eyedbsm::Oid *, int, int *);
00517
00518 extern RPCStatus
00519 setDefaultIndexDataspace(DbHandle *, const eyedbsm::Oid *, int, int);
00520
00521 extern RPCStatus
00522 getIndexLocations(DbHandle *, const eyedbsm::Oid *, int, void *);
00523
00524 extern RPCStatus
00525 moveIndex(DbHandle *, const eyedbsm::Oid *, int, int);
00526
00527 extern RPCStatus
00528 getInstanceClassLocations(DbHandle *, const eyedbsm::Oid *, int, Data *);
00529
00530 extern RPCStatus
00531 moveInstanceClass(DbHandle *, const eyedbsm::Oid *, int, int);
00532
00533 extern RPCStatus
00534 getObjectsLocations(DbHandle *, const eyedbsm::Oid *, unsigned int, void *);
00535
00536 extern RPCStatus
00537 moveObjects(DbHandle *, const eyedbsm::Oid *, unsigned int cnt,
00538 int dspid);
00539
00540 extern RPCStatus
00541 getAttributeLocations(DbHandle *, const eyedbsm::Oid *, int, Data *);
00542
00543 extern RPCStatus
00544 moveAttribute(DbHandle *, const eyedbsm::Oid *, int, int);
00545
00546 extern RPCStatus
00547 createDatafile(DbHandle *, const char *, const char *, int, int, int);
00548
00549 extern RPCStatus
00550 deleteDatafile(DbHandle *, int);
00551
00552 extern RPCStatus
00553 moveDatafile(DbHandle *, int, const char *);
00554
00555 extern RPCStatus
00556 defragmentDatafile(DbHandle *, int);
00557
00558 extern RPCStatus
00559 resizeDatafile(DbHandle *, int, unsigned int);
00560
00561 extern RPCStatus
00562 getDatafileInfo(DbHandle *, int, void *);
00563
00564 extern RPCStatus
00565 renameDatafile(DbHandle *, int, const char *);
00566
00567 extern RPCStatus
00568 createDataspace(DbHandle *, const char *, void *, unsigned int);
00569
00570 extern RPCStatus
00571 updateDataspace(DbHandle *, int, void *, unsigned int, int, int);
00572
00573 extern RPCStatus
00574 deleteDataspace(DbHandle *, int);
00575
00576 extern RPCStatus
00577 renameDataspace(DbHandle *, int, const char *);
00578
00579 extern RPCStatus
00580 getServerOutOfBandData(ConnHandle *, int *, Data *,
00581 unsigned int *);
00582
00583 extern RPCStatus
00584 setMaxObjCount(DbHandle *, int);
00585
00586 extern RPCStatus
00587 getMaxObjCount(DbHandle *, int *);
00588
00589 extern RPCStatus
00590 setLogSize(DbHandle *, int);
00591
00592 extern RPCStatus
00593 getLogSize(DbHandle *, int *);
00594
00595
00596 extern RPCStatus
00597 SEconnOpen(const char *, ConnHandle *);
00598 }
00599
00600 #endif