summaryrefslogtreecommitdiff
path: root/cpp/src/Freeze/ObjectStore.h
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2012-08-21 17:01:15 -0400
committerBernard Normier <bernard@zeroc.com>2012-08-21 17:03:33 -0400
commit472d9552de83c5e8b96030f47ed222de77556417 (patch)
treeda9ed5b4c66c3e9ce112dbe6797cf73d8d386152 /cpp/src/Freeze/ObjectStore.h
parentFixed ICE-2097: with Ice encoding > 1.0, Freeze evictors no longer maintain (diff)
downloadice-472d9552de83c5e8b96030f47ed222de77556417.tar.bz2
ice-472d9552de83c5e8b96030f47ed222de77556417.tar.xz
ice-472d9552de83c5e8b96030f47ed222de77556417.zip
Much better fix for ICE-2097: whether or not to keep the stats is no longer
determined by the encoding but by the Catalog data for the evictor. With the new default, the catalog data key and value are set, in particular the value is set to "Object". With old evictors, the catalog data value was set to "", which means ::Freeze::ObjectRecord (with stats).
Diffstat (limited to 'cpp/src/Freeze/ObjectStore.h')
-rw-r--r--cpp/src/Freeze/ObjectStore.h14
1 files changed, 11 insertions, 3 deletions
diff --git a/cpp/src/Freeze/ObjectStore.h b/cpp/src/Freeze/ObjectStore.h
index a78c3e197d9..ff2574fa931 100644
--- a/cpp/src/Freeze/ObjectStore.h
+++ b/cpp/src/Freeze/ObjectStore.h
@@ -44,8 +44,8 @@ public:
static void marshal(const Ice::Identity&, Key&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&);
static void unmarshal(Ice::Identity&, const Key&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&);
- static void marshal(const ObjectRecord&, Value&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&);
- static void unmarshal(ObjectRecord&, const Value&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&);
+ static void marshal(const ObjectRecord&, Value&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&, bool);
+ static void unmarshal(ObjectRecord&, const Value&, const Ice::CommunicatorPtr&, const Ice::EncodingVersion&, bool);
bool load(const Ice::Identity&, const TransactionIPtr&, ObjectRecord&);
void update(const Ice::Identity&, const ObjectRecord&, const TransactionIPtr&);
@@ -64,7 +64,8 @@ public:
const Ice::CommunicatorPtr& communicator() const;
const Ice::EncodingVersion& encoding() const;
const std::string& facet() const;
-
+ bool keepStats() const;
+
protected:
bool loadImpl(const Ice::Identity&, ObjectRecord&);
@@ -79,6 +80,7 @@ private:
Ice::CommunicatorPtr _communicator;
Ice::EncodingVersion _encoding;
Ice::ObjectPtr _sampleServant;
+ bool _keepStats;
};
@@ -156,6 +158,12 @@ ObjectStoreBase::facet() const
return _facet;
}
+inline bool
+ObjectStoreBase::keepStats() const
+{
+ return _keepStats;
+}
+
inline const Ice::ObjectPtr&
ObjectStoreBase::sampleServant() const
{