summaryrefslogtreecommitdiff
path: root/cpp/src/IceGrid/IceGridDB.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceGrid/IceGridDB.cpp')
-rw-r--r--cpp/src/IceGrid/IceGridDB.cpp61
1 files changed, 34 insertions, 27 deletions
diff --git a/cpp/src/IceGrid/IceGridDB.cpp b/cpp/src/IceGrid/IceGridDB.cpp
index 2c810287d3f..dcdfa883d98 100644
--- a/cpp/src/IceGrid/IceGridDB.cpp
+++ b/cpp/src/IceGrid/IceGridDB.cpp
@@ -268,6 +268,14 @@ Client::run(int argc, char* argv[])
fs.seekg(0, ios::end);
streampos fileSize = fs.tellg();
+
+ if(!fileSize)
+ {
+ fs.close();
+ cerr << "Empty input file" << endl;
+ return EXIT_FAILURE;
+ }
+
fs.seekg(0, ios::beg);
vector<Ice::Byte> buf;
@@ -279,22 +287,22 @@ Client::run(int argc, char* argv[])
if(!serverVersion.empty())
{
ValueFactoryPtr factory = new ValueFactoryI(serverVersion);
- communicator()->addValueFactory(factory, "::IceGrid::ServerDescriptor");
- communicator()->addValueFactory(factory, "::IceGrid::IceBoxDescriptor");
+ communicator()->getValueFactoryManager()->add(factory, "::IceGrid::ServerDescriptor");
+ communicator()->getValueFactoryManager()->add(factory, "::IceGrid::IceBoxDescriptor");
}
- Ice::InputStreamPtr stream = Ice::wrapInputStream(communicator(), buf, dbContext.encoding);
+ Ice::InputStream stream(communicator(), dbContext.encoding, buf);
string type;
int version;
- stream->read(type);
+ stream.read(type);
if(type != "IceGrid")
{
cerr << "Incorrect input file type: " << type << endl;
return EXIT_FAILURE;
}
- stream->read(version);
+ stream.read(version);
if(version / 100 == 305)
{
if(debug)
@@ -303,7 +311,7 @@ Client::run(int argc, char* argv[])
}
skipFilter = true;
}
- stream->read(data);
+ stream.read(data);
{
IceDB::Env env(dbPath, 5, mapSize);
@@ -314,7 +322,7 @@ Client::run(int argc, char* argv[])
cout << "Writing Applications Map:" << endl;
}
- IceDB::Dbi<string, ApplicationInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, ApplicationInfo, IceDB::IceContext, Ice::OutputStream>
apps(txn, "applications", dbContext, MDB_CREATE);
for(ApplicationInfoSeq::const_iterator p = data.applications.begin(); p != data.applications.end(); ++p)
@@ -331,7 +339,7 @@ Client::run(int argc, char* argv[])
cout << "Writing Adapters Map:" << endl;
}
- IceDB::Dbi<string, AdapterInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, AdapterInfo, IceDB::IceContext, Ice::OutputStream>
adpts(txn, "adapters", dbContext, MDB_CREATE);
for(AdapterInfoSeq::const_iterator p = data.adapters.begin(); p != data.adapters.end(); ++p)
@@ -348,7 +356,7 @@ Client::run(int argc, char* argv[])
cout << "Writing Objects Map:" << endl;
}
- IceDB::Dbi<Identity, ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<Identity, ObjectInfo, IceDB::IceContext, Ice::OutputStream>
objs(txn, "objects", dbContext, MDB_CREATE);
for(ObjectInfoSeq::const_iterator p = data.objects.begin(); p != data.objects.end(); ++p)
@@ -365,7 +373,7 @@ Client::run(int argc, char* argv[])
cout << "Writing Internal Objects Map:" << endl;
}
- IceDB::Dbi<Identity, ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<Identity, ObjectInfo, IceDB::IceContext, Ice::OutputStream>
internalObjs(txn, "internal-objects", dbContext, MDB_CREATE);
for(ObjectInfoSeq::const_iterator p = data.internalObjects.begin(); p != data.internalObjects.end(); ++p)
@@ -382,7 +390,7 @@ Client::run(int argc, char* argv[])
cout << "Writing Serials Map:" << endl;
}
- IceDB::Dbi<string, Long, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, Long, IceDB::IceContext, Ice::OutputStream>
srls(txn, "serials", dbContext, MDB_CREATE);
for(StringLongDict::const_iterator p = data.serials.begin(); p != data.serials.end(); ++p)
@@ -411,12 +419,12 @@ Client::run(int argc, char* argv[])
cout << "Reading Application Map:" << endl;
}
- IceDB::Dbi<string, IceGrid::ApplicationInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, IceGrid::ApplicationInfo, IceDB::IceContext, Ice::OutputStream>
applications(txn, "applications", dbContext, 0);
string name;
ApplicationInfo application;
- IceDB::ReadOnlyCursor<string, IceGrid::ApplicationInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::ReadOnlyCursor<string, IceGrid::ApplicationInfo, IceDB::IceContext, Ice::OutputStream>
appCursor(applications, txn);
while(appCursor.get(name, application, MDB_NEXT))
{
@@ -433,11 +441,11 @@ Client::run(int argc, char* argv[])
cout << "Reading Adapter Map:" << endl;
}
- IceDB::Dbi<string, IceGrid::AdapterInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, IceGrid::AdapterInfo, IceDB::IceContext, Ice::OutputStream>
adapters(txn, "adapters", dbContext, 0);
AdapterInfo adapter;
- IceDB::ReadOnlyCursor<string, IceGrid::AdapterInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::ReadOnlyCursor<string, IceGrid::AdapterInfo, IceDB::IceContext, Ice::OutputStream>
adapterCursor(adapters, txn);
while(adapterCursor.get(name, adapter, MDB_NEXT))
{
@@ -454,12 +462,12 @@ Client::run(int argc, char* argv[])
cout << "Reading Object Map:" << endl;
}
- IceDB::Dbi<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStream>
objects(txn, "objects", dbContext, 0);
Identity id;
ObjectInfo object;
- IceDB::ReadOnlyCursor<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::ReadOnlyCursor<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStream>
objCursor(objects, txn);
while(objCursor.get(id, object, MDB_NEXT))
{
@@ -476,10 +484,10 @@ Client::run(int argc, char* argv[])
cout << "Reading Internal Object Map:" << endl;
}
- IceDB::Dbi<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStream>
internalObjects(txn, "internal-objects", dbContext, 0);
- IceDB::ReadOnlyCursor<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::ReadOnlyCursor<Identity, IceGrid::ObjectInfo, IceDB::IceContext, Ice::OutputStream>
iobjCursor(internalObjects, txn);
while(iobjCursor.get(id, object, MDB_NEXT))
{
@@ -496,11 +504,11 @@ Client::run(int argc, char* argv[])
cout << "Reading Serials Map:" << endl;
}
- IceDB::Dbi<string, Long, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::Dbi<string, Long, IceDB::IceContext, Ice::OutputStream>
serials(txn, "serials", dbContext, 0);
Long serial;
- IceDB::ReadOnlyCursor<string, Long, IceDB::IceContext, Ice::OutputStreamPtr>
+ IceDB::ReadOnlyCursor<string, Long, IceDB::IceContext, Ice::OutputStream>
serialCursor(serials, txn);
while(serialCursor.get(name, serial, MDB_NEXT))
{
@@ -516,11 +524,10 @@ Client::run(int argc, char* argv[])
env.close();
}
- Ice::OutputStreamPtr stream = Ice::createOutputStream(communicator(), dbContext.encoding);
- stream->write("IceGrid");
- stream->write(ICE_INT_VERSION);
- stream->write(data);
- pair<const Ice::Byte*, const Ice::Byte*> buf = stream->finished();
+ Ice::OutputStream stream(communicator(), dbContext.encoding);
+ stream.write("IceGrid");
+ stream.write(ICE_INT_VERSION);
+ stream.write(data);
ofstream fs(dbFile.c_str(), ios::binary);
if(fs.fail())
@@ -528,7 +535,7 @@ Client::run(int argc, char* argv[])
cerr << "Could not open output file: " << strerror(errno) << endl;
return EXIT_FAILURE;
}
- fs.write(reinterpret_cast<const char*>(buf.first), buf.second - buf.first);
+ fs.write(reinterpret_cast<const char*>(stream.b.begin()), stream.b.size());
fs.close();
}
}