/* * * ProLinga-Data * * Copyright (C) 2002-2009 Xobas Software. * All rights reserved. * * This file is part of ProLinga-Data. * * ProLinga-Data 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. * * ProLinga-Data 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 ProLinga-Data. If not, see . * * More information is available at the following addresses: * * Website : http://www.prolinga.org * * Email : prolinga-list@prolinga.org * * */ #ifndef __DCSESSION_HPP #define __DCSESSION_HPP #include class DCDataModel { public: DCDataModel(); ~DCDataModel(); GdaDataModel *getDataModel(DCDataModel **modelPtr, const char *name); void putDataModel(DCDataModel **modelPtr, const char *name, GdaDataModel *dmp); int deleteOneDataModel(DCDataModel **modelPtr, const char *name); void deleteList(DCDataModel **modelPtr); private: char modelName[32]; GdaDataModel *dm; int rowId; DCDataModel *nextPtr; }; typedef DCDataModel *DCDataModelPtr; class DCConnection { public: DCConnection(); ~DCConnection(); int openGdaConnection(DCConnection **conPtr, \ const char *connectionId, const char *userName, \ const char *passWord, GdaConnectionOptions gdaOptions); int closeGdaConnection(DCConnection **conPtr, const char *connectionId); GdaConnection *getGdaConnection(DCConnection **conPtr, const char *connectionId); GdaMetaStore *getGdaMetaStore(DCConnection **conPtr, const char *connectionId); void deleteList(DCConnection **conPtr); void printList(DCConnection *conPtr) const; private: char conId[32]; GdaConnection *connection; GdaMetaStore *metaStore; DCConnection *nextPtr; }; typedef DCConnection *DCConnectionPtr; class DCSession { public: DCSession(); ~DCSession(); bool sessionExists(DCSession **sesPtr, const char *session); char *createSession(DCSession **sesPtr, char *retValue); int destroySession(DCSession **sesPtr, const char *session); int openGdaConnection(DCSession *sesPtr, const char *session, const char *connectionId, \ const char *userName, const char *passWord, const GdaConnectionOptions gdaOptions); int closeGdaConnection(DCSession *sesPtr, const char *session, const char *connectionId); GdaConnection *getGdaConnection(DCSession *sesPtr, const char *session, const char *connectionId); void clearTransactionId(DCSession *sesPtr, const char *session); char *getTransactionId(DCSession *sesPtr, const char *session); void putTransactionId(DCSession *sesPtr, const char *session, const char *transId); GdaDataModel *getDataModel(DCSession *sesPtr, const char *session, const char *name); void putDataModel(DCSession *sesPtr, const char *session, const char *name, GdaDataModel *dmp); int deleteOneDataModel(DCSession *sesPtr, const char *session, const char *name); void deleteAllDataModels(DCSession *sesPtr, const char *session); void printList(DCSession *sesPtr) const; private: char sessionId[32]; DCConnection *conStartPtr; //GdaTransactionStatus *transaction; char *transactionId; DCDataModel *modelStartPtr; DCSession *nextPtr; }; typedef DCSession *DCSessionPtr; #endif /* __DCSESSION_HPP */