summaryrefslogtreecommitdiff
path: root/cpp/src/FreezeScript/transformdb.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/FreezeScript/transformdb.cpp')
-rw-r--r--cpp/src/FreezeScript/transformdb.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/cpp/src/FreezeScript/transformdb.cpp b/cpp/src/FreezeScript/transformdb.cpp
index 9f868efccb5..cf38e463bf5 100644
--- a/cpp/src/FreezeScript/transformdb.cpp
+++ b/cpp/src/FreezeScript/transformdb.cpp
@@ -92,7 +92,8 @@ findType(const string& prog, const Slice::UnitPtr& u, const string& type)
}
static void
-transformDb(bool evictor, const Ice::CommunicatorPtr& communicator,
+transformDb(bool evictor, const Ice::CommunicatorPtr& communicator,
+ const FreezeScript::ObjectFactoryPtr& objectFactory,
DbEnv& dbEnv, DbEnv& dbEnvNew, const string& dbName,
const Freeze::ConnectionPtr& connectionNew, vector<Db*>& dbs,
const Slice::UnitPtr& oldUnit, const Slice::UnitPtr& newUnit,
@@ -152,8 +153,8 @@ transformDb(bool evictor, const Ice::CommunicatorPtr& communicator,
//
istringstream istr(descriptors);
string facet = (name == "$default" ? "" : name);
- FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, 0, dbName,
- facet, purgeObjects, cerr, suppress, istr);
+ FreezeScript::transformDatabase(communicator, objectFactory, oldUnit, newUnit, &db, dbNew, txnNew, 0,
+ dbName, facet, purgeObjects, cerr, suppress, istr);
db.close(0);
}
@@ -179,8 +180,8 @@ transformDb(bool evictor, const Ice::CommunicatorPtr& communicator,
// Execute the transformation descriptors.
//
istringstream istr(descriptors);
- FreezeScript::transformDatabase(communicator, oldUnit, newUnit, &db, dbNew, txnNew, connectionNew,
- dbName, "", purgeObjects, cerr, suppress, istr);
+ FreezeScript::transformDatabase(communicator, objectFactory, oldUnit, newUnit, &db, dbNew, txnNew,
+ connectionNew, dbName, "", purgeObjects, cerr, suppress, istr);
db.close(0);
}
@@ -520,6 +521,9 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
return EXIT_FAILURE;
}
+ FreezeScript::ObjectFactoryPtr objectFactory = new FreezeScript::ObjectFactory;
+ communicator->addObjectFactory(objectFactory, "");
+
//
// Transform the database.
//
@@ -632,13 +636,13 @@ run(int argc, char** argv, const Ice::CommunicatorPtr& communicator)
cout << "Processing database " << p->first << " with descriptor: " << localDescriptor << endl;
}
- transformDb(p->second.evictor, communicator, dbEnv, dbEnvNew, p->first, connectionNew, dbs,
- oldUnit, newUnit, txnNew, purgeObjects, suppress, localDescriptor);
+ transformDb(p->second.evictor, communicator, objectFactory, dbEnv, dbEnvNew, p->first, connectionNew,
+ dbs, oldUnit, newUnit, txnNew, purgeObjects, suppress, localDescriptor);
}
}
else
{
- transformDb(evictor, communicator, dbEnv, dbEnvNew, dbName, connectionNew, dbs,
+ transformDb(evictor, communicator, objectFactory, dbEnv, dbEnvNew, dbName, connectionNew, dbs,
oldUnit, newUnit, txnNew, purgeObjects, suppress, descriptors);
}
}