diff options
author | Marc Laukien <marc@zeroc.com> | 2001-09-22 06:38:31 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2001-09-22 06:38:31 +0000 |
commit | 28a98e98bcea5139c921c214ecc3cc23e05bbbc2 (patch) | |
tree | a4a20b4bdb88cb95e6bf1d354b5765bf38b825d2 /cpp | |
parent | many changes (diff) | |
download | ice-28a98e98bcea5139c921c214ecc3cc23e05bbbc2.tar.bz2 ice-28a98e98bcea5139c921c214ecc3cc23e05bbbc2.tar.xz ice-28a98e98bcea5139c921c214ecc3cc23e05bbbc2.zip |
more and more freeze change
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/demo/Freeze/phonebook/.depend | 2 | ||||
-rw-r--r-- | cpp/demo/Freeze/phonebook/Server.cpp | 14 | ||||
-rw-r--r-- | cpp/slice/Freeze/DB.ice | 37 | ||||
-rw-r--r-- | cpp/src/Freeze/DBI.cpp | 54 | ||||
-rw-r--r-- | cpp/src/Freeze/DBI.h | 2 | ||||
-rw-r--r-- | cpp/src/Freeze/EvictorI.cpp | 14 | ||||
-rw-r--r-- | cpp/src/slice2freeze/.depend | 4 |
7 files changed, 38 insertions, 89 deletions
diff --git a/cpp/demo/Freeze/phonebook/.depend b/cpp/demo/Freeze/phonebook/.depend index 902b1044fa0..5e8ff59cb7c 100644 --- a/cpp/demo/Freeze/phonebook/.depend +++ b/cpp/demo/Freeze/phonebook/.depend @@ -4,6 +4,6 @@ Scanner.o: Scanner.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communica Parser.o: Parser.cpp ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h Parser.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h Client.o: Client.cpp Parser.h ../../../include/IceUtil/Handle.h ../../../include/IceUtil/Config.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h PhoneBookI.o: PhoneBookI.cpp PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h -NameIdentitiesDict.o: NameIdentitiesDict.cpp NameIdentitiesDict.h ../../../include/Freeze/DB.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Freeze/EvictorF.h +NameIdentitiesDict.o: NameIdentitiesDict.cpp NameIdentitiesDict.h ../../../include/Freeze/DB.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Freeze/DBF.h ../../../include/Freeze/EvictorF.h ServantFactory.o: ServantFactory.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h Server.o: Server.cpp ServantFactory.h PhoneBookI.h ../../../include/Ice/Ice.h ../../../include/Ice/Communicator.h ../../../include/Ice/ProxyF.h ../../../include/Ice/ProxyHandle.h ../../../include/Ice/Config.h ../../../include/IceUtil/Config.h ../../../include/Ice/ObjectF.h ../../../include/Ice/Handle.h ../../../include/IceUtil/Handle.h ../../../include/Ice/LocalObjectF.h ../../../include/Ice/Native.h ../../../include/Ice/LocalObject.h ../../../include/IceUtil/Shared.h ../../../include/Ice/LoggerF.h ../../../include/Ice/ObjectAdapterF.h ../../../include/Ice/PicklerF.h ../../../include/Ice/PropertiesF.h ../../../include/Ice/ServantFactoryF.h ../../../include/Ice/ObjectAdapter.h ../../../include/Ice/CommunicatorF.h ../../../include/Ice/LocalException.h ../../../include/Ice/Properties.h ../../../include/Ice/Logger.h ../../../include/Ice/ServantFactory.h ../../../include/Ice/Pickler.h ../../../include/Ice/Initialize.h ../../../include/Ice/InstanceF.h ../../../include/IceUtil/IceUtil.h ../../../include/IceUtil/Functional.h ../../../include/Freeze/Freeze.h ../../../include/Freeze/Initialize.h ../../../include/Freeze/DBF.h ../../../include/Freeze/DB.h ../../../include/Freeze/EvictorF.h ../../../include/Freeze/Evictor.h PhoneBook.h ../../../include/Ice/Proxy.h ../../../include/Ice/ProxyFactoryF.h ../../../include/Ice/EmitterF.h ../../../include/Ice/ReferenceF.h ../../../include/Ice/Object.h ../../../include/Ice/Outgoing.h ../../../include/Ice/Stream.h ../../../include/Ice/Buffer.h ../../../include/Ice/Incoming.h NameIdentitiesDict.h diff --git a/cpp/demo/Freeze/phonebook/Server.cpp b/cpp/demo/Freeze/phonebook/Server.cpp index 32148cc4219..0b7838de504 100644 --- a/cpp/demo/Freeze/phonebook/Server.cpp +++ b/cpp/demo/Freeze/phonebook/Server.cpp @@ -81,7 +81,7 @@ using namespace Freeze; using namespace std; int -run(int argc, char* argv[], const DBEnvPtr& dbenv) +run(int argc, char* argv[], const DBEnvironmentPtr& dbEnv) { cout << "starting up..." << endl; ignoreInterrupt(); @@ -92,7 +92,7 @@ run(int argc, char* argv[], const DBEnvPtr& dbenv) // // Open the phonebook database. // - DBPtr db = dbenv->openDB("phonebook"); + DBPtr db = dbEnv->openDB("phonebook"); // // Create an Evictor. @@ -148,14 +148,14 @@ int main(int argc, char* argv[]) { int status; - DBEnvPtr dbenv; + DBEnvironmentPtr dbEnv; try { PropertiesPtr properties = createPropertiesFromFile(argc, argv, "config"); communicator = Ice::initializeWithProperties(properties); - dbenv = Freeze::initialize(communicator, "db"); - status = run(argc, argv, dbenv); + dbEnv = Freeze::initialize(communicator, "db"); + status = run(argc, argv, dbEnv); } catch(const LocalException& ex) { @@ -168,11 +168,11 @@ main(int argc, char* argv[]) status = EXIT_FAILURE; } - if (dbenv) + if (dbEnv) { try { - dbenv->close(); + dbEnv->close(); } catch(const LocalException& ex) { diff --git a/cpp/slice/Freeze/DB.ice b/cpp/slice/Freeze/DB.ice index 3a5d5d2e629..daa249410e5 100644 --- a/cpp/slice/Freeze/DB.ice +++ b/cpp/slice/Freeze/DB.ice @@ -46,7 +46,6 @@ struct DBException * @see DBException * @see DBTransaction * @see DB - * @see DBForServants * **/ local interface DBEnvironment @@ -62,9 +61,9 @@ local interface DBEnvironment /** * - * Open and return a basic key/value database object. If the - * database has been opened before, the previously returned - * database object is returned again. + * Open and return a database object. If the database has been + * opened before, the previously returned database object is + * returned again. * * @param name The database name. * @@ -78,22 +77,6 @@ local interface DBEnvironment /** * - * Open and return a databae for identity/Servant pairs. If the - * database has been opened before, the previously returned - * database object is returned again. - * - * @param name The database name. - * - * @return The database object. - * - * @see DBForServant - * @see DBForServant::close - * - **/ - DB openDBForServant(string name) throws DBException; - - /** - * * Start a new transaction in this database environment, and * return the transaction object for such new transaction. * @@ -156,18 +139,6 @@ sequence<byte> Value; /** * - * The base class for databases. - * - * @see DBEnvironment::openDB - * @see DBException - * - **/ -local interface DBBase -{ -}; - -/** - * * A database that can store basic key/value pairs, or * identity/servant pairs. In case the database is used to store both * key/value and identity/Servant pairs, it is the application's @@ -184,7 +155,7 @@ local interface DBBase * @see Evictor * **/ -local interface DBForKeyValues extends DBBase +local interface DB { /** * diff --git a/cpp/src/Freeze/DBI.cpp b/cpp/src/Freeze/DBI.cpp index b6359fed260..cc97d8a31fd 100644 --- a/cpp/src/Freeze/DBI.cpp +++ b/cpp/src/Freeze/DBI.cpp @@ -387,23 +387,13 @@ Freeze::DBI::put(const Key& key, const Value& value, bool txn) throw ex; } - if (!servant) - { - return; - } - - IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator); - IceInternal::Stream stream(instance); - stream.write(servant); - DBT dbKey, dbData; - memset(&dbKey, 0, sizeof(dbKey)); memset(&dbData, 0, sizeof(dbData)); - dbKey.data = const_cast<void*>(static_cast<const void*>(key.c_str())); + dbKey.data = const_cast<void*>(static_cast<const void*>(key.begin())); dbKey.size = key.size(); - dbData.data = stream.b.begin(); - dbData.size = stream.b.size(); + dbData.data = const_cast<void*>(static_cast<const void*>(value.begin())); + dbData.size = value.size(); while (true) { @@ -416,7 +406,7 @@ Freeze::DBI::put(const Key& key, const Value& value, bool txn) if (_trace >= 1) { ostringstream s; - s << "writing value for key \"" << key << "\" in database \"" << _name << "\""; + s << "writing value in database \"" << _name << "\""; _logger->trace("DB", s.str()); } @@ -494,13 +484,13 @@ Freeze::DBI::get(const Key& key) DBT dbKey, dbData; memset(&dbKey, 0, sizeof(dbKey)); memset(&dbData, 0, sizeof(dbData)); - dbKey.data = const_cast<void*>(static_cast<const void*>(key.c_str())); + dbKey.data = const_cast<void*>(static_cast<const void*>(key.begin())); dbKey.size = key.size(); if (_trace >= 1) { ostringstream s; - s << "reading value for key \"" << key << "\" from database \"" << _name << "\""; + s << "reading value from database \"" << _name << "\""; _logger->trace("DB", s.str()); } @@ -513,21 +503,10 @@ Freeze::DBI::get(const Key& key) // // Everything ok // - IceInternal::InstancePtr instance = IceInternal::getInstance(_communicator); - IceInternal::Stream stream(instance); - stream.b.resize(dbData.size); - stream.i = stream.b.begin(); - memcpy(stream.b.begin(), dbData.data, dbData.size); - - ObjectPtr servant; - stream.read(servant, "::Ice::Object"); - - if (!servant) - { - throw NoServantFactoryException(__FILE__, __LINE__); - } - - return servant; + Value value; + value.resize(dbData.size); + memcpy(value.begin(), dbData.data, dbData.size); + return value; } case DB_NOTFOUND: @@ -535,7 +514,7 @@ Freeze::DBI::get(const Key& key) // // Key does not exist, return a null servant // - return 0; + return Value(); } default: @@ -565,13 +544,13 @@ Freeze::DBI::del(const Key& key) DBT dbKey; memset(&dbKey, 0, sizeof(dbKey)); - dbKey.data = const_cast<void*>(static_cast<const void*>(key.c_str())); + dbKey.data = const_cast<void*>(static_cast<const void*>(key.begin())); dbKey.size = key.size(); if (_trace >= 1) { ostringstream s; - s << "deleting value for key \"" << key << "\" from database \"" << _name << "\""; + s << "deleting value from database \"" << _name << "\""; _logger->trace("DB", s.str()); } @@ -599,7 +578,7 @@ Freeze::DBI::del(const Key& key) } void -Freeze::DBI::put(const string& identity, const ObjectPtr& servant, bool txn) +Freeze::DBI::putServant(const string& identity, const ObjectPtr& servant, bool txn) { JTCSyncT<JTCMutex> sync(*this); @@ -622,7 +601,6 @@ Freeze::DBI::put(const string& identity, const ObjectPtr& servant, bool txn) stream.write(servant); DBT dbKey, dbData; - memset(&dbKey, 0, sizeof(dbKey)); memset(&dbData, 0, sizeof(dbData)); dbKey.data = const_cast<void*>(static_cast<const void*>(identity.c_str())); @@ -703,7 +681,7 @@ Freeze::DBI::put(const string& identity, const ObjectPtr& servant, bool txn) } ObjectPtr -Freeze::DBI::get(const string& identity) +Freeze::DBI::getServant(const string& identity) { JTCSyncT<JTCMutex> sync(*this); @@ -775,7 +753,7 @@ Freeze::DBI::get(const string& identity) } void -Freeze::DBI::del(const string& identity) +Freeze::DBI::delServant(const string& identity) { JTCSyncT<JTCMutex> sync(*this); diff --git a/cpp/src/Freeze/DBI.h b/cpp/src/Freeze/DBI.h index bb440926798..fa25dda1113 100644 --- a/cpp/src/Freeze/DBI.h +++ b/cpp/src/Freeze/DBI.h @@ -31,7 +31,7 @@ public: virtual std::string getName(); virtual DBPtr openDB(const std::string&); - virtual DBTransactionPtr startDBTransaction(); + virtual DBTransactionPtr startTransaction(); virtual void close(); private: diff --git a/cpp/src/Freeze/EvictorI.cpp b/cpp/src/Freeze/EvictorI.cpp index a775ad6cae1..4be3641ce68 100644 --- a/cpp/src/Freeze/EvictorI.cpp +++ b/cpp/src/Freeze/EvictorI.cpp @@ -102,7 +102,7 @@ Freeze::EvictorI::setPersistenceMode(EvictorPersistenceMode persistenceMode) for (map<string, EvictorElement>::iterator p = _evictorMap.begin(); p != _evictorMap.end(); ++p) { - _db->put(*(p->second.position), p->second.servant, true); + _db->putServant(*(p->second.position), p->second.servant, true); } } } @@ -124,7 +124,7 @@ Freeze::EvictorI::createObject(const string& identity, const ObjectPtr& servant) // // Save the new Ice Object to the database. // - _db->put(identity, servant, true); + _db->putServant(identity, servant, true); add(identity, servant); if (_trace >= 1) @@ -143,7 +143,7 @@ Freeze::EvictorI::destroyObject(const string& identity) // // Delete the Ice Object from the database. // - _db->del(identity); + _db->delServant(identity); remove(identity); if (_trace >= 1) @@ -204,7 +204,7 @@ Freeze::EvictorI::locate(const ObjectAdapterPtr& adapter, const string& identity // Load the Ice Object from database and create and add a // Servant for it. // - ObjectPtr servant = _db->get(identity); + ObjectPtr servant = _db->getServant(identity); if (!servant) { // @@ -246,7 +246,7 @@ Freeze::EvictorI::finished(const ObjectAdapterPtr&, const string& identity, cons { if (servant->__isMutating(operation)) { - _db->put(identity, servant, true); + _db->putServant(identity, servant, true); } } } @@ -271,7 +271,7 @@ Freeze::EvictorI::deactivate() { for (map<string, EvictorElement>::iterator p = _evictorMap.begin(); p != _evictorMap.end(); ++p) { - _db->put(*(p->second.position), p->second.servant, true); + _db->putServant(*(p->second.position), p->second.servant, true); } } @@ -313,7 +313,7 @@ Freeze::EvictorI::evict() // if (_persistenceMode == SaveUponEviction) { - _db->put(identity, servant, true); + _db->putServant(identity, servant, true); } if (_trace >= 2) diff --git a/cpp/src/slice2freeze/.depend b/cpp/src/slice2freeze/.depend index 4c8defd2f1e..8bb92ea6ca9 100644 --- a/cpp/src/slice2freeze/.depend +++ b/cpp/src/slice2freeze/.depend @@ -1,2 +1,2 @@ -Main.o: Main.cpp ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/Slice/OutputUtil.h -GenUtil.o: ../slice2cpp/GenUtil.cpp GenUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/Slice/OutputUtil.h +Main.o: Main.cpp ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/Slice/OutputUtil.h GenUtil.h +GenUtil.o: GenUtil.cpp GenUtil.h ../../include/Slice/Parser.h ../../include/IceUtil/Shared.h ../../include/IceUtil/Config.h ../../include/IceUtil/Handle.h ../../include/Slice/OutputUtil.h |