00001 // OSB library ************************************************ -*- C++ -*- 00006 /* 00007 AUTHOR(S): Stephan Broennimann (vb) 00008 00009 RCS information 00010 $Name: OSB_060808 $ 00011 $Revision: 1.15 $ 00012 00013 License 00014 OSB rating and billing library for communication networks 00015 Copyright (C) 2004, 2005, 2006 OSB systems 00016 00017 This file may be distributed and/or modify under the terms of the 00018 GNU General Public License (GPL) as published by the Free Software 00019 Foundation which is provided in the file LICENSE.GPL included in the 00020 packaging of this file. 00021 00022 The file is distributed in the hope that it will be useful, but WITHOUT 00023 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00024 FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 00025 for more details. 00026 00027 Holders of a OSB Commercial License may use this file under the terms 00028 and conditions of this commercial license. 00029 */ 00030 #ifndef _DBSESSION_H_ 00031 #define _DBSESSION_H_ 00032 00033 // ************************************************************************ 00034 // included header files 00035 // + standard includes 00036 #include <string> 00037 00038 // + libraries 00039 00040 // + local headers 00041 00042 // ************************************************************************ 00043 // class declarations 00044 class otl_connect; 00045 00046 // ************************************************************************ 00047 // namespace extensions 00048 namespace OSB_DB { 00049 00050 // ************************************************************************ 00051 // class definitions 00063 class Session { 00064 public: 00072 static const char* nlsDateFormat_; 00073 public: 00075 Session(); 00085 Session( 00086 const std::string& username, 00087 const std::string& password, 00088 const std::string& database 00089 ); 00097 Session(const Session&); 00103 ~Session(); 00104 private: 00106 Session& operator=(const Session& rhs); 00107 public: 00127 operator otl_connect&() const; 00129 00130 const std::string& username() const; 00131 const std::string& password() const; 00132 const std::string& database() const; 00133 bool connected() const; 00135 00151 void logon(bool msg = false); 00161 void logon( 00162 const std::string& username, 00163 const std::string& password, 00164 const std::string& database, 00165 bool msg = false 00166 ); 00175 void logoff(bool msg = false); 00179 void commit(); 00183 void rollback(); 00195 void alterSession(std::string clause); 00197 private: 00199 mutable otl_connect* otlConnect_; 00201 std::string username_; 00203 std::string password_; 00205 std::string database_; 00206 }; // class Session 00207 00215 struct SessionCtrl { 00223 SessionCtrl(bool useThreads); 00225 ~SessionCtrl(); 00226 }; 00227 } // namespace OSB_DB 00228 #endif // _DBSESSION_H_