/* * * ProLinga-Data * * Copyright (C) 2002-2008 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, GdaClient *client, \ const char *connectionId, const char *userName, \ const char *passWord, int gdaOptions); int closeGdaConnection(DCConnection **conPtr, GdaClient *client, const char *connectionId); GdaConnection *getGdaConnection(DCConnection **conPtr, const char *connectionId); void deleteList(DCConnection **conPtr); void printList(DCConnection *conPtr) const; private: char conId[32]; GdaConnection *connection; 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); GdaClient *getGdaClient(DCSession *sesPtr, const char *session); int openGdaConnection(DCSession *sesPtr, const char *session, const char *connectionId, \ const char *userName, const char *passWord, const int 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]; GdaClient *client; DCConnection *conStartPtr; //GdaTransactionStatus *transaction; char *transactionId; DCDataModel *modelStartPtr; DCSession *nextPtr; }; typedef DCSession *DCSessionPtr; #endif /* __DCSESSION_HPP */