diff options
author | Bernard Normier <bernard@zeroc.com> | 2003-09-16 01:41:46 +0000 |
---|---|---|
committer | Bernard Normier <bernard@zeroc.com> | 2003-09-16 01:41:46 +0000 |
commit | 83cb29a8de333646c9b3e7ac6909accce72e6b5f (patch) | |
tree | cc1037886e0d1770d9c1ad412d79c81a5a1d21ad /cpp/src/Freeze/MapI.h | |
parent | flex fixes (diff) | |
download | ice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.tar.bz2 ice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.tar.xz ice-83cb29a8de333646c9b3e7ac6909accce72e6b5f.zip |
Added Freeze Connection and Transaction
Diffstat (limited to 'cpp/src/Freeze/MapI.h')
-rw-r--r-- | cpp/src/Freeze/MapI.h | 47 |
1 files changed, 29 insertions, 18 deletions
diff --git a/cpp/src/Freeze/MapI.h b/cpp/src/Freeze/MapI.h index 0e3054751e8..2d3898dec0b 100644 --- a/cpp/src/Freeze/MapI.h +++ b/cpp/src/Freeze/MapI.h @@ -16,7 +16,7 @@ #define FREEZE_MAP_I_H #include <Freeze/Map.h> -#include <Freeze/SharedDbEnv.h> +#include <Freeze/SharedDb.h> namespace Freeze { @@ -62,9 +62,8 @@ public: virtual bool equals(const DBIteratorHelper&) const; - virtual const Ice::CommunicatorPtr& - getCommunicator() const; - + void + close(); class Tx : public IceUtil::SimpleShared { @@ -88,8 +87,15 @@ public: typedef IceUtil::Handle<Tx> TxPtr; + const TxPtr& + tx() const; + private: + void + cleanup(); + + const DBMapHelperI& _map; Dbc* _dbc; TxPtr _tx; @@ -99,17 +105,11 @@ private: }; - class DBMapHelperI : public DBMapHelper { public: - DBMapHelperI(const Ice::CommunicatorPtr& communicator, - const std::string& envName, const std::string& dbName, - bool createDb); - - DBMapHelperI(const Ice::CommunicatorPtr& communicator, - DbEnv& dbEnv, const std::string& dbName, + DBMapHelperI(const ConnectionIPtr& connection, const std::string& dbName, bool createDb); virtual ~DBMapHelperI(); @@ -135,22 +135,33 @@ public: virtual size_t size() const; + virtual void + closeAllIterators(); + + void + close(); + private: - void - openDb(bool); + virtual void + closeAllIteratorsExcept(const DBIteratorHelperI::TxPtr&) const; + friend class DBIteratorHelperI; friend class DBIteratorHelperI::Tx; - int _trace; - DbEnv* _dbEnv; - SharedDbEnvPtr _dbEnvHolder; - std::auto_ptr<Db> _db; + const ConnectionIPtr _connection; + mutable std::list<DBIteratorHelperI*> _iteratorList; + SharedDbPtr _db; const std::string _dbName; + int _trace; }; - +inline const DBIteratorHelperI::TxPtr& +DBIteratorHelperI::tx() const +{ + return _tx; +} } |