rpc_lib.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_RPCLIB_H
00026 #define _EYEDB_RPCLIB_H
00027 
00028 #include <eyedbsm/eyedbsm.h>
00029 #include <eyedb/base_p.h>
00030 #include <eyedblib/rpc.h>
00031 #include <eyedblib/rpcdb.h>
00032 #include <eyedblib/rpc_lib.h>
00033 
00034 namespace eyedb {
00035 
00036   typedef rpc_StatusRec RPCStatusRec;
00037 
00038   typedef const RPCStatusRec *RPCStatus;
00039 
00040   enum {
00041     IDB_DBMCREATE = 0x100,
00042     IDB_DBMUPDATE,
00043 
00044     IDB_DBCREATE,
00045     IDB_DBDELETE,
00046 
00047     IDB_USER_ADD,
00048     IDB_USER_DELETE,
00049     IDB_USER_PASSWD_SET,
00050     IDB_PASSWD_SET,
00051 
00052     IDB_DEFAULT_DBACCESS_SET,
00053     IDB_USER_DBACCESS_SET,
00054     IDB_USER_SYSACCESS_SET,
00055 
00056     IDB_DBINFO,
00057 
00058     IDB_DBMOVE,
00059     IDB_DBCOPY,
00060     IDB_DBRENAME,
00061 
00062     IDB_BACKEND_INTERRUPT,
00063 
00064     IDB_TRANSACTION_BEGIN,
00065     IDB_TRANSACTION_COMMIT,
00066     IDB_TRANSACTION_ABORT,
00067 
00068     IDB_TRANSACTION_PARAMS_SET,
00069     IDB_TRANSACTION_PARAMS_GET,
00070 
00071     IDB_DBOPEN,
00072     IDB_DBOPENLOCAL,
00073     IDB_DBCLOSE,
00074 
00075     IDB_OBJECT_CREATE,
00076     IDB_OBJECT_READ,
00077     IDB_OBJECT_WRITE,
00078     IDB_OBJECT_DELETE,
00079     IDB_OBJECT_HEADER_READ,
00080     IDB_OBJECT_SIZE_MODIFY,
00081     IDB_OBJECT_CHECK,
00082 
00083     IDB_OID_MAKE,
00084 
00085     IDB_DATA_CREATE,
00086     IDB_DATA_READ,
00087     IDB_DATA_WRITE,
00088     IDB_DATA_DELETE,
00089     IDB_DATA_SIZE_GET,
00090     IDB_DATA_SIZE_MODIFY,
00091 
00092     IDB_VDDATA_CREATE,
00093     IDB_VDDATA_WRITE,
00094     IDB_VDDATA_DELETE,
00095 
00096     IDB_SCHEMA_COMPLETE,
00097 
00098     IDB_ATTRIBUTE_INDEX_CREATE,
00099     IDB_ATTRIBUTE_INDEX_REMOVE,
00100   
00101     IDB_INDEX_CREATE,
00102     IDB_INDEX_REMOVE,
00103 
00104     IDB_CONSTRAINT_CREATE,
00105     IDB_CONSTRAINT_DELETE,
00106 
00107     IDB_COLLECTION_GET_BY_IND,
00108     IDB_COLLECTION_GET_BY_VALUE,
00109 
00110     IDB_SET_OBJECT_LOCK,
00111     IDB_GET_OBJECT_LOCK,
00112   
00113     IDB_ITERATOR_LANG_CREATE,
00114     IDB_ITERATOR_DATABASE_CREATE,
00115     IDB_ITERATOR_CLASS_CREATE,
00116     IDB_ITERATOR_COLLECTION_CREATE,
00117     IDB_ITERATOR_ATTRIBUTE_CREATE,
00118     IDB_ITERATOR_DELETE,
00119     IDB_ITERATOR_SCAN_NEXT,
00120 
00121     IDB_EXECUTABLE_CHECK,
00122     IDB_EXECUTABLE_EXECUTE,
00123     IDB_EXECUTABLE_SET_EXTREF_PATH,
00124     IDB_EXECUTABLE_GET_EXTREF_PATH,
00125 
00126     IDB_SET_CONN_INFO,
00127     IDB_CHECK_AUTH,
00128 
00129     IDB_INDEX_GET_COUNT,
00130     IDB_INDEX_GET_STATS,
00131     IDB_INDEX_SIMUL_STATS,
00132     IDB_COLLECTION_GET_IMPLSTATS,
00133     IDB_COLLECTION_SIMUL_IMPLSTATS,
00134     IDB_INDEX_GET_IMPL,
00135     IDB_COLLECTION_GET_IMPL,
00136 
00137     IDB_OBJECT_PROTECTION_SET,
00138     IDB_OBJECT_PROTECTION_GET,
00139 
00140     IDB_OQL_CREATE,
00141     IDB_OQL_DELETE,
00142     IDB_OQL_GETRESULT,
00143 
00144     IDB_SET_LOG_MASK,
00145 
00146     IDB_GET_DEFAULT_DATASPACE,
00147     IDB_SET_DEFAULT_DATASPACE,
00148 
00149     IDB_DATASPACE_SET_CURRENT_DATAFILE,
00150     IDB_DATASPACE_GET_CURRENT_DATAFILE,
00151 
00152     IDB_GET_DEFAULT_INDEX_DATASPACE,
00153     IDB_SET_DEFAULT_INDEX_DATASPACE,
00154     IDB_GET_INDEX_LOCATIONS,
00155     IDB_MOVE_INDEX,
00156     IDB_GET_INSTANCE_CLASS_LOCATIONS,
00157     IDB_MOVE_INSTANCE_CLASS,
00158     IDB_GET_OBJECTS_LOCATIONS,
00159     IDB_MOVE_OBJECTS,
00160     IDB_GET_ATTRIBUTE_LOCATIONS,
00161     IDB_MOVE_ATTRIBUTE,
00162 
00163     IDB_CREATE_DATAFILE,
00164     IDB_DELETE_DATAFILE,
00165     IDB_MOVE_DATAFILE,
00166     IDB_DEFRAGMENT_DATAFILE,
00167     IDB_RESIZE_DATAFILE,
00168     IDB_GET_DATAFILEI_NFO,
00169     IDB_RENAME_DATAFILE,
00170     IDB_CREATE_DATASPACE,
00171     IDB_UPDATE_DATASPACE,
00172     IDB_DELETE_DATASPACE,
00173     IDB_RENAME_DATASPACE,
00174 
00175     IDB_GET_SERVER_OUTOFBAND_DATA
00176   };
00177 
00178   struct ConnHandle {
00179     rpc_ConnHandle *ch;
00180     //se_ConnHandle  *sech;
00181   };
00182 
00183 #ifndef _IDB_KERN_
00184 
00185   struct DbHandle {
00186     ConnHandle *ch;
00187     rpcDB_LocalDBContext ldbctx;
00188     int tr_cnt;
00189     eyedbsm::Oid sch_oid;
00190     int flags;
00191     union {
00192       void *dbh;
00193       int rdbhid;
00194     } u;
00195     void *db;
00196   };
00197 #endif
00198 
00199 
00200   extern rpc_RpcDescription
00201   *makeDBMCREATE(void),
00202     *makeDBMUPDATE(void),
00203 
00204     *makeDBCREATE(void),
00205     *makeDBDELETE(void),
00206     *makeDBINFO(void),
00207     *makeDBMOVE(void),
00208     *makeDBCOPY(void),
00209     *makeDBRENAME(void),
00210 
00211     *makeUSER_ADD(void),
00212     *makeUSER_DELETE(void),
00213     *makeUSER_PASSWD_SET(void),
00214     *makePASSWD_SET(void),
00215 
00216     *makeDEFAULT_DBACCESS_SET(void),
00217     *makeUSER_DBACCESS_SET(void),
00218     *makeUSER_SYSACCESS_SET(void),
00219 
00220     *makeBACKEND_INTERRUPT(void),
00221 
00222     *makeTRANSACTION_BEGIN(void),
00223     *makeTRANSACTION_COMMIT(void),
00224     *makeTRANSACTION_ABORT(void),
00225 
00226     *makeTRANSACTION_PARAMS_SET(void),
00227     *makeTRANSACTION_PARAMS_GET(void),
00228 
00229     *makeDBOPEN(void),
00230     *makeDBOPENLOCAL(void),
00231     *makeDBCLOSE(void),
00232 
00233     *makeOBJECT_CREATE(void),
00234     *makeOBJECT_READ(void),
00235     *makeOBJECT_WRITE(void),
00236     *makeOBJECT_DELETE(void),
00237     *makeOBJECT_HEADER_READ(void),
00238     *makeOBJECT_SIZE_MODIFY(void),
00239     *makeOBJECT_PROTECTION_SET(void),
00240     *makeOBJECT_PROTECTION_GET(void),
00241     *makeOBJECT_CHECK(void),
00242 
00243     *makeOID_MAKE(void),
00244 
00245     *makeDATA_CREATE(void),
00246     *makeDATA_READ(void),
00247     *makeDATA_WRITE(void),
00248     *makeDATA_DELETE(void),
00249     *makeDATA_SIZE_GET(void),
00250     *makeDATA_SIZE_MODIFY(void),
00251 
00252     *makeVDDATA_CREATE(void),
00253     *makeVDDATA_WRITE(void),
00254     *makeVDDATA_DELETE(void),
00255 
00256     *makeSCHEMA_COMPLETE(void),
00257 
00258     *makeATTRIBUTE_INDEX_CREATE(void),
00259     *makeATTRIBUTE_INDEX_REMOVE(void),
00260 
00261     *makeINDEX_CREATE(void),
00262     *makeINDEX_REMOVE(void),
00263 
00264     *makeCONSTRAINT_CREATE(void),
00265     *makeCONSTRAINT_DELETE(void),
00266 
00267     *makeCOLLECTION_GET_BY_IND(void),
00268     *makeCOLLECTION_GET_BY_VALUE(void),
00269 
00270     *makeSET_OBJECT_LOCK(void),
00271     *makeGET_OBJECT_LOCK(void),
00272 
00273     *makeQUERY_LANG_CREATE(void),
00274     *makeQUERY_DATABASE_CREATE(void),
00275     *makeQUERY_CLASS_CREATE(void),
00276     *makeQUERY_COLLECTION_CREATE(void),
00277     *makeQUERY_ATTRIBUTE_CREATE(void),
00278     *makeQUERY_DELETE(void),
00279     *makeQUERY_SCAN_NEXT(void),
00280 
00281     *makeEXECUTABLE_CHECK(void),
00282     *makeEXECUTABLE_EXECUTE(void),
00283     *makeEXECUTABLE_SET_EXTREF_PATH(void),
00284     *makeEXECUTABLE_GET_EXTREF_PATH(void),
00285 
00286     *makeOQL_CREATE(void),
00287     *makeOQL_DELETE(void),
00288     *makeOQL_GETRESULT(void),
00289 
00290     *makeSET_CONN_INFO(void),
00291     *makeCHECK_AUTH(void),
00292 
00293     *makeSET_LOG_MASK(void),
00294 
00295     *makeGET_DEFAULT_DATASPACE(void),
00296     *makeSET_DEFAULT_DATASPACE(void),
00297     *makeDATASPACE_SET_CURRENT_DATAFILE(void),
00298     *makeDATASPACE_GET_CURRENT_DATAFILE(void),
00299     *makeGET_DEFAULT_INDEX_DATASPACE(void),
00300     *makeSET_DEFAULT_INDEX_DATASPACE(void),
00301     *makeGET_INDEX_LOCATIONS(void),
00302     *makeMOVE_INDEX(void),
00303     *makeGET_INSTANCE_CLASS_LOCATIONS(void),
00304     *makeMOVE_INSTANCE_CLASS(void),
00305     *makeGET_OBJECTS_LOCATIONS(void),
00306     *makeMOVE_OBJECTS(void),
00307     *makeGET_ATTRIBUTE_LOCATIONS(void),
00308     *makeMOVE_ATTRIBUTE(void),
00309 
00310     *makeCREATE_DATAFILE(void),
00311     *makeDELETE_DATAFILE(void),
00312     *makeMOVE_DATAFILE(void),
00313     *makeDEFRAGMENT_DATAFILE(void),
00314     *makeRESIZE_DATAFILE(void),
00315     *makeGET_DATAFILEI_NFO(void),
00316     *makeRENAME_DATAFILE(void),
00317     *makeCREATE_DATASPACE(void),
00318     *makeUPDATE_DATASPACE(void),
00319     *makeDELETE_DATASPACE(void),
00320     *makeRENAME_DATASPACE(void),
00321     *makeINDEX_GET_COUNT(void),
00322     *makeINDEX_GET_STATS(void),
00323     *makeINDEX_SIMUL_STATS(void),
00324     *makeCOLLECTION_GET_IMPLSTATS(void),
00325     *makeCOLLECTION_SIMUL_IMPLSTATS(void),
00326     *makeINDEX_GET_IMPL(void),
00327     *makeCOLLECTION_GET_IMPL(void),
00328     *makeGET_SERVER_OUTOFBAND_DATA(void);
00329 
00330   extern rpc_ArgType
00331   rpcDB_LocalDBContextType,
00332     OidType,
00333     BoolType,
00334     RPCStatusType;
00335 
00336   extern RPCStatus
00337   rpcStatusMake(Error, const char *, ...);
00338 
00339   extern RPCStatus
00340   rpcStatusMake_s(Error);
00341 
00342   extern RPCStatus
00343   rpcStatusMake_se(eyedbsm::Status);
00344 
00345   extern RPCStatus _rpc_status__;
00346 
00347   extern const int CONN_COUNT;
00348 
00349   const eyedblib::uint32 RPC_PROTOCOL_MAGIC  = 0x43f2e341;
00350 }
00351 
00352 #endif

Generated on Mon Dec 22 18:16:07 2008 for eyedb by  doxygen 1.5.3