ConnArea.hpp
上传用户:romrleung
上传日期:2022-05-23
资源大小:18897k
文件大小:3k
- /* Copyright (C) 2003 MySQL AB
- This program 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 2 of the License, or
- (at your option) any later version.
- This program 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 this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
- #ifndef ODBC_COMMON_ConnArea_hpp
- #define ODBC_COMMON_ConnArea_hpp
- #include <common/common.hpp>
- class Ctx;
- class Ndb;
- class NdbSchemaCon;
- class NdbConnection;
- class DictCatalog;
- class DictSchema;
- /**
- * @class ConnArea
- * @brief Public part of connection handle
- */
- class ConnArea {
- public:
- // state between ODBC function calls
- enum State {
- Free = 1, // not in use, no Ndb object
- Connected = 2, // has Ndb object but no Ndb connection
- Transacting = 3 // has Ndb connection
- };
- State getState() const;
- DictCatalog& dictCatalog() const;
- DictSchema& dictSchema() const;
- Ndb* ndbObject() const;
- NdbSchemaCon* ndbSchemaCon() const;
- NdbConnection* ndbConnection() const;
- // called from StmtArea
- bool useSchemaCon(Ctx& ctx, bool use);
- bool useConnection(Ctx& ctx, bool use);
- // these just get and set the flag - no semantics
- bool autocommit() const;
- void autocommit(bool flag);
- bool uncommitted() const;
- void uncommitted(bool flag);
- protected:
- ConnArea();
- ~ConnArea();
- State m_state;
- DictCatalog* m_catalog;
- DictSchema* m_schema;
- Ndb* m_ndbObject;
- NdbSchemaCon* m_ndbSchemaCon;
- NdbConnection* m_ndbConnection;
- unsigned m_useSchemaCon;
- unsigned m_useConnection;
- bool m_autocommit;
- bool m_uncommitted; // has uncommitted changes
- };
- inline ConnArea::State
- ConnArea::getState() const
- {
- return m_state;
- }
- inline DictCatalog&
- ConnArea::dictCatalog() const
- {
- ctx_assert(m_catalog != 0);
- return *m_catalog;
- }
- inline DictSchema&
- ConnArea::dictSchema() const
- {
- ctx_assert(m_schema != 0);
- return *m_schema;
- }
- inline Ndb*
- ConnArea::ndbObject() const
- {
- ctx_assert(m_ndbObject != 0);
- return m_ndbObject;
- }
- inline NdbSchemaCon*
- ConnArea::ndbSchemaCon() const
- {
- ctx_assert(m_ndbSchemaCon != 0);
- return m_ndbSchemaCon;
- }
- inline NdbConnection*
- ConnArea::ndbConnection() const
- {
- ctx_assert(m_ndbConnection != 0);
- return m_ndbConnection;
- }
- inline bool
- ConnArea::autocommit() const
- {
- return m_autocommit;
- }
- inline void
- ConnArea::autocommit(bool flag)
- {
- m_autocommit = flag;
- }
- inline bool
- ConnArea::uncommitted() const
- {
- return m_uncommitted;
- }
- inline void
- ConnArea::uncommitted(bool flag)
- {
- m_uncommitted = flag;
- }
- #endif