/*
*
* 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 */