diff options
author | Matthew Newhook <matthew@zeroc.com> | 2002-03-11 13:49:51 +0000 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2002-03-11 13:49:51 +0000 |
commit | 826a7e85a43fb74c7678ae15fa565feced35b3c9 (patch) | |
tree | 3610204fd6c52ca7ade6ee036826ae7405cdfedc /java/demo/Freeze/phonebook/Server.java | |
parent | performance improvement (diff) | |
download | ice-826a7e85a43fb74c7678ae15fa565feced35b3c9.tar.bz2 ice-826a7e85a43fb74c7678ae15fa565feced35b3c9.tar.xz ice-826a7e85a43fb74c7678ae15fa565feced35b3c9.zip |
Freeze fixes. Initial version of PhoneBook server.
Diffstat (limited to 'java/demo/Freeze/phonebook/Server.java')
-rw-r--r-- | java/demo/Freeze/phonebook/Server.java | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/java/demo/Freeze/phonebook/Server.java b/java/demo/Freeze/phonebook/Server.java new file mode 100644 index 00000000000..19c407bdd87 --- /dev/null +++ b/java/demo/Freeze/phonebook/Server.java @@ -0,0 +1,115 @@ +// ********************************************************************** +// +// Copyright (c) 2001 +// MutableRealms, Inc. +// Huntsville, AL, USA +// +// All Rights Reserved +// +// ********************************************************************** + +class PhoneBookServer extends Freeze.Application +{ + PhoneBookServer(String dbEnvName) + { + super(dbEnvName); + } + + public int + runFreeze(String[] args, Freeze.DBEnvironment dbEnv) + { + Ice.Properties properties = communicator().getProperties(); + + Freeze.DB dbPhoneBook = dbEnv.openDB("phonebook", true); + Freeze.DB dbContacts = dbEnv.openDB("contacts", true); + + // + // Create an Evictor for contacts. + // + Freeze.Evictor evictor; + String value = properties.getProperty("PhoneBook.SaveAfterMutatingOperation"); + int v = 0; + if (value != null) + { + try + { + v = Integer.parseInt(value); + } + catch (NumberFormatException ex) + { + } + } + + + if(v != 0) + { + evictor = dbContacts.createEvictor(Freeze.EvictorPersistenceMode.SaveAfterMutatingOperation); + } + else + { + evictor = dbContacts.createEvictor(Freeze.EvictorPersistenceMode.SaveUponEviction); + } + + value = properties.getProperty("PhoneBook.EvictorSize"); + if (value != null) + { + try + { + v = Integer.parseInt(value); + } + catch (NumberFormatException ex) + { + } + } + + if(v != 0) + { + evictor.setSize(v); + } + + // + // Create an Object Adapter, use the Evictor as Servant Locator. + // + Ice.ObjectAdapter adapter = communicator().createObjectAdapter("PhoneBookAdapter"); + adapter.addServantLocator(evictor, "contact"); + + // + // Create the phonebook, and add it to the Object Adapter. + // + PhoneBookI phoneBook = new PhoneBookI(adapter, dbPhoneBook, evictor); + adapter.add(phoneBook, Ice.Util.stringToIdentity("phonebook")); + + // + // Create and install a factory and initializer for contacts. + // + Ice.ObjectFactory contactFactory = new ContactFactory(phoneBook, evictor); + Freeze.ServantInitializer contactInitializer = (Freeze.ServantInitializer)contactFactory; + communicator().addObjectFactory(contactFactory, "::Contact"); + evictor.installServantInitializer(contactInitializer); + + // + // Everything ok, let's go. + // + adapter.activate(); + + // + // TODO: + // + //shutdownOnInterrupt(); + communicator().waitForShutdown(); + + //ignoreInterrupt(); + + return 0; + } +} + +public class Server +{ + static public void + main(String[] args) + { + PhoneBookServer app = new PhoneBookServer("db"); + app.main("Server", args, "config"); + } +} |