summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Freeze/BackgroundSaveEvictorI.cpp23
-rw-r--r--cpp/src/Freeze/IndexI.cpp2
-rw-r--r--cpp/src/Freeze/ObjectStore.cpp34
-rw-r--r--cpp/src/Freeze/ObjectStore.h14
-rw-r--r--cpp/src/Freeze/TransactionalEvictorContext.cpp2
-rw-r--r--cpp/src/Freeze/TransactionalEvictorI.cpp21
-rwxr-xr-xcpp/src/FreezeScript/DumpDB.cpp54
-rwxr-xr-xcpp/src/FreezeScript/transformdb.cpp129
8 files changed, 144 insertions, 135 deletions
diff --git a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
index f71a286b2d9..7b2215f7341 100644
--- a/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
+++ b/cpp/src/Freeze/BackgroundSaveEvictorI.cpp
@@ -301,7 +301,7 @@ Freeze::BackgroundSaveEvictorI::addFacet(const ObjectPtr& servant, const Identit
ObjectRecord& rec = element->rec;
rec.servant = servant;
- if(_encoding == Ice::Encoding_1_0)
+ if(store->keepStats())
{
rec.stats.creationTime = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
rec.stats.lastSaveTime = 0;
@@ -934,11 +934,7 @@ Freeze::BackgroundSaveEvictorI::run()
deque<StreamedObject> streamedObjectQueue;
- Long streamStart = 0;
- if(_encoding == Ice::Encoding_1_0 || _trace >= 1)
- {
- streamStart = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
- }
+ Long streamStart = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
//
// Stream each element
@@ -1120,12 +1116,8 @@ Freeze::BackgroundSaveEvictorI::run()
txSize = streamedObjectQueue.size();
}
- Long saveStart = 0;
- if(_encoding == Ice::Encoding_1_0 || _trace >= 1)
- {
- saveStart = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
- }
-
+ Long saveStart = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
+
try
{
DbTxn* tx = 0;
@@ -1404,17 +1396,18 @@ Freeze::BackgroundSaveEvictorI::stream(const BackgroundSaveEvictorElementPtr& el
obj.status = element->status;
obj.store = &element->store;
-
+
const Identity& ident = element->cachePosition->first;
ObjectStoreBase::marshal(ident, obj.key, _communicator, _encoding);
if(element->status != destroyed)
{
- if(_encoding == Ice::Encoding_1_0)
+ bool keepStats = obj.store->keepStats();
+ if(keepStats)
{
EvictorIBase::updateStats(element->rec.stats, streamStart);
}
- ObjectStoreBase::marshal(element->rec, obj.value, _communicator, _encoding);
+ ObjectStoreBase::marshal(element->rec, obj.value, _communicator, _encoding, keepStats);
}
}
diff --git a/cpp/src/Freeze/IndexI.cpp b/cpp/src/Freeze/IndexI.cpp
index f0910bb2452..11a9bfc4be4 100644
--- a/cpp/src/Freeze/IndexI.cpp
+++ b/cpp/src/Freeze/IndexI.cpp
@@ -405,7 +405,7 @@ Freeze::IndexI::secondaryKeyCreate(Db* secondary, const Dbt* dbKey,
ObjectRecord rec;
Byte* first = static_cast<Byte*>(dbValue->get_data());
Value value(first, first + dbValue->get_size());
- ObjectStoreBase::unmarshal(rec, value, communicator, encoding);
+ ObjectStoreBase::unmarshal(rec, value, communicator, encoding, _store->keepStats());
Key bytes;
if(_index.marshalKey(rec.servant, bytes))
diff --git a/cpp/src/Freeze/ObjectStore.cpp b/cpp/src/Freeze/ObjectStore.cpp
index 899840b62a8..4015ab63eb5 100644
--- a/cpp/src/Freeze/ObjectStore.cpp
+++ b/cpp/src/Freeze/ObjectStore.cpp
@@ -29,7 +29,8 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
_evictor(evictor),
_indices(indices),
_communicator(evictor->communicator()),
- _encoding(evictor->encoding())
+ _encoding(evictor->encoding()),
+ _keepStats(false)
{
if(facet == "")
{
@@ -60,10 +61,17 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
Catalog::iterator p = catalog.find(evictor->filename());
if(p != catalog.end())
{
- if(p->second.evictor == false)
+ if(p->second.evictor)
+ {
+ //
+ // empty means the value is ::Freeze::ObjectRecord
+ //
+ _keepStats = p->second.value.empty();
+ }
+ else
{
DatabaseException ex(__FILE__, __LINE__);
- ex.message = evictor->filename() + " is an evictor database";
+ ex.message = evictor->filename() + " is not an evictor database";
throw ex;
}
}
@@ -141,6 +149,8 @@ Freeze::ObjectStoreBase::ObjectStoreBase(const string& facet, const string& face
{
CatalogData catalogData;
catalogData.evictor = true;
+ catalogData.key = "Ice::Identity";
+ catalogData.value = "Object";
catalog.put(Catalog::value_type(evictor->filename(), catalogData));
}
@@ -348,12 +358,13 @@ void
Freeze::ObjectStoreBase::marshal(const ObjectRecord& v,
Value& bytes,
const CommunicatorPtr& communicator,
- const EncodingVersion& encoding)
+ const EncodingVersion& encoding,
+ bool keepStats)
{
IceInternal::InstancePtr instance = IceInternal::getInstance(communicator);
IceInternal::BasicStream stream(instance.get(), encoding, true);
stream.startWriteEncaps();
- if(encoding == Ice::Encoding_1_0)
+ if(keepStats)
{
v.__write(&stream);
}
@@ -371,7 +382,8 @@ void
Freeze::ObjectStoreBase::unmarshal(ObjectRecord& v,
const Value& bytes,
const CommunicatorPtr& communicator,
- const EncodingVersion& encoding)
+ const EncodingVersion& encoding,
+ bool keepStats)
{
IceInternal::InstancePtr instance = IceInternal::getInstance(communicator);
IceInternal::BasicStream stream(instance.get(), encoding, true);
@@ -381,7 +393,7 @@ Freeze::ObjectStoreBase::unmarshal(ObjectRecord& v,
stream.i = stream.b.begin();
stream.startReadEncaps();
- if(encoding == Ice::Encoding_1_0)
+ if(keepStats)
{
v.__read(&stream);
}
@@ -453,7 +465,7 @@ Freeze::ObjectStoreBase::load(const Identity& ident, const TransactionIPtr& tran
}
}
- unmarshal(rec, value, _communicator, _encoding);
+ unmarshal(rec, value, _communicator, _encoding, _keepStats);
_evictor->initialize(ident, _facet, rec.servant);
return true;
}
@@ -477,7 +489,7 @@ Freeze::ObjectStoreBase::update(const Identity& ident, const ObjectRecord& rec,
marshal(ident, key, _communicator, _encoding);
Value value;
- marshal(rec, value, _communicator, _encoding);
+ marshal(rec, value, _communicator, _encoding, _keepStats);
Dbt dbKey;
Dbt dbValue;
@@ -522,7 +534,7 @@ Freeze::ObjectStoreBase::insert(const Identity& ident, const ObjectRecord& rec,
marshal(ident, key, _communicator, _encoding);
Value value;
- marshal(rec, value, _communicator, _encoding);
+ marshal(rec, value, _communicator, _encoding, _keepStats);
Dbt dbKey;
Dbt dbValue;
@@ -670,7 +682,7 @@ Freeze::ObjectStoreBase::loadImpl(const Identity& ident, ObjectRecord& rec)
}
}
- unmarshal(rec, value, _communicator, _encoding);
+ unmarshal(rec, value, _communicator, _encoding, _keepStats);
_evictor->initialize(ident, _facet, rec.servant);
return true;
}
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
{
diff --git a/cpp/src/Freeze/TransactionalEvictorContext.cpp b/cpp/src/Freeze/TransactionalEvictorContext.cpp
index e7c12e6a6b0..298019aed26 100644
--- a/cpp/src/Freeze/TransactionalEvictorContext.cpp
+++ b/cpp/src/Freeze/TransactionalEvictorContext.cpp
@@ -275,7 +275,7 @@ Freeze::TransactionalEvictorContext::ServantHolder::~ServantHolder()
{
if(!_body.readOnly && !_body.removed)
{
- if(_body.store->encoding() == Ice::Encoding_1_0)
+ if(_body.store->keepStats())
{
EvictorIBase::updateStats(_body.rec.stats,
IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds());
diff --git a/cpp/src/Freeze/TransactionalEvictorI.cpp b/cpp/src/Freeze/TransactionalEvictorI.cpp
index 40ec9191450..dfca69dee6a 100644
--- a/cpp/src/Freeze/TransactionalEvictorI.cpp
+++ b/cpp/src/Freeze/TransactionalEvictorI.cpp
@@ -139,27 +139,26 @@ Freeze::TransactionalEvictorI::addFacet(const ObjectPtr& servant, const Identity
checkIdentity(ident);
DeactivateController::Guard deactivateGuard(_deactivateController);
+ ObjectStore<TransactionalEvictorElement>* store = findStore(facet, _createDb);
+ if(store == 0)
+ {
+ throw NotFoundException(__FILE__, __LINE__, "addFacet: could not open database for facet '"
+ + facet + "'");
+ }
+
Ice::Long currentTime = 0;
- if(_encoding == Ice::Encoding_1_0)
+ if(store->keepStats())
{
currentTime = IceUtil::Time::now(IceUtil::Time::Monotonic).toMilliSeconds();
}
Statistics stats = { currentTime };
ObjectRecord rec = { servant, stats };
-
- ObjectStore<TransactionalEvictorElement>* store = findStore(facet, _createDb);
-
- if(store == 0)
- {
- throw NotFoundException(__FILE__, __LINE__, "addFacet: could not open database for facet '"
- + facet + "'");
- }
-
+
TransactionIPtr tx = beforeQuery();
- if(_encoding == Ice::Encoding_1_0)
+ if(store->keepStats())
{
updateStats(rec.stats, currentTime);
}
diff --git a/cpp/src/FreezeScript/DumpDB.cpp b/cpp/src/FreezeScript/DumpDB.cpp
index 955cbcf66af..b2da041ec3d 100755
--- a/cpp/src/FreezeScript/DumpDB.cpp
+++ b/cpp/src/FreezeScript/DumpDB.cpp
@@ -106,7 +106,6 @@ usage(const string& n)
"--select EXPR Dump a record only if EXPR is true.\n"
"-c, --catalog Display information about the databases in an\n"
" environment, or about a particular database.\n"
- "--encoding VERSION Sets the encoding version for the database environment.\n"
;
}
@@ -159,7 +158,6 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
opts.addOpt("", "value", IceUtilInternal::Options::NeedArg);
opts.addOpt("", "select", IceUtilInternal::Options::NeedArg);
opts.addOpt("c", "catalog");
- opts.addOpt("", "encoding", IceUtilInternal::Options::NeedArg);
vector<string> args;
try
@@ -173,8 +171,6 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
return EXIT_FAILURE;
}
- Ice::EncodingVersion encoding = Ice::currentEncoding;
-
//
// Freeze creates a lock file by default to prevent multiple processes from opening
// the same database environment simultaneously. In the case of a read-only program
@@ -193,9 +189,6 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
{
props->setProperty(prefix + ".LockFile", "0");
}
-
- encoding = Ice::stringToEncodingVersion(
- props->getPropertyWithDefault(prefix + ".Encoding", Ice::encodingVersionToString(encoding)));
}
if(opts.isSet("h"))
@@ -321,17 +314,7 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
{
selectExpr = opts.optArg("select");
}
- if(opts.isSet("encoding"))
- {
- encoding = Ice::stringToEncodingVersion(opts.optArg("encoding"));
- }
-
- if(!IceInternal::isSupported(encoding, Ice::currentEncoding))
- {
- cerr << appName << ": " << "unsupported encoding" << endl;
- return EXIT_FAILURE;
- }
-
+
if(outputFile.empty() && args.size() != 2)
{
usage(appName);
@@ -374,15 +357,16 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
if(inputFile.empty())
{
const string evictorKeyTypeName = "::Ice::Identity";
- const string evictorValueTypeName = (encoding == Ice::Encoding_1_0) ? "::Freeze::ObjectRecord" : "Object";
+ const string oldEvictorValueTypeName = "::Freeze::ObjectRecord";
+ const string newEvictorValueTypeName = "Object";
- if((!keyTypeName.empty() && valueTypeName.empty()) || (keyTypeName.empty() && !valueTypeName.empty()))
+ if((!keyTypeName.empty() && valueTypeName.empty()) || (keyTypeName.empty() && !valueTypeName.empty() && !evictor))
{
cerr << appName << ": a key type and a value type must be specified" << endl;
usage(appName);
return EXIT_FAILURE;
}
- else if(!evictor && keyTypeName.empty() && valueTypeName.empty())
+ else if(valueTypeName.empty())
{
try
{
@@ -404,24 +388,32 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
{
evictor = true;
}
- else
- {
- keyTypeName = p->second.key;
- valueTypeName = p->second.value;
- }
+ keyTypeName = p->second.key;
+ valueTypeName = p->second.value;
+
+ if(evictor && valueTypeName.empty())
+ {
+ valueTypeName = oldEvictorValueTypeName;
+ }
}
}
catch(const FreezeScript::FailureException& ex)
{
- cerr << appName << ": " << ex.reason() << endl;
- return EXIT_FAILURE;
+ cerr << appName << ": " << ex.reason() << endl;
+ return EXIT_FAILURE;
}
}
if(evictor)
{
- keyTypeName = evictorKeyTypeName;
- valueTypeName = evictorValueTypeName;
+ if(keyTypeName.empty())
+ {
+ keyTypeName = evictorKeyTypeName;
+ }
+ if(valueTypeName.empty())
+ {
+ valueTypeName = newEvictorValueTypeName;
+ }
}
Slice::TypePtr keyType, valueType;
@@ -553,7 +545,7 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
dbValue.set_flags(DB_DBT_USERMEM | DB_DBT_PARTIAL);
Dbc* dbc = 0;
- db.cursor(0, &dbc, 0);
+ db.cursor(txn, &dbc, 0);
while(dbc->get(&dbKey, &dbValue, DB_NEXT) == 0)
{
diff --git a/cpp/src/FreezeScript/transformdb.cpp b/cpp/src/FreezeScript/transformdb.cpp
index b9f6e9774ef..24bfdd71d1e 100755
--- a/cpp/src/FreezeScript/transformdb.cpp
+++ b/cpp/src/FreezeScript/transformdb.cpp
@@ -83,10 +83,8 @@ usage(const std::string& n)
"-p Purge objects whose types no longer exist.\n"
"-c Use catastrophic recovery on the old database environment.\n"
"-w Suppress duplicate warnings during migration.\n"
- "--encoding VER[,VER] Specifies the Ice encoding version for the database\n"
- " environments. If the encoding version remains the same,\n"
- " only one needs to be specified. Otherwise, the versions\n"
- " are specified as old-version,new-version.\n"
+ "--encoding VERSION Set the Ice encoding version for the new database\n"
+ " environment.\n"
"-f FILE Execute the transformation descriptors in the file FILE.\n"
;
}
@@ -236,7 +234,6 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
string valueTypeNames;
string dbEnvName, dbName, dbEnvNameNew;
bool allDb = false;
- Ice::EncodingVersion oldEncoding = Ice::currentEncoding;
Ice::EncodingVersion newEncoding = Ice::currentEncoding;
IceUtilInternal::Options opts;
@@ -440,38 +437,17 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
{
props->setProperty(prefix + ".LockFile", "0");
}
-
- oldEncoding = Ice::stringToEncodingVersion(
- props->getPropertyWithDefault(prefix + ".Encoding", Ice::encodingVersionToString(oldEncoding)));
}
if(opts.isSet("encoding"))
{
- string encodingList = opts.optArg("encoding");
- string::size_type pos = encodingList.find(",");
+ newEncoding = Ice::stringToEncodingVersion(opts.optArg("encoding"));
- if(pos == 0 || pos == encodingList.size())
+ if(!IceInternal::isSupported(newEncoding, Ice::currentEncoding))
{
cerr << appName << ": " << "unsupported encoding" << endl;
return EXIT_FAILURE;
}
- if(pos == string::npos)
- {
- oldEncoding = Ice::stringToEncodingVersion(encodingList);
- newEncoding = oldEncoding;
- }
- else
- {
- oldEncoding = Ice::stringToEncodingVersion(encodingList.substr(0, pos));
- newEncoding = Ice::stringToEncodingVersion(encodingList.substr(pos + 1));
- }
- }
-
- if(!IceInternal::isSupported(oldEncoding, Ice::currentEncoding) ||
- !IceInternal::isSupported(newEncoding, Ice::currentEncoding))
- {
- cerr << appName << ": " << "unsupported encoding" << endl;
- return EXIT_FAILURE;
}
Slice::UnitPtr oldUnit = Slice::Unit::createUnit(true, true, ice, underscore);
@@ -530,8 +506,8 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
FreezeScript::TransformAnalyzer analyzer(oldUnit, newUnit, ignoreTypeChanges, out, missingTypes, analyzeErrors);
const string evictorKeyName = "::Ice::Identity";
- const string oldEvictorValueTypeName = (oldEncoding == Ice::Encoding_1_0) ? "::Freeze::ObjectRecord" : "Object";
- const string newEvictorValueTypeName = (newEncoding == Ice::Encoding_1_0) ? "::Freeze::ObjectRecord" : "Object";
+ const string oldEvictorValueName = "::Freeze::ObjectRecord";
+ const string newEvictorValueName = "Object";
if(allDb)
{
@@ -544,8 +520,17 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
if(p->second.evictor)
{
- keyName = evictorKeyName;
- valueName = oldEvictorValueTypeName;
+ keyName = p->second.key;
+ valueName = p->second.value;
+
+ if(keyName.empty())
+ {
+ keyName = evictorKeyName;
+ }
+ if(valueName.empty())
+ {
+ valueName = oldEvictorValueName;
+ }
}
else
{
@@ -578,7 +563,10 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
Slice::TypePtr newValueType;
if(p->second.evictor)
{
- newValueType = findType(newUnit, newEvictorValueTypeName);
+ //
+ // The new evictor does not keep stats
+ //
+ newValueType = findType(newUnit, newEvictorValueName);
}
else
{
@@ -604,47 +592,44 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
{
return EXIT_FAILURE;
}
-
+
analyzer.addDatabase(p->first, oldKeyType, newKeyType, oldValueType, newValueType);
}
}
else
{
string oldKeyName, newKeyName, oldValueName, newValueName;
-
- if(evictor)
- {
- oldKeyName = newKeyName = evictorKeyName;
- oldValueName = oldEvictorValueTypeName;
- newValueName = newEvictorValueTypeName;
- }
- else
- {
- string::size_type pos;
-
- if(keyTypeNames.empty() || valueTypeNames.empty())
- {
- usage(appName);
- return EXIT_FAILURE;
- }
-
- pos = keyTypeNames.find(',');
- if(pos == 0 || pos == keyTypeNames.size())
- {
- usage(appName);
- return EXIT_FAILURE;
- }
- if(pos == string::npos)
- {
- oldKeyName = keyTypeNames;
- newKeyName = keyTypeNames;
- }
+
+ string::size_type pos;
+
+ if(!evictor && (keyTypeNames.empty() || valueTypeNames.empty()))
+ {
+ usage(appName);
+ return EXIT_FAILURE;
+ }
+
+ if(!keyTypeNames.empty())
+ {
+ pos = keyTypeNames.find(',');
+ if(pos == 0 || pos == keyTypeNames.size())
+ {
+ usage(appName);
+ return EXIT_FAILURE;
+ }
+ if(pos == string::npos)
+ {
+ oldKeyName = keyTypeNames;
+ newKeyName = keyTypeNames;
+ }
else
{
oldKeyName = keyTypeNames.substr(0, pos);
newKeyName = keyTypeNames.substr(pos + 1);
}
+ }
+ if(!valueTypeNames.empty())
+ {
pos = valueTypeNames.find(',');
if(pos == 0 || pos == valueTypeNames.size())
{
@@ -662,6 +647,26 @@ run(const Ice::StringSeq& originalArgs, const Ice::CommunicatorPtr& communicator
newValueName = valueTypeNames.substr(pos + 1);
}
}
+
+ if(evictor)
+ {
+ if(oldKeyName.empty())
+ {
+ oldKeyName = evictorKeyName;
+ }
+ if(newKeyName.empty())
+ {
+ newKeyName = evictorKeyName;
+ }
+ if(oldValueName.empty())
+ {
+ oldValueName = newEvictorValueName;
+ }
+ if(newValueName.empty())
+ {
+ newValueName = newEvictorValueName;
+ }
+ }
//
// Look up the key and value types in the old and new Slice definitions.