summaryrefslogtreecommitdiff
path: root/cpp/src/IceDB/IceDB.h
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2021-01-28 14:18:08 -0500
committerJoe George <joe@zeroc.com>2021-02-01 16:50:22 -0500
commit3dd23049d2424404255585228ffc5e0314fed7ce (patch)
tree5dd38567c461ab08f0c402f54551b42e23de29cb /cpp/src/IceDB/IceDB.h
parentRemove checksum support (#607) (diff)
downloadice-3dd23049d2424404255585228ffc5e0314fed7ce.tar.bz2
ice-3dd23049d2424404255585228ffc5e0314fed7ce.tar.xz
ice-3dd23049d2424404255585228ffc5e0314fed7ce.zip
Port Glacier2, IceBox, IceBridge, IceDB, IceXML, icegriddb
Diffstat (limited to 'cpp/src/IceDB/IceDB.h')
-rw-r--r--cpp/src/IceDB/IceDB.h51
1 files changed, 24 insertions, 27 deletions
diff --git a/cpp/src/IceDB/IceDB.h b/cpp/src/IceDB/IceDB.h
index 8019a9c30a9..29a6a95ff85 100644
--- a/cpp/src/IceDB/IceDB.h
+++ b/cpp/src/IceDB/IceDB.h
@@ -54,7 +54,9 @@ public:
virtual std::string ice_id() const;
virtual void ice_print(std::ostream&) const;
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ virtual IceUtil::Exception* ice_cloneImpl() const;
+#else
virtual LMDBException* ice_clone() const;
#endif
virtual void ice_throw() const;
@@ -82,7 +84,9 @@ public:
virtual std::string ice_id() const;
virtual void ice_print(std::ostream&) const;
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ virtual IceUtil::Exception* ice_cloneImpl() const;
+#else
virtual KeyTooLongException* ice_clone() const;
#endif
virtual void ice_throw() const;
@@ -108,7 +112,9 @@ public:
virtual std::string ice_id() const;
virtual void ice_print(std::ostream&) const;
-#ifndef ICE_CPP11_MAPPING
+#ifdef ICE_CPP11_MAPPING
+ virtual IceUtil::Exception* ice_cloneImpl() const;
+#else
virtual BadEnvException* ice_clone() const;
#endif
virtual void ice_throw() const;
@@ -166,18 +172,23 @@ class ICE_DB_API Txn
{
public:
- virtual ~Txn();
-
void commit();
void rollback();
MDB_txn* mtxn() const;
+ bool isReadOnly() const
+ {
+ return _readOnly;
+ }
+
protected:
- explicit Txn(const Env&, unsigned int);
+ Txn(const Env&, unsigned int);
+ ~Txn();
MDB_txn* _mtxn;
+ const bool _readOnly;
private:
@@ -190,9 +201,8 @@ class ICE_DB_API ReadOnlyTxn : public Txn
{
public:
- virtual ~ReadOnlyTxn();
-
explicit ReadOnlyTxn(const Env&);
+ ~ReadOnlyTxn();
void reset();
void renew();
@@ -202,9 +212,8 @@ class ICE_DB_API ReadWriteTxn : public Txn
{
public:
- virtual ~ReadWriteTxn();
-
explicit ReadWriteTxn(const Env&);
+ ~ReadWriteTxn();
};
class ICE_DB_API DbiBase
@@ -214,8 +223,6 @@ public:
void clear(const ReadWriteTxn&);
MDB_dbi mdbi() const;
- virtual ~DbiBase();
-
protected:
DbiBase(const Txn&, const std::string&, unsigned int, MDB_cmp_func*);
@@ -343,14 +350,12 @@ class ICE_DB_API CursorBase
public:
void close();
-
MDB_cursor* mcursor() const;
- virtual ~CursorBase();
-
protected:
- CursorBase(MDB_dbi dbi, const Txn& txn, bool);
+ CursorBase(MDB_dbi dbi, const Txn& txn);
+ ~CursorBase();
bool get(MDB_val*, MDB_val*, MDB_cursor_op);
void put(MDB_val*, MDB_val*, unsigned int);
@@ -374,21 +379,13 @@ class Cursor : public CursorBase
{
public:
- Cursor(const Dbi<K, D, C, H>& dbi, const ReadOnlyTxn& txn) :
- CursorBase(dbi.mdbi(), txn, true),
- _marshalingContext(dbi.marshalingContext())
- {
- }
-
- Cursor(const Dbi<K, D, C, H>& dbi, const ReadWriteTxn& txn) :
- CursorBase(dbi.mdbi(), txn, false),
+ Cursor(const Dbi<K, D, C, H>& dbi, const Txn& txn) :
+ CursorBase(dbi.mdbi(), txn),
_marshalingContext(dbi.marshalingContext())
{
}
- Cursor(const Dbi<K, D, C, H>& dbi, const Txn& txn) :
- CursorBase(dbi.mdbi(), txn, dynamic_cast<const ReadOnlyTxn*>(&txn) != 0),
- _marshalingContext(dbi.marshalingContext())
+ ~Cursor()
{
}