summaryrefslogtreecommitdiffstats
path: root/server/rasserver_entry.hh
diff options
context:
space:
mode:
Diffstat (limited to 'server/rasserver_entry.hh')
-rw-r--r--server/rasserver_entry.hh140
1 files changed, 140 insertions, 0 deletions
diff --git a/server/rasserver_entry.hh b/server/rasserver_entry.hh
new file mode 100644
index 0000000..64dbbfc
--- /dev/null
+++ b/server/rasserver_entry.hh
@@ -0,0 +1,140 @@
+/*
+* This file is part of rasdaman community.
+*
+* Rasdaman community is free software: you can redistribute it and/or modify
+* it under the terms of the GNU General Public License as published by
+* the Free Software Foundation, either version 3 of the License, or
+* (at your option) any later version.
+*
+* Rasdaman community is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU General Public License for more details.
+*
+* You should have received a copy of the GNU General Public License
+* along with rasdaman community. If not, see <http://www.gnu.org/licenses/>.
+*
+* Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009 Peter Baumann /
+rasdaman GmbH.
+*
+* For more information please see <http://www.rasdaman.org>
+* or contact Peter Baumann via <baumann@rasdaman.com>.
+*/
+#ifndef RASSERVER_ENTRY_HH
+#define RASSERVER_ENTRY_HH
+
+/*
+ This class is the entry point of the rasdaman server. It's the interface of the server to the outside world
+ It's functions are called by the communication level.
+
+ For now the class inherites HttpServer which inherites ServerComm, but only to have nice acces to the stuff
+ found there. Later we will drop both of them and make the life easier.
+*/
+
+#include "servercomm/httpserver.hh"
+
+
+class RasServerEntry : public HttpServer
+ {
+ private:
+ RasServerEntry();
+ static RasServerEntry* myself;
+ public:
+ static RasServerEntry& getInstance();
+
+ ~RasServerEntry();
+
+ //### inherited stuff - we have to keep them for now
+ void startRpcServer() throw( r_Error );
+ void stopRpcServer();
+ //###
+
+ void compat_connectToDBMS() throw( r_Error );
+
+ // All "compat_" functions use old ServerComm and HttpServer stuff to do their job
+ // Later, the new functions will do the job proper and this old functions will be dropped!
+ void compat_connectNewClient(const char *capability);
+ unsigned long currentClientIdx;
+ ClientTblElt* getClientContext( unsigned long ClientId ); // inherited...
+ ClientTblElt* currentClientContext;
+
+ void compat_disconnectClient();
+
+ void compat_openDB(const char* databaseName);
+
+ void compat_closeDB();
+
+ void compat_beginTA(bool rw);
+
+ void compat_commitTA();
+
+ void compat_abortTA();
+
+ bool compat_isOpenTA();
+
+ // provided for temporary compatibility with the encoding of the java interface
+ // resultBuffer will be allocated and it's address stored in the given pointer
+ // result is the length of the result
+ int compat_executeQueryHttp(const char* httpParams, int httpParamsLen, char*& resultBuffer);
+
+ r_OId compat_getNewOId(unsigned short objType); // 1 - mddType, 2 -collType
+
+ int compat_executeQueryRpc(const char* query, ExecuteQueryRes &queryResult);
+
+ int compat_getNextElement(char* &buffer, unsigned int &bufferSize );
+
+ int compat_endTransfer();
+
+ int compat_getNextMDD(r_Minterval &mddDomain, char* &typeName, char* &typeStructure, r_OId &oid,unsigned short &currentFormat);
+
+ int compat_getNextTile(RPCMarray** rpcMarray);
+
+ int compat_ExecuteUpdateQuery(const char *query, ExecuteUpdateRes &returnStructure);
+
+ int compat_InitUpdate();
+
+ int compat_StartInsertTransMDD(const char *domain, int typeLength, const char *typeName);
+
+ int compat_InsertTile(int persistent, RPCMarray*);
+
+ int compat_EndInsertMDD(int persistent);
+
+ int compat_GetTypeStructure(const char *typeName, int typeType, char* &typeStructure);
+
+ int compat_StartInsertPersMDD(const char *collName, r_Minterval &mddDomain, int typeLength, const char *typeName, r_OId &oid);
+
+ int compat_InsertMDD(const char *collName, RPCMarray *rpcMarray, const char *typeName, r_OId &oid);
+
+ int compat_InsertCollection(const char *collName, const char *typeName, r_OId &oid);
+
+ int compat_DeleteCollByName(const char *collName);
+
+ int compat_DeleteObjByOId(r_OId &oid);
+
+ int compat_RemoveObjFromColl(const char *collName, r_OId &oid);
+
+ int compat_GetCollectionByName(const char* collName, char* &typeName, char* &typeStructure, r_OId &oid);
+
+ int compat_GetCollectionByName(r_OId oid, char* &typeName, char* &typeStructure, char* &collName);
+
+ int compat_GetCollectionOidsByName(const char* collName, char* &typeName, char* &typeStructure, r_OId &oid, RPCOIdEntry* &oidTable, unsigned int &oidTableSize);
+
+ int compat_GetCollectionOidsByOId(r_OId oid, char* &typeName, char* &typeStructure, RPCOIdEntry* &oidTable, unsigned int &oidTableSize, char* &collName);
+
+ int compat_GetObjectType(r_OId &oid, unsigned short &objType);
+
+ int compat_SetTransferFormat(int format, const char* params);
+
+ int compat_SetStorageFormat(int format, const char* params);
+
+
+ r_OId createCollection(const char* collName, const char* collTypeName);
+
+ r_OId createMDD(const char* collName, const char* mddTypeName, const char* definitionDomain, const char* tileDomain, bool rcindex);
+
+ void extendMDD(r_OId mddOId, const char *stripeDomain, const char* tileDomain);
+
+ vector<r_Minterval> getTileDomains(r_OId mddOId, const char *stripeDomain);
+
+ };
+#endif