kernel.h

00001 /* 
00002    EyeDB Object Database Management System
00003    Copyright (C) 1994-2008 SYSRA
00004    
00005    EyeDB is free software; you can redistribute it and/or
00006    modify it under the terms of the GNU Lesser General Public
00007    License as published by the Free Software Foundation; either
00008    version 2.1 of the License, or (at your option) any later version.
00009    
00010    EyeDB is distributed in the hope that it will be useful,
00011    but WITHOUT ANY WARRANTY; without even the implied warranty of
00012    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013    Lesser General Public License for more details.
00014    
00015    You should have received a copy of the GNU Lesser General Public
00016    License along with this library; if not, write to the Free Software
00017    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA 
00018 */
00019 
00020 /*
00021    Author: Eric Viara <viara@sysra.com>
00022 */
00023 
00024 
00025 #ifndef _EYEDB_KERNEL_H
00026 #define _EYEDB_KERNEL_H
00027 
00028 namespace eyedb {
00029 
00030   extern void
00031   IDB_init(const char *, const char *, void *, int);
00032 
00033   /* database management */
00034   extern RPCStatus
00035   IDB_dbmCreate(ConnHandle *, const char *, const char *,
00036                 const DbCreateDescription *);
00037 
00038   extern RPCStatus
00039   IDB_dbmUpdate(ConnHandle *, const char *, const char *,
00040                 const char *);
00041 
00042   extern RPCStatus
00043   IDB_dbCreate(ConnHandle *, const char *, const char *,
00044                const char *, const char *,
00045                const DbCreateDescription *);
00046 
00047   extern RPCStatus
00048   IDB_dbDelete(ConnHandle *, const char *, const char *,
00049                const char *, const char *);
00050 
00051   extern RPCStatus
00052   IDB_dbInfo(ConnHandle *, const char *, const char *,
00053              const char *, const char *,
00054              int *, DbCreateDescription *);
00055 
00056   extern RPCStatus
00057   IDB_dbMove(ConnHandle *, const char *, const char *,
00058              const char *, const char *,
00059              const DbCreateDescription *);
00060 
00061   extern RPCStatus
00062   IDB_dbCopy(ConnHandle *, const char *, const char *, const char *,
00063              const char *, const char *,
00064              Bool, const DbCreateDescription *);
00065 
00066   extern RPCStatus
00067   IDB_dbRename(ConnHandle *, const char *, const char *, const char *,
00068                const char *, const char *);
00069 
00070   extern RPCStatus
00071   IDB_dbOpen(ConnHandle *, const char *, const char *,
00072              const char *, const char *, int,
00073              int, int, unsigned int, int *, int *, void *, char **, int *,
00074              unsigned int *, DbHandle **);
00075 
00076   extern RPCStatus
00077   IDB_dbOpen_make(ConnHandle *, const char *, const char *,
00078                   const char *, const char *,
00079                   int, int, int, unsigned int, int *, int *, char **, int *,
00080                   unsigned int *,
00081                   DbHandle **);
00082 
00083   extern RPCStatus
00084   IDB_dbClose(DbHandle *);
00085 
00086   RPCStatus
00087   IDB_dbClose_make(DbHandle *dbh);
00088 
00089   extern RPCStatus
00090   IDB_dbCloseLocal(DbHandle *);
00091 
00092   /* database admin */
00093   extern RPCStatus
00094   IDB_userAdd(ConnHandle *, const char *, const char *, const char *,
00095               const char *, const char *, int user_type);
00096 
00097   extern RPCStatus
00098   IDB_userDelete(ConnHandle *, const char *, const char *, const char *,
00099                  const char *);
00100 
00101   extern RPCStatus
00102   IDB_userPasswdSet(ConnHandle *, const char *, const char *, const char *,
00103                     const char *, const char *);
00104 
00105   extern RPCStatus
00106   IDB_passwdSet(ConnHandle *, const char *, const char *, const char *,
00107                 const char *);
00108 
00109   extern RPCStatus
00110   IDB_defaultDBAccessSet(ConnHandle *, const char *, const char *,
00111                          const char *, const char *, int);
00112 
00113   extern RPCStatus
00114   IDB_userDBAccessSet(ConnHandle *, const char *,
00115                       const char *, const char *,
00116                       const char *, const char *, int);
00117 
00118   extern RPCStatus
00119   IDB_userSysAccessSet(ConnHandle *, const char *,
00120                        const char *, const char *,
00121                        const char *, int);
00122 
00123   extern RPCStatus
00124   IDB_backendInterrupt(ConnHandle *, int);
00125 
00126   RPCStatus
00127   IDB_backendInterruptReset();
00128 
00129   /* transaction management */
00130 
00131   extern RPCStatus
00132   IDB_transactionBegin(DbHandle *,
00133                        const TransactionParams *params,
00134                        Bool local_call);
00135 
00136   extern RPCStatus
00137   IDB_transactionCommit(DbHandle *, Bool local_call);
00138 
00139   extern RPCStatus
00140   IDB_transactionAbort(DbHandle *, Bool local_call);
00141 
00142   extern RPCStatus
00143   IDB_transactionParamsSet(DbHandle *,
00144                            const TransactionParams *params);
00145 
00146   extern RPCStatus
00147   IDB_transactionParamsGet(DbHandle *,
00148                            TransactionParams *params);
00149 
00150   /* object management */
00151 
00152   extern RPCStatus
00153   IDB_objectCreate(DbHandle *, short dspid, const Data, eyedbsm::Oid *, void *,
00154                    Data *, void *);
00155 
00156   extern RPCStatus
00157   IDB_objectDelete(DbHandle *, const eyedbsm::Oid *, unsigned int,
00158                    Data *, void *);
00159 
00160   extern RPCStatus
00161   IDB_objectRead(DbHandle *, Data, Data *, short *, const eyedbsm::Oid *,
00162                  LockMode lockmode, void *);
00163 
00164   extern RPCStatus
00165   IDB_objectReadLocal(DbHandle *, Data, Data *, short *, const eyedbsm::Oid *,
00166                       ObjectHeader *, LockMode lockmode, void **);
00167 
00168   extern RPCStatus
00169   IDB_objectWrite(DbHandle *, const Data, const eyedbsm::Oid *, void *, Data *, void *);
00170 
00171   extern RPCStatus
00172   IDB_objectHeaderRead(DbHandle *, const eyedbsm::Oid *, ObjectHeader *);
00173 
00174   extern RPCStatus
00175   IDB_objectSizeModify(DbHandle *, unsigned int, const eyedbsm::Oid *);
00176 
00177   extern RPCStatus
00178   IDB_objectCheck(DbHandle *, const eyedbsm::Oid *, int *, eyedbsm::Oid *);
00179 
00180   extern RPCStatus
00181   IDB_objectCheckAccess(DbHandle *, Bool write, const eyedbsm::Oid *,
00182                         Bool *);
00183 
00184   extern RPCStatus
00185   IDB_objectProtectionSet(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *);
00186 
00187   extern RPCStatus
00188   IDB_objectProtectionGet(DbHandle *, const eyedbsm::Oid *, eyedbsm::Oid *);
00189 
00190   extern RPCStatus
00191   IDB_oidMake(DbHandle *, ObjectHeader *, short, unsigned int, eyedbsm::Oid *);
00192 
00193   /* raw data object */
00194   extern RPCStatus
00195   IDB_dataCreate(DbHandle *, short, unsigned int, const Data, eyedbsm::Oid *, void *);
00196 
00197   extern RPCStatus
00198   IDB_dataDelete(DbHandle *, const eyedbsm::Oid *);
00199 
00200   extern RPCStatus
00201   IDB_dataRead(DbHandle *, int, unsigned int, Data, short *, const eyedbsm::Oid *, void *);
00202 
00203   extern RPCStatus
00204   IDB_dataWrite(DbHandle *, int, unsigned int, const Data, const eyedbsm::Oid *, void *);
00205 
00206   extern RPCStatus
00207   IDB_dataSizeGet(DbHandle *, const eyedbsm::Oid *, unsigned int *);
00208 
00209   extern RPCStatus
00210   IDB_dataSizeModify(DbHandle *, unsigned int, const eyedbsm::Oid *);
00211 
00212   extern RPCStatus
00213   IDB_schemaComplete(DbHandle *, const char *);
00214 
00215   /* vardim */
00216   extern RPCStatus
00217   IDB_VDdataCreate(DbHandle *, short, const eyedbsm::Oid *, const eyedbsm::Oid *,
00218                    int, int, int, const Data,
00219                    const eyedbsm::Oid *, eyedbsm::Oid *,
00220                    const Data, int, void *, void *);
00221 
00222   extern RPCStatus
00223   IDB_VDdataDelete(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *,
00224                    int, const eyedbsm::Oid *, const eyedbsm::Oid *,
00225                    const Data, int, void *);
00226 
00227   extern RPCStatus
00228   IDB_VDdataWrite(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *,
00229                   int, int, unsigned int, const Data,
00230                   const eyedbsm::Oid *, const eyedbsm::Oid *,
00231                   const Data, int, void *, void *);
00232 
00233   /* agreg item indexes */
00234   extern RPCStatus
00235   IDB_attributeIndexCreate(DbHandle *, const eyedbsm::Oid *, int, int,
00236                            eyedbsm::Oid *, Data, Size, void *);
00237 
00238   extern RPCStatus
00239   IDB_attributeIndexRemove(DbHandle *, const eyedbsm::Oid *, int, int,
00240                            Data, Size, void *);
00241 
00242   extern RPCStatus
00243   IDB_indexCreate(DbHandle *, bool index_move, const eyedbsm::Oid *);
00244 
00245   extern RPCStatus
00246   IDB_indexRemove(DbHandle *, const eyedbsm::Oid *, int);
00247 
00248   extern RPCStatus
00249   IDB_constraintCreate(DbHandle *, const eyedbsm::Oid *);
00250 
00251   extern RPCStatus
00252   IDB_constraintDelete(DbHandle *, const eyedbsm::Oid *, int);
00253 
00254   /* collections */
00255   extern RPCStatus
00256   IDB_collectionGetByInd(DbHandle *, const eyedbsm::Oid *, int, int *, Data,
00257                          void *);
00258 
00259   extern RPCStatus
00260   IDB_collectionGetByValue(DbHandle *, const eyedbsm::Oid *, Data, int *, int *);
00261 
00262   extern RPCStatus
00263   IDB_setObjectLock(DbHandle *, const eyedbsm::Oid *, int, int *);
00264 
00265   extern RPCStatus
00266   IDB_getObjectLock(DbHandle *, const eyedbsm::Oid *, int *);
00267 
00268   /* queries */
00269   extern RPCStatus
00270   IDB_queryLangCreate(DbHandle *, const char *, int *, int *,
00271                       void *, void *, void *);
00272 
00273   extern RPCStatus
00274   IDB_queryDatabaseCreate(DbHandle *, int *);
00275 
00276   extern RPCStatus
00277   IDB_queryClassCreate(DbHandle *, const eyedbsm::Oid *, int *);
00278 
00279   extern RPCStatus
00280   IDB_queryCollectionCreate(DbHandle *, const eyedbsm::Oid *, int, int *);
00281 
00282   extern RPCStatus
00283   IDB_queryAttributeCreate(DbHandle *, const eyedbsm::Oid *, int, int, Data,
00284                            Data, int, int, int, int *);
00285 
00286   extern RPCStatus
00287   IDB_queryDelete(DbHandle *, int);
00288 
00289   extern RPCStatus
00290   IDB_queryScanNext(DbHandle *, int qid, int wanted, int *found,
00291                     void *atom_array, void *);
00292 
00293   /* OQL */
00294   extern RPCStatus
00295   IDB_oqlCreate(DbHandle *, const char *, int *, void *, void *, void *);
00296 
00297   extern RPCStatus
00298   IDB_oqlDelete(DbHandle *, int);
00299 
00300   extern RPCStatus
00301   IDB_oqlGetResult(DbHandle *, int qid, void *atom_array, void *);
00302 
00303   /* executables */
00304   extern RPCStatus
00305   IDB_execCheck(DbHandle *, const char *intname, const eyedbsm::Oid *oid,
00306                 const char *extref);
00307 
00308   extern RPCStatus
00309   IDB_execExecute(DbHandle *, const char *user, const char *passwd,
00310                   const char *intname,
00311                   const char *name, int exec_type,
00312                   const eyedbsm::Oid *cloid, const char *extref,
00313                   const void *xsign, const void *sign_data,
00314                   const eyedbsm::Oid *execoid,
00315                   const eyedbsm::Oid *objoid,
00316                   void *o,
00317                   const void *xargarray, void *argarray_data,
00318                   void *xargret, void *argret_data);
00319 
00320   extern RPCStatus
00321   IDB_execSetExtRefPath(const char *user, const char *passwd, const char *path);
00322 
00323   extern RPCStatus
00324   IDB_execGetExtRefPath(const char *user, const char *passwd, void *path,
00325                         unsigned int pathlen);
00326 
00327   extern RPCStatus
00328   IDB_setConnInfo(const char *hostname, int uid, const char *username,
00329                   const char *progname, int pid, int *sv_pid, int *sv_uid,
00330                   int cli_version, char **challenge);
00331 
00332   extern RPCStatus
00333   IDB_checkAuth(const char *);
00334 
00335   extern RPCStatus
00336   IDB_setLogMask(eyedblib::int64);
00337 
00338   extern RPCStatus
00339   IDB_indexGetCount(DbHandle *, const eyedbsm::Oid *, int *);
00340 
00341   extern RPCStatus
00342   IDB_indexGetStats(DbHandle *, const eyedbsm::Oid *, Data *, void *);
00343 
00344   extern RPCStatus
00345   IDB_indexSimulStats(DbHandle *, const eyedbsm::Oid *, const Data, void *,
00346                       Data *, void *);
00347 
00348   extern RPCStatus
00349   IDB_collectionGetImplStats(DbHandle *, int, const eyedbsm::Oid *,
00350                              Data *, void *);
00351 
00352   extern RPCStatus
00353   IDB_collectionSimulImplStats(DbHandle *, int, const eyedbsm::Oid *,
00354                                const Data, void *, Data *, void *);
00355 
00356   extern RPCStatus
00357   IDB_indexGetImplementation(DbHandle *, const eyedbsm::Oid *, Data *, void *);
00358 
00359   extern RPCStatus
00360   IDB_collectionGetImplementation(DbHandle *, int, const eyedbsm::Oid *, Data *, void *);
00361 
00362   extern RPCStatus
00363   IDB_getDefaultDataspace(DbHandle *, int *);
00364 
00365   extern RPCStatus
00366   IDB_setDefaultDataspace(DbHandle *, int);
00367 
00368   extern RPCStatus
00369   IDB_dataspaceSetCurrentDatafile(DbHandle *, int, int);
00370 
00371   extern RPCStatus
00372   IDB_dataspaceGetCurrentDatafile(DbHandle *, int, int *);
00373 
00374   extern RPCStatus
00375   IDB_getDefaultIndexDataspace(DbHandle *, const eyedbsm::Oid *, int, int *);
00376 
00377   extern RPCStatus
00378   IDB_setDefaultIndexDataspace(DbHandle *, const eyedbsm::Oid *, int, int);
00379 
00380   extern RPCStatus
00381   IDB_getIndexLocations(DbHandle *, const eyedbsm::Oid *, int, Data *, void *);
00382 
00383   extern RPCStatus
00384   IDB_moveIndex(DbHandle *, const eyedbsm::Oid *, int, int);
00385 
00386   extern RPCStatus
00387   IDB_getInstanceClassLocations(DbHandle *, const eyedbsm::Oid *, int,
00388                                 Data *, void *);
00389 
00390   extern RPCStatus
00391   IDB_moveInstanceClass(DbHandle *, const eyedbsm::Oid *, int, int);
00392 
00393   extern RPCStatus
00394   IDB_getObjectsLocations(DbHandle *, const eyedbsm::Oid *, unsigned int, void *, Data *, void *);
00395 
00396   extern RPCStatus
00397   IDB_moveObjects(DbHandle *, const eyedbsm::Oid *, unsigned int, int, void *);
00398 
00399   extern RPCStatus
00400   IDB_getAttributeLocations(DbHandle *, const eyedbsm::Oid *, int, Data *, void *);
00401 
00402   extern RPCStatus
00403   IDB_moveAttribute(DbHandle *, const eyedbsm::Oid *, int, int);
00404 
00405   extern RPCStatus
00406   IDB_createDatafile(DbHandle *, const char *, const char *, int, int, int);
00407 
00408   extern RPCStatus
00409   IDB_deleteDatafile(DbHandle *, int);
00410 
00411   extern RPCStatus
00412   IDB_moveDatafile(DbHandle *, int, const char *);
00413 
00414   extern RPCStatus
00415   IDB_defragmentDatafile(DbHandle *, int);
00416 
00417   extern RPCStatus
00418   IDB_resizeDatafile(DbHandle *, int, unsigned int);
00419 
00420   extern RPCStatus
00421   IDB_getDatafileInfo(DbHandle *, int, Data *, void *);
00422 
00423   extern RPCStatus
00424   IDB_renameDatafile(DbHandle *, int, const char *);
00425 
00426   extern RPCStatus
00427   IDB_createDataspace(DbHandle *, const char *, void *, unsigned int, void *);
00428 
00429   extern RPCStatus
00430   IDB_updateDataspace(DbHandle *, int, void *, unsigned int, void *);
00431 
00432   extern RPCStatus
00433   IDB_deleteDataspace(DbHandle *, int);
00434 
00435   extern RPCStatus
00436   IDB_renameDataspace(DbHandle *, int, const char *);
00437 
00438   extern RPCStatus
00439   IDB_getServerOutOfBandData(ConnHandle *, int *, Data *,
00440                              unsigned int *size, void *);
00441 
00442   /* back end */
00443 
00444   extern void
00445   IDB_getLocalInfo(DbHandle *dbh, rpcDB_LocalDBContext *, eyedbsm::Oid *);
00446 
00447   extern RPCStatus
00448   IDB_collClassRegister(DbHandle *, const eyedbsm::Oid *, const eyedbsm::Oid *,
00449                         Bool insert);
00450 
00451   extern int
00452   IDB_getSeTrsCount(DbHandle *);
00453 
00454   extern void
00455   object_epilogue(void *db, const eyedbsm::Oid *oid,
00456                       Data data, Bool creating);
00457 
00458   extern void
00459   decode_dbdescription(Data idr, void *xdata, DbCreateDescription *dbdesc);
00460 
00461 }
00462 
00463 #endif

Generated on Mon Dec 22 18:15:58 2008 for eyedb by  doxygen 1.5.3