summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/MapI.h
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2005-11-08 00:13:52 +0000
committerBernard Normier <bernard@zeroc.com>2005-11-08 00:13:52 +0000
commit20c342c1c5f35fbe60565dee7fb81ca2baf04e5b (patch)
tree199faf2102026478de9a1e55f6fff271591e7b98 /cpp/src/Freeze/MapI.h
parentfixed bi-dir/shutdown deadlock (diff)
downloadice-20c342c1c5f35fbe60565dee7fb81ca2baf04e5b.tar.bz2
ice-20c342c1c5f35fbe60565dee7fb81ca2baf04e5b.tar.xz
ice-20c342c1c5f35fbe60565dee7fb81ca2baf04e5b.zip
Implemented enhancement 415 (Freeze Map compare functors)
Diffstat (limited to 'cpp/src/Freeze/MapI.h')
-rw-r--r--cpp/src/Freeze/MapI.h19
1 files changed, 18 insertions, 1 deletions
diff --git a/cpp/src/Freeze/MapI.h b/cpp/src/Freeze/MapI.h
index 5a1a1d9d9a0..8f842926a47 100644
--- a/cpp/src/Freeze/MapI.h
+++ b/cpp/src/Freeze/MapI.h
@@ -23,7 +23,8 @@ class IteratorHelperI : public IteratorHelper
{
public:
- IteratorHelperI(const MapHelperI& m, bool readOnly, const MapIndexBasePtr& index);
+ IteratorHelperI(const MapHelperI& m, bool readOnly,
+ const MapIndexBasePtr& index, bool onlyDups);
IteratorHelperI(const IteratorHelperI&);
virtual
@@ -32,6 +33,12 @@ public:
bool
find(const Key& k) const;
+ bool
+ lowerBound(const Key& k) const;
+
+ bool
+ upperBound(const Key& k) const;
+
virtual IteratorHelper*
clone() const;
@@ -50,6 +57,8 @@ public:
virtual bool
next() const;
+ bool next(bool) const;
+
void
close();
@@ -86,6 +95,7 @@ private:
const MapHelperI& _map;
Dbc* _dbc;
const bool _indexed;
+ const bool _onlyDups;
TxPtr _tx;
mutable Key _key;
@@ -99,6 +109,7 @@ public:
MapHelperI(const ConnectionIPtr&, const std::string&,
const std::string&, const std::string&,
+ const KeyCompareBasePtr&,
const std::vector<MapIndexBasePtr>&, bool);
virtual ~MapHelperI();
@@ -106,6 +117,12 @@ public:
virtual IteratorHelper*
find(const Key&, bool) const;
+ virtual IteratorHelper*
+ lowerBound(const Key&, bool) const;
+
+ virtual IteratorHelper*
+ upperBound(const Key&, bool) const;
+
virtual void
put(const Key&, const Value&);