diff options
author | Matthew Newhook <matthew@zeroc.com> | 2008-02-29 15:51:11 +0800 |
---|---|---|
committer | Matthew Newhook <matthew@zeroc.com> | 2008-02-29 16:39:54 +0800 |
commit | fb4132881dde7c9b135d713a06a3b64db1f706db (patch) | |
tree | 8a037e9d4cae7ed15360ab0878d14b32ac3150a4 /cpp | |
parent | fixing mode on php/config/Make.rules.mak (diff) | |
download | ice-fb4132881dde7c9b135d713a06a3b64db1f706db.tar.bz2 ice-fb4132881dde7c9b135d713a06a3b64db1f706db.tar.xz ice-fb4132881dde7c9b135d713a06a3b64db1f706db.zip |
Merge HA IceStorm branch.
- http://bugzilla/bugzilla/show_bug.cgi?id=2706
- http://bugzilla/bugzilla/show_bug.cgi?id=2705
Diffstat (limited to 'cpp')
180 files changed, 11982 insertions, 3482 deletions
diff --git a/cpp/CHANGES b/cpp/CHANGES index 9dc97a673e6..08c03a6b962 100644 --- a/cpp/CHANGES +++ b/cpp/CHANGES @@ -10,6 +10,63 @@ Changes since version 3.2.X (binary incompatible) explicitly removed from a deployed application or if the directory only contains files and directories created by the node. +- It is now possible to set IceBox service properties on the command + line. + +- Changes related to HA IceStorm + + - IceStorm now supports master/slave replication with automatic + failover. See the documentation below for full instructions on how + to configure the replication. + + - IceStorm now supports a fully transient version. Configure the + property <service-name>.Transient=1 to enable this. The transient + version does not support replication. + + - Subscribers are always persisted in the database whether or not + replication is enabled. + + - Added a new QoS to control when subscribers are removed: + retryCount. After retryCount unsuccessful event deliveries, the + subscriber is removed from the database. The default value of + retryCount is 0 (meaning upon any failure the subscriber is + immediately removed). A subscriber is always removed on a hard + failure (that is Ice::ObjectNotExistException or + Ice::NotRegisteredException). + + - The IceStorm database format has changed. Use the utility + icestormmigrate to migrate from the Ice 3.2.1 database format. + + - Added new demo demo/IceStorm/replication2 to demonstrate manually + configured IceStorm replication. + + - Added new "replica" command to icestormadmin to get debugging + information on the IceStorm replication. + + - The TopicManager object adapter now uses its own thread pool in + the replicated case. This ensures that ordering is guaranteed by + default even if a publisher publishes using a oneway proxy. + + - Upon shutdown it is now guaranteed that received events will be + delivered to all subscribers. + + - Added Topic::getNonReplicatedPublisher which always return a + non-replicated publisher proxy. + + - All IceStorm properties must be prefixed with the service + name. For example, if the following IceBox service configuration + is used: + + IceBox.Service.Foo=IceStormService,32:createIceStorm --Ice.Config=config.service + + then IceStorm configuration properties must use the + Foo. prefix. For example. Foo.Discard.Interval=10 would set a 10 + second discard interval. + + - Removed the icestormadmin slice checksum check. This avoids + warnings when using icestormadmin against an older version of + IceStorm. + - The use of sequences (and structs containing sequences) as valid dictionary keys has been deprecated and will be removed in a future release. diff --git a/cpp/allTests.py b/cpp/allTests.py index c8afb08143d..c56ef73657e 100755 --- a/cpp/allTests.py +++ b/cpp/allTests.py @@ -65,6 +65,9 @@ tests = [ "IceStorm/federation", "IceStorm/federation2", "IceStorm/stress", + "IceStorm/rep1", + "IceStorm/repgrid", + "IceStorm/repstress", "FreezeScript/dbmap", "FreezeScript/evictor", "IceGrid/simple", diff --git a/cpp/demo/IceStorm/Makefile b/cpp/demo/IceStorm/Makefile index a71c7b2235a..c2713280047 100644 --- a/cpp/demo/IceStorm/Makefile +++ b/cpp/demo/IceStorm/Makefile @@ -11,7 +11,7 @@ top_srcdir = ../.. include $(top_srcdir)/config/Make.rules -SUBDIRS = clock counter replicated +SUBDIRS = clock counter replicated replicated2 $(EVERYTHING):: @for subdir in $(SUBDIRS); \ diff --git a/cpp/demo/IceStorm/Makefile.mak b/cpp/demo/IceStorm/Makefile.mak index 3027da38dab..569a0a60a5c 100644 --- a/cpp/demo/IceStorm/Makefile.mak +++ b/cpp/demo/IceStorm/Makefile.mak @@ -11,7 +11,7 @@ top_srcdir = ..\.. !include $(top_srcdir)\config\Make.rules.mak -SUBDIRS = clock counter replicated +SUBDIRS = clock counter replicated replicated2 $(EVERYTHING):: @for %i in ( $(SUBDIRS) ) do \ diff --git a/cpp/demo/IceStorm/README b/cpp/demo/IceStorm/README index a0caf8cd50d..cb7b44a2837 100644 --- a/cpp/demo/IceStorm/README +++ b/cpp/demo/IceStorm/README @@ -12,3 +12,7 @@ Demos in this directory: - replicated Shows how to replicate IceStorm services using IceGrid. + +- replicated2 + + Shows how to replicate IceStorm services without using IceGrid. diff --git a/cpp/demo/IceStorm/clock/.depend b/cpp/demo/IceStorm/clock/.depend index d3383526e6a..b70ddcd8b28 100644 --- a/cpp/demo/IceStorm/clock/.depend +++ b/cpp/demo/IceStorm/clock/.depend @@ -1,4 +1,4 @@ -Clock$(OBJEXT): Clock.cpp Clock.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Clock$(OBJEXT): Clock.cpp Clock.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h Publisher$(OBJEXT): Publisher.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h Clock.cpp: Clock.ice diff --git a/cpp/demo/IceStorm/clock/Publisher.cpp b/cpp/demo/IceStorm/clock/Publisher.cpp index 7ac4258f88d..36fbf10b0f6 100644 --- a/cpp/demo/IceStorm/clock/Publisher.cpp +++ b/cpp/demo/IceStorm/clock/Publisher.cpp @@ -33,27 +33,21 @@ main(int argc, char* argv[]) void usage(const string& n) { - cerr << "Usage: " << n << " [--datagram|--twoway|--oneway] [topic]\n" << endl; + cerr << "Usage: " << n << " [--datagram|--twoway|--oneway] [topic]" << endl; } int Publisher::run(int argc, char* argv[]) { - enum Option { Datagram, Twoway, Oneway }; - Option option = Oneway; - + enum Option { None, Datagram, Twoway, Oneway }; + Option option = None; string topicName = "time"; + int i; - if(argc > 3) - { - cerr << appName() << ": too many arguments" << endl; - usage(appName()); - return EXIT_FAILURE; - } - - if(argc >= 2) + for(i = 1; i < argc; ++i) { - string optionString = argv[1]; + string optionString = argv[i]; + Option oldoption = option; if(optionString == "--datagram") { option = Datagram; @@ -66,35 +60,32 @@ Publisher::run(int argc, char* argv[]) { option = Oneway; } - else if(argc == 3) + else if(optionString.substr(0, 2) == "--") { - cerr << appName() << ": too many arguments" << endl; - usage(appName()); + usage(argv[0]); return EXIT_FAILURE; } else { - topicName = optionString; - } - - if(argc == 3) - { - topicName = argv[2]; + topicName = argv[i++]; + break; } - if(topicName[0] == '-') + if(oldoption != option && oldoption != None) { - cerr << appName() << ": invalid topic name" << endl; - usage(appName()); + usage(argv[0]); return EXIT_FAILURE; } } - - + if(i != argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( - communicator()->propertyToProxy("IceStorm.TopicManager.Proxy")); + communicator()->propertyToProxy("TopicManager.Proxy")); if(!manager) { cerr << appName() << ": invalid proxy" << endl; @@ -135,7 +126,7 @@ Publisher::run(int argc, char* argv[]) { // Do nothing. } - else if(option == Oneway) + else if(option == Oneway || option == None) { publisher = publisher->ice_oneway(); } diff --git a/cpp/demo/IceStorm/clock/README b/cpp/demo/IceStorm/clock/README index 1f5b44e76f1..f2276af203e 100644 --- a/cpp/demo/IceStorm/clock/README +++ b/cpp/demo/IceStorm/clock/README @@ -47,6 +47,19 @@ subscriber --batch This is an additional flag that forwards datagram and oneway events to the subscriber in batches. +subscriber --id <id> + + This is flag sets the unique for the given subscriber. If this + option is used it you should run the subscriber on a static port. + Use --Clock.Subscriber.Endpoints="tcp -p <x> -h <h>:udp -p <x> -h + <h>" + +subscriber --retryCount <count> + + This flag sets the retry count for a subscriber. This option should + be used in conjunction with the --id option. Setting retryCount + changes the default subscriber QoS to twoway. + For the publisher: publisher --oneway diff --git a/cpp/demo/IceStorm/clock/Subscriber.cpp b/cpp/demo/IceStorm/clock/Subscriber.cpp index 04ebe98a927..1d7faf18673 100644 --- a/cpp/demo/IceStorm/clock/Subscriber.cpp +++ b/cpp/demo/IceStorm/clock/Subscriber.cpp @@ -13,8 +13,6 @@ #include <Clock.h> -#include <map> - using namespace std; using namespace Demo; @@ -46,50 +44,30 @@ main(int argc, char* argv[]) void usage(const string& n) { - cerr << "Usage: " << n << " [--batch] [--datagram|--twoway|--ordered|--oneway] [topic]" << endl; + cerr << "Usage: " << n + << " [--batch] [--datagram|--twoway|--ordered|--oneway] [--retryCount count] [--id id] [topic]" << endl; } int Subscriber::run(int argc, char* argv[]) { - bool batch = false; - - enum Option { Datagram, Twoway, Oneway, Ordered}; - Option option = Oneway; + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); + args = communicator()->getProperties()->parseCommandLineOptions("Clock", args); + Ice::stringSeqToArgs(args, argc, argv); + bool batch = false; + enum Option { None, Datagram, Twoway, Oneway, Ordered}; + Option option = None; string topicName = "time"; + string id; + string retryCount; + int i; - if(argc > 4) - { - cerr << appName() << ": too many arguments" << endl; - usage(appName()); - return EXIT_FAILURE; - } - - if(argc >= 2) + for(i = 1; i < argc; ++i) { - int argIndex = 1; - string optionString = argv[argIndex]; - - if(optionString == "--batch") - { - batch = true; - if(argc >= 3) - { - argIndex++; - optionString = argv[argIndex]; - } - else - { - optionString = ""; - } - } - - if(optionString == "") - { - // done - } - else if(optionString == "--datagram") + string optionString = argv[i]; + Option oldoption = option; + if(optionString == "--datagram") { option = Datagram; } @@ -105,33 +83,75 @@ Subscriber::run(int argc, char* argv[]) { option = Ordered; } - else if(argIndex == argc - 2) + else if(optionString == "--batch") { - cerr << appName() << ": too many arguments" << endl; - usage(appName()); + batch = true; + } + else if(optionString == "--id") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + id = argv[i]; + } + else if(optionString == "--retryCount") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + retryCount = argv[i]; + } + else if(optionString.substr(0, 2) == "--") + { + usage(argv[0]); return EXIT_FAILURE; } else { - topicName = optionString; + topicName = argv[i++]; + break; } - argIndex++; - if(argIndex < argc) + if(oldoption != option && oldoption != None) { - topicName = argv[argIndex]; + usage(argv[0]); + return EXIT_FAILURE; } + } - if(topicName[0] == '-') + if(i != argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + + if(!retryCount.empty()) + { + if(option == None) { - cerr << appName() << ": invalid topic name" << endl; - usage(appName()); + option = Twoway; + } + else if(option != Twoway && option != Ordered) + { + cerr << argv[0] << ": retryCount requires a twoway proxy" << endl; return EXIT_FAILURE; } } + if(batch && (option == Twoway || option == Ordered)) + { + cerr << argv[0] << ": batch can only be set with oneway or datagram" << endl; + return EXIT_FAILURE; + } + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( - communicator()->propertyToProxy("IceStorm.TopicManager.Proxy")); + communicator()->propertyToProxy("TopicManager.Proxy")); if(!manager) { cerr << appName() << ": invalid proxy" << endl; @@ -159,52 +179,74 @@ Subscriber::run(int argc, char* argv[]) Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Clock.Subscriber"); // - // Add a Servant for the Ice Object. + // Add a servant for the Ice object. If --id is used the identity + // comes from the command line, otherwise a UUID is used. // + // id is not directly altered since it is used below to detect + // whether subscribeAndGetPublisher can raise AlreadySubscribed. + // + Ice::Identity subId; + subId.name = id; + if(subId.name.empty()) + { + subId.name = IceUtil::generateUUID(); + } + Ice::ObjectPrx subscriber = adapter->add(new ClockI, subId); + IceStorm::QoS qos; - Ice::ObjectPrx subscriber = adapter->addWithUUID(new ClockI); + if(!retryCount.empty()) + { + qos["retryCount"] = retryCount; + } + // // Set up the proxy. // - if(option == Datagram) { - subscriber = subscriber->ice_datagram(); + if(batch) + { + subscriber = subscriber->ice_batchDatagram(); + } + else + { + subscriber = subscriber->ice_datagram(); + } } else if(option == Twoway) { // Do nothing to the subscriber proxy. Its already twoway. - } else if(option == Ordered) { - qos["reliability"] = "ordered"; // Do nothing to the subscriber proxy. Its already twoway. - - } - else if(option == Oneway) - { - subscriber = subscriber->ice_oneway(); + qos["reliability"] = "ordered"; } - - if(batch) + else if(option == Oneway || option == None) { - if(option == Twoway || option == Ordered) + if(batch) { - cerr << appName() << ": batch can only be set with oneway or datagram" << endl; - return EXIT_FAILURE; - } - if(option == Datagram) - { - subscriber = subscriber->ice_batchDatagram(); + subscriber = subscriber->ice_batchOneway(); } else { - subscriber = subscriber->ice_batchOneway(); + subscriber = subscriber->ice_oneway(); } } - topic->subscribeAndGetPublisher(qos, subscriber); + try + { + topic->subscribeAndGetPublisher(qos, subscriber); + } + catch(const IceStorm::AlreadySubscribed&) + { + // If we're manually setting the subscriber id ignore. + if(id.empty()) + { + throw; + } + cout << "reactivating persistent subscriber" << endl; + } adapter->activate(); shutdownOnInterrupt(); diff --git a/cpp/demo/IceStorm/clock/config.pub b/cpp/demo/IceStorm/clock/config.pub index c6de9cb84b1..e7d497f8f52 100644 --- a/cpp/demo/IceStorm/clock/config.pub +++ b/cpp/demo/IceStorm/clock/config.pub @@ -1,7 +1,7 @@ # # This property is used by the clients to connect to IceStorm. # -IceStorm.TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 +TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 # # Network Tracing diff --git a/cpp/demo/IceStorm/clock/config.service b/cpp/demo/IceStorm/clock/config.service index b9930aa64d4..e87c8a3b23e 100644 --- a/cpp/demo/IceStorm/clock/config.service +++ b/cpp/demo/IceStorm/clock/config.service @@ -1,14 +1,12 @@ # -# This property is used by the administrative client to connect to IceStorm. -# -IceStorm.TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 - -# # This property defines the endpoints on which the IceStorm # TopicManager listens. # IceStorm.TopicManager.Endpoints=default -p 10000 +IceStorm.Publish.ThreadPool.Size=2 +IceStorm.Publish.ThreadPool.SizeWarn=0 + # # The IceStorm service instance name. # diff --git a/cpp/demo/IceStorm/clock/config.sub b/cpp/demo/IceStorm/clock/config.sub index ad2ac555de8..cefadaeb6e5 100644 --- a/cpp/demo/IceStorm/clock/config.sub +++ b/cpp/demo/IceStorm/clock/config.sub @@ -7,7 +7,7 @@ Clock.Subscriber.Endpoints=tcp:udp # # This property is used by the clients to connect to IceStorm. # -IceStorm.TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 +TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 # # Network Tracing diff --git a/cpp/demo/IceStorm/counter/.depend b/cpp/demo/IceStorm/counter/.depend index 46a869c6112..b9262487438 100644 --- a/cpp/demo/IceStorm/counter/.depend +++ b/cpp/demo/IceStorm/counter/.depend @@ -1,7 +1,7 @@ -Counter$(OBJEXT): Counter.cpp Counter.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Client$(OBJEXT): Client.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterObserverI.h Counter.h -CounterObserverI$(OBJEXT): CounterObserverI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterObserverI.h Counter.h -Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h CounterI.h Counter.h -CounterI$(OBJEXT): CounterI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Counter.h +Counter$(OBJEXT): Counter.cpp Counter.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Client$(OBJEXT): Client.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterObserverI.h Counter.h +CounterObserverI$(OBJEXT): CounterObserverI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterObserverI.h Counter.h +Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h CounterI.h Counter.h +CounterI$(OBJEXT): CounterI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h CounterI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Counter.h Counter.cpp: Counter.ice Counter.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/demo/IceStorm/counter/Server.cpp b/cpp/demo/IceStorm/counter/Server.cpp index cdf5996e313..b58d55e2ba4 100644 --- a/cpp/demo/IceStorm/counter/Server.cpp +++ b/cpp/demo/IceStorm/counter/Server.cpp @@ -42,15 +42,8 @@ Server::run(int argc, char* argv[]) Ice::PropertiesPtr properties = communicator()->getProperties(); - const string proxyProperty = "IceStorm.TopicManager.Proxy"; - string proxy = properties->getProperty(proxyProperty); - if(proxy.empty()) - { - cerr << appName() << ": property `" << proxyProperty << "' not set" << endl; - return EXIT_FAILURE; - } - - IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(communicator()->stringToProxy(proxy)); + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( + communicator()->propertyToProxy("TopicManager.Proxy")); if(!manager) { cerr << appName() << ": invalid proxy" << endl; diff --git a/cpp/demo/IceStorm/counter/config.server b/cpp/demo/IceStorm/counter/config.server index be119f2b1da..52b117f3d2f 100644 --- a/cpp/demo/IceStorm/counter/config.server +++ b/cpp/demo/IceStorm/counter/config.server @@ -6,7 +6,7 @@ Counter.Endpoints=tcp -p 12000 # # This property is used by the counter server to connect with IceStorm. # -IceStorm.TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 +TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 # # Network Tracing diff --git a/cpp/demo/IceStorm/counter/config.service b/cpp/demo/IceStorm/counter/config.service index f6deda26be5..d27cb93ce31 100644 --- a/cpp/demo/IceStorm/counter/config.service +++ b/cpp/demo/IceStorm/counter/config.service @@ -1,9 +1,4 @@ # -# This property is used by the administrative client to connect to IceStorm. -# -IceStorm.TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 - -# # This property defines the endpoints on which the IceStorm # TopicManager listens. # diff --git a/cpp/demo/IceStorm/replicated/.depend b/cpp/demo/IceStorm/replicated/.depend index 3d3bef5952a..b70ddcd8b28 100644 --- a/cpp/demo/IceStorm/replicated/.depend +++ b/cpp/demo/IceStorm/replicated/.depend @@ -1,5 +1,5 @@ -Clock$(OBJEXT): Clock.cpp Clock.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Publisher$(OBJEXT): Publisher.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h Clock.h -Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h Clock.h +Clock$(OBJEXT): Clock.cpp Clock.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h Clock.cpp: Clock.ice Clock.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/demo/IceStorm/replicated/Publisher.cpp b/cpp/demo/IceStorm/replicated/Publisher.cpp index 44e0f3fd1ec..6fb1acf9474 100644 --- a/cpp/demo/IceStorm/replicated/Publisher.cpp +++ b/cpp/demo/IceStorm/replicated/Publisher.cpp @@ -10,7 +10,6 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> -#include <IceGrid/Query.h> #include <Clock.h> @@ -31,31 +30,79 @@ main(int argc, char* argv[]) return app.main(argc, argv, "config.pub"); } +void +usage(const string& n) +{ + cerr << "Usage: " << n << " [--datagram|--twoway|--oneway] [topic]" << endl; +} + int Publisher::run(int argc, char* argv[]) { - if(argc > 2) + enum Option { None, Datagram, Twoway, Oneway }; + Option option = None; + string topicName = "time"; + int i; + + for(i = 1; i < argc; ++i) { - cerr << appName() << ": too many arguments" << endl; - return EXIT_FAILURE; - } + string optionString = argv[i]; + Option oldoption = option; + if(optionString == "--datagram") + { + option = Datagram; + } + else if(optionString == "--twoway") + { + option = Twoway; + } + else if(optionString == "--oneway") + { + option = Oneway; + } + else if(optionString.substr(0, 2) == "--") + { + usage(argv[0]); + return EXIT_FAILURE; + } + else + { + topicName = argv[i++]; + break; + } - Ice::PropertiesPtr properties = communicator()->getProperties(); + if(oldoption != option && oldoption != None) + { + usage(argv[0]); + return EXIT_FAILURE; + } + } - IceStorm::TopicManagerPrx manager = - IceStorm::TopicManagerPrx::checkedCast(communicator()->stringToProxy("DemoIceStorm/TopicManager")); - if(manager == 0) + if(i != argc) { - cerr << appName() << ": no topic manager found, make sure application was deployed." << endl; + usage(argv[0]); return EXIT_FAILURE; } - string topicName = "time"; - if(argc != 1) + IceStorm::TopicManagerPrx manager; + try { - topicName = argv[1]; + manager = IceStorm::TopicManagerPrx::checkedCast(communicator()->stringToProxy("DemoIceStorm/TopicManager")); + if(!manager) + { + cerr << appName() << ": invalid proxy" << endl; + return EXIT_FAILURE; + } + } + catch(const Ice::NotRegisteredException&) + { + cerr << appName() << ": no topic manager found, make sure application was deployed." << endl; + return EXIT_FAILURE; } + // + // Retrieve the topic. + // IceStorm::TopicPrx topic; try { @@ -63,16 +110,38 @@ Publisher::run(int argc, char* argv[]) } catch(const IceStorm::NoSuchTopic&) { - cerr << appName() << ": topics not created yet, run subscriber." << endl; - return EXIT_FAILURE; + try + { + topic = manager->create(topicName); + } + catch(const IceStorm::TopicExists&) + { + cerr << appName() << ": temporary failure. try again." << endl; + return EXIT_FAILURE; + } } // - // Get the topic's publisher object, and configure a Clock proxy - // with per-request load balancing. + // Get the topic's publisher object, and create a Clock proxy with + // the mode specified as an argument of this application. // - ClockPrx clock = ClockPrx::uncheckedCast(topic->getPublisher()->ice_oneway()->ice_connectionCached(false)); + Ice::ObjectPrx publisher = topic->getPublisher(); + if(option == Datagram) + { + publisher = publisher->ice_datagram(); + } + else if(option == Twoway) + { + // Do nothing. + } + else if(option == Oneway || option == None) + { + publisher = publisher->ice_oneway(); + } + + ClockPrx clock = ClockPrx::uncheckedCast(publisher); + cout << "publishing tick events. Press ^C to terminate the application." << endl; try { while(true) diff --git a/cpp/demo/IceStorm/replicated/Subscriber.cpp b/cpp/demo/IceStorm/replicated/Subscriber.cpp index 7a0848c76a4..9754af70bcd 100644 --- a/cpp/demo/IceStorm/replicated/Subscriber.cpp +++ b/cpp/demo/IceStorm/replicated/Subscriber.cpp @@ -10,128 +10,12 @@ #include <IceUtil/IceUtil.h> #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> -#include <IceGrid/Query.h> #include <Clock.h> -#include <set> - using namespace std; using namespace Demo; -class InstanceCheckThread : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex> -{ -public: - - InstanceCheckThread(const IceGrid::QueryPrx& query, const string& topicName, const Ice::ObjectPrx& clock, - const Ice::ObjectPrx& managerReplica, const set<IceStorm::TopicManagerPrx>& managers, - const Ice::ObjectPrx& topicReplica, const set<IceStorm::TopicPrx>& topics) : - _query(query), - _topicName(topicName), - _clock(clock), - _managerReplica(managerReplica), - _managers(managers), - _topicReplica(topicReplica), - _topics(topics), - _timeout(IceUtil::Time::seconds(10)), - _terminated(false) - { - } - - virtual void - run() - { - Lock sync(*this); - while(!_terminated) - { - timedWait(_timeout); - if(!_terminated) - { - try - { - // - // Check if there are any new topic managers in the replicas list. - // - Ice::ObjectProxySeq managers = _query->findAllReplicas(_managerReplica); - Ice::ObjectProxySeq::const_iterator p; - for(p = managers.begin(); p != managers.end(); ++p) - { - IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::uncheckedCast(*p); - if(_managers.find(manager) == _managers.end()) - { - // - // Create the topic on the new topic manager if it does - // not already exist. - // - try - { - manager->retrieve(_topicName); - } - catch(const IceStorm::NoSuchTopic&) - { - manager->create(_topicName); - } - - // - // Since the topic proxy returned by the retrieval/creation - // is a replicated proxy we cannot use it to subscribe to the - // new instance. Instead we have to retrive all the topics and - // find the new one. - // - Ice::ObjectProxySeq topics = _query->findAllReplicas(_topicReplica); - Ice::ObjectProxySeq::const_iterator q; - for(q = topics.begin(); q != topics.end(); ++q) - { - IceStorm::TopicPrx topic = IceStorm::TopicPrx::uncheckedCast(*q);; - if(_topics.find(topic) == _topics.end()) - { - try - { - topic->subscribeAndGetPublisher(IceStorm::QoS(), _clock); - } - catch(const IceStorm::AlreadySubscribed&) - { - // Ignore - } - _topics.insert(topic); - _managers.insert(manager); - break; - } - } - } - } - } - catch(const Ice::Exception& ex) - { - cerr << "warning: exception while checking for new IceStorm instances: " << ex << endl; - } - } - } - } - - void - terminate() - { - Lock sync(*this); - _terminated = true; - notify(); - } - -private: - - const IceGrid::QueryPrx _query; - const string _topicName; - const Ice::ObjectPrx _clock; - const Ice::ObjectPrx _managerReplica; - set<IceStorm::TopicManagerPrx> _managers; - const Ice::ObjectPrx _topicReplica; - set<IceStorm::TopicPrx> _topics; - const IceUtil::Time _timeout; - bool _terminated; -}; - -typedef IceUtil::Handle<InstanceCheckThread> InstanceCheckThreadPtr; - class ClockI : public Clock { public: @@ -157,109 +41,226 @@ main(int argc, char* argv[]) return app.main(argc, argv, "config.sub"); } +void +usage(const string& n) +{ + cerr << "Usage: " << n + << " [--batch] [--datagram|--twoway|--ordered|--oneway] [--retryCount count] [--id id] [topic]" << endl; +} + int Subscriber::run(int argc, char* argv[]) { - if(argc > 2) + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); + args = communicator()->getProperties()->parseCommandLineOptions("Clock", args); + Ice::stringSeqToArgs(args, argc, argv); + + bool batch = false; + enum Option { None, Datagram, Twoway, Oneway, Ordered}; + Option option = None; + string topicName = "time"; + string id; + string retryCount; + int i; + + for(i = 1; i < argc; ++i) { - cerr << appName() << ": too many arguments" << endl; - return EXIT_FAILURE; - } + string optionString = argv[i]; + Option oldoption = option; + if(optionString == "--datagram") + { + option = Datagram; + } + else if(optionString == "--twoway") + { + option = Twoway; + } + else if(optionString == "--oneway") + { + option = Oneway; + } + else if(optionString == "--ordered") + { + option = Ordered; + } + else if(optionString == "--batch") + { + batch = true; + } + else if(optionString == "--id") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + id = argv[i]; + } + else if(optionString == "--retryCount") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + retryCount = argv[i]; + } + else if(optionString.substr(0, 2) == "--") + { + usage(argv[0]); + return EXIT_FAILURE; + } + else + { + topicName = argv[i++]; + break; + } - Ice::PropertiesPtr properties = communicator()->getProperties(); + if(oldoption != option && oldoption != None) + { + usage(argv[0]); + return EXIT_FAILURE; + } + } - IceGrid::QueryPrx query = IceGrid::QueryPrx::uncheckedCast(communicator()->stringToProxy("DemoIceGrid/Query")); - Ice::ObjectPrx managerReplica = communicator()->stringToProxy("DemoIceStorm/TopicManager"); - Ice::ObjectProxySeq objSeq = query->findAllReplicas(managerReplica); - if(objSeq.size() == 0) + if(i != argc) { - cerr << appName() << ": no topic managers found, make sure application was deployed." << endl; + usage(argv[0]); return EXIT_FAILURE; } - string topicName = "time"; - if(argc != 1) + if(!retryCount.empty()) { - topicName = argv[1]; + if(option == None) + { + option = Twoway; + } + else if(option != Twoway && option != Ordered) + { + cerr << argv[0] << ": retryCount requires a twoway proxy" << endl; + return EXIT_FAILURE; + } } - // - // Create the servant to receive the events. - // - Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Clock.Subscriber"); - - // - // We want to use oneway batch messages. - // - Ice::ObjectPrx clock = adapter->addWithUUID(new ClockI)->ice_batchOneway(); + if(batch && (option == Twoway || option == Ordered)) + { + cerr << argv[0] << ": batch can only be set with oneway or datagram" << endl; + return EXIT_FAILURE; + } - // - // Get all the topic managers and create the topic if necessary. - // - IceStorm::TopicPrx topicReplica; - set<IceStorm::TopicManagerPrx> managers; - Ice::ObjectProxySeq::const_iterator p; - for(p = objSeq.begin(); p != objSeq.end(); ++p) + IceStorm::TopicManagerPrx manager; + try + { + manager = IceStorm::TopicManagerPrx::checkedCast(communicator()->stringToProxy("DemoIceStorm/TopicManager")); + if(!manager) + { + cerr << appName() << ": invalid proxy" << endl; + return EXIT_FAILURE; + } + } + catch(const Ice::NotRegisteredException&) { - IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(*p); - managers.insert(manager); + cerr << appName() << ": no topic manager found, make sure application was deployed." << endl; + return EXIT_FAILURE; + } + IceStorm::TopicPrx topic; + try + { + topic = manager->retrieve(topicName); + } + catch(const IceStorm::NoSuchTopic&) + { try { - topicReplica = manager->retrieve(topicName); + topic = manager->create(topicName); } - catch(const IceStorm::NoSuchTopic&) + catch(const IceStorm::TopicExists&) { - try - { - topicReplica = manager->create(topicName); - } - catch(const IceStorm::TopicExists&) - { - cerr << appName() << ": temporary failure. try again." << endl; - return EXIT_FAILURE; - } + cerr << appName() << ": temporary failure. try again." << endl; + return EXIT_FAILURE; } } + Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Clock.Subscriber"); + // - // Get all the topics and subscribe. We can't use the proxies returned by - // the topic creation above because they are repicated proxies, and not - // specific proxies for each individual topic. + // Add a servant for the Ice object. If --id is used the identity + // comes from the command line, otherwise a UUID is used. // - IceStorm::TopicPrx topic; - objSeq = query->findAllReplicas(topicReplica); - set<IceStorm::TopicPrx> topics; - for(p = objSeq.begin(); p != objSeq.end(); ++p) + // id is not directly altered since it is used below to detect + // whether subscribeAndGetPublisher can raise AlreadySubscribed. + // + Ice::Identity subId; + subId.name = id; + if(subId.name.empty()) { - topic = IceStorm::TopicPrx::uncheckedCast(*p); - topic->subscribeAndGetPublisher(IceStorm::QoS(), clock); - topics.insert(topic); + subId.name = IceUtil::generateUUID(); + } + Ice::ObjectPrx subscriber = adapter->add(new ClockI, subId); + + IceStorm::QoS qos; + if(!retryCount.empty()) + { + qos["retryCount"] = retryCount; } // - // Create and start thread to check for new IceStorm instances coming online. + // Set up the proxy. // - InstanceCheckThreadPtr instanceCheck = - new InstanceCheckThread(query, topicName, clock, managerReplica, managers, topicReplica, topics); - instanceCheck->start(); + if(option == Datagram) + { + if(batch) + { + subscriber = subscriber->ice_batchDatagram(); + } + else + { + subscriber = subscriber->ice_datagram(); + } + } + else if(option == Twoway) + { + // Do nothing to the subscriber proxy. Its already twoway. + } + else if(option == Ordered) + { + // Do nothing to the subscriber proxy. Its already twoway. + qos["reliability"] = "ordered"; + } + else if(option == Oneway || option == None) + { + if(batch) + { + subscriber = subscriber->ice_batchOneway(); + } + else + { + subscriber = subscriber->ice_oneway(); + } + } + try + { + topic->subscribeAndGetPublisher(qos, subscriber); + } + catch(const IceStorm::AlreadySubscribed&) + { + // If we're manually setting the subscriber id ignore. + if(id.empty()) + { + throw; + } + cout << "reactivating persistent subscriber" << endl; + } adapter->activate(); + shutdownOnInterrupt(); communicator()->waitForShutdown(); - instanceCheck->terminate(); - instanceCheck->getThreadControl().join(); - - // - // Unsubscribe from all topics. - // - objSeq = query->findAllReplicas(topicReplica); - for(p = objSeq.begin(); p != objSeq.end(); ++p) - { - topic = IceStorm::TopicPrx::uncheckedCast(*p); - topic->unsubscribe(clock); - } + topic->unsubscribe(subscriber); return EXIT_SUCCESS; } diff --git a/cpp/demo/IceStorm/replicated/application.xml b/cpp/demo/IceStorm/replicated/application.xml index 65f10019719..df06c34af41 100644 --- a/cpp/demo/IceStorm/replicated/application.xml +++ b/cpp/demo/IceStorm/replicated/application.xml @@ -6,8 +6,10 @@ <parameter name="index"/> <parameter name="topic-manager-endpoints" default="default"/> <parameter name="publish-endpoints" default="default"/> + <parameter name="node-endpoints" default="default"/> + <parameter name="instance-name"/> - <icebox id="DemoIceStorm-${index}" exe="icebox" activation="on-demand"> + <icebox id="${instance-name}-${index}" exe="icebox" activation="on-demand"> <service name="IceStorm" entry="IceStormService,33:createIceStorm"> @@ -15,17 +17,22 @@ <adapter name="${service}.TopicManager" endpoints="${topic-manager-endpoints}" - replica-group="IceStormTopicManagerReplicaGroup"/> + replica-group="${instance-name}-TopicManagerReplicaGroup"/> - <adapter name="${service}.Publish" - endpoints="${publish-endpoints}" - replica-group="IceStormPublishReplicaGroup"/> + <adapter name="${service}.Publish" + endpoints="${publish-endpoints}" + replica-group="${instance-name}-PublishReplicaGroup"/> + + <adapter name="${service}.Node" + endpoints="${node-endpoints}"/> <properties> - <property name="${service}.InstanceName" value="DemoIceStorm"/> + <property name="${service}.InstanceName" value="${instance-name}"/> <property name="${service}.Trace.TopicManager" value="2"/> <property name="${service}.Trace.Topic" value="1"/> <property name="${service}.Trace.Subscriber" value="1"/> + <property name="${service}.Trace.Election" value="1"/> + <property name="${service}.NodeId" value="${index}"/> </properties> </service> @@ -33,17 +40,17 @@ </icebox> </server-template> - <replica-group id="IceStormPublishReplicaGroup"> + <replica-group id="DemoIceStorm-PublishReplicaGroup"> </replica-group> - <replica-group id="IceStormTopicManagerReplicaGroup"> + <replica-group id="DemoIceStorm-TopicManagerReplicaGroup"> <object identity="DemoIceStorm/TopicManager" type="::IceStorm::TopicManager"/> </replica-group> <node name="localhost"> - <server-instance template="IceStorm" index="1"/> - <server-instance template="IceStorm" index="2"/> - <server-instance template="IceStorm" index="3"/> + <server-instance template="IceStorm" index="1" instance-name="DemoIceStorm"/> + <server-instance template="IceStorm" index="2" instance-name="DemoIceStorm"/> + <server-instance template="IceStorm" index="3" instance-name="DemoIceStorm"/> </node> </application> diff --git a/cpp/demo/IceStorm/replicated2/.depend b/cpp/demo/IceStorm/replicated2/.depend new file mode 100644 index 00000000000..b70ddcd8b28 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/.depend @@ -0,0 +1,5 @@ +Clock$(OBJEXT): Clock.cpp Clock.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Clock.h +Clock.cpp: Clock.ice +Clock.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/demo/IceStorm/replicated2/.gitignore b/cpp/demo/IceStorm/replicated2/.gitignore new file mode 100644 index 00000000000..f6c88071874 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/.gitignore @@ -0,0 +1,10 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +Clock.cpp +Clock.h +db1/* +db2/* +db3/* diff --git a/cpp/demo/IceStorm/replicated2/Clock.ice b/cpp/demo/IceStorm/replicated2/Clock.ice new file mode 100644 index 00000000000..ca19916a636 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/Clock.ice @@ -0,0 +1,23 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef CLOCK_ICE +#define CLOCK_ICE + +module Demo +{ + +interface Clock +{ + void tick(string time); +}; + +}; + +#endif diff --git a/cpp/demo/IceStorm/replicated2/Makefile b/cpp/demo/IceStorm/replicated2/Makefile new file mode 100644 index 00000000000..fbc9daa2564 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/Makefile @@ -0,0 +1,47 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../../.. + +PUBLISHER = publisher +SUBSCRIBER = subscriber + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) + +OBJS = Clock.o + +POBJS = Publisher.o + +SOBJS = Subscriber.o + +SRCS = $(OBJS:.o=.cpp) \ + $(POBJS:.o=.cpp) \ + $(SOBJS:.o=.cpp) + +SLICE_SRCS = Clock.ice + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := -I. $(CPPFLAGS) +LIBS := -lIceStorm $(LIBS) + +$(PUBLISHER): $(OBJS) $(POBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(POBJS) $(LIBS) + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS) + +clean:: + -rm -f db1/* + -rm -f db2/* + -rm -f db3/* + +include .depend diff --git a/cpp/demo/IceStorm/replicated2/Makefile.mak b/cpp/demo/IceStorm/replicated2/Makefile.mak new file mode 100644 index 00000000000..a9e74475207 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/Makefile.mak @@ -0,0 +1,54 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\..\.. + +PUBLISHER = publisher.exe +SUBSCRIBER = subscriber.exe + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) + +OBJS = Clock.obj + +POBJS = Publisher.obj + +SOBJS = Subscriber.obj + +SRCS = $(OBJS:.obj=.cpp) \ + $(POBJS:.obj=.cpp) \ + $(SOBJS:.obj=.cpp) + + +!include $(top_srcdir)/config/Make.rules.mak + +CPPFLAGS = -I. $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN +LIBS = $(libdir)\icestorm$(LIBSUFFIX).lib $(LIBS) + +!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" +PPDBFLAGS = /pdb:$(PUBLISHER:.exe=.pdb) +SPDBFLAGS = /pdb:$(SUBSCRIBER:.exe=.pdb) +!endif + +$(PUBLISHER): $(OBJS) $(POBJS) + $(LINK) $(LD_EXEFLAGS) $(PPDBFLAGS) $(SETARGV) $(OBJS) $(POBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(OBJS) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +clean:: + -del /q Clock.cpp Clock.h + +clean:: + -for %f in (db\*) do if not %f == db\.gitignore del /q %f + +!include .depend diff --git a/cpp/demo/IceStorm/replicated2/Publisher.cpp b/cpp/demo/IceStorm/replicated2/Publisher.cpp new file mode 100644 index 00000000000..36fbf10b0f6 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/Publisher.cpp @@ -0,0 +1,151 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/IceUtil.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> + +#include <Clock.h> + +using namespace std; +using namespace Demo; + +class Publisher : public Ice::Application +{ +public: + + virtual int run(int, char*[]); +}; + +int +main(int argc, char* argv[]) +{ + Publisher app; + return app.main(argc, argv, "config.pub"); +} + +void +usage(const string& n) +{ + cerr << "Usage: " << n << " [--datagram|--twoway|--oneway] [topic]" << endl; +} + +int +Publisher::run(int argc, char* argv[]) +{ + enum Option { None, Datagram, Twoway, Oneway }; + Option option = None; + string topicName = "time"; + int i; + + for(i = 1; i < argc; ++i) + { + string optionString = argv[i]; + Option oldoption = option; + if(optionString == "--datagram") + { + option = Datagram; + } + else if(optionString == "--twoway") + { + option = Twoway; + } + else if(optionString == "--oneway") + { + option = Oneway; + } + else if(optionString.substr(0, 2) == "--") + { + usage(argv[0]); + return EXIT_FAILURE; + } + else + { + topicName = argv[i++]; + break; + } + + if(oldoption != option && oldoption != None) + { + usage(argv[0]); + return EXIT_FAILURE; + } + } + + if(i != argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( + communicator()->propertyToProxy("TopicManager.Proxy")); + if(!manager) + { + cerr << appName() << ": invalid proxy" << endl; + return EXIT_FAILURE; + } + + // + // Retrieve the topic. + // + IceStorm::TopicPrx topic; + try + { + topic = manager->retrieve(topicName); + } + catch(const IceStorm::NoSuchTopic&) + { + try + { + topic = manager->create(topicName); + } + catch(const IceStorm::TopicExists&) + { + cerr << appName() << ": temporary failure. try again." << endl; + return EXIT_FAILURE; + } + } + + // + // Get the topic's publisher object, and create a Clock proxy with + // the mode specified as an argument of this application. + // + Ice::ObjectPrx publisher = topic->getPublisher(); + if(option == Datagram) + { + publisher = publisher->ice_datagram(); + } + else if(option == Twoway) + { + // Do nothing. + } + else if(option == Oneway || option == None) + { + publisher = publisher->ice_oneway(); + } + + ClockPrx clock = ClockPrx::uncheckedCast(publisher); + + cout << "publishing tick events. Press ^C to terminate the application." << endl; + try + { + while(true) + { + clock->tick(IceUtil::Time::now().toDateTime()); + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1)); + } + } + catch(const Ice::CommunicatorDestroyedException&) + { + // Ignore + } + + return EXIT_SUCCESS; +} diff --git a/cpp/demo/IceStorm/replicated2/README b/cpp/demo/IceStorm/replicated2/README new file mode 100644 index 00000000000..8d1470061eb --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/README @@ -0,0 +1,25 @@ +This demo demonstrates how to configure and deploy IceStorm in a +replicated fashion without using IceGrid. + +To run the demo, start the three IceStorm replicas. In three separate +windows: + +$ icebox --Ice.Config=config.ib1 +$ icebox --Ice.Config=config.ib2 +$ icebox --Ice.Config=config.ib3 + +And then in a separate window: + +$ subscriber + +In another window: + +$ publisher + +While the publisher continues to run, "tick" messages should be +displayed in the subscriber window. + +The subscribers and publishers do not have to do anything special to +take advantage of the replication. The subscriber and publisher are +identical to the publisher and subscriber in the clock directory. See +../clock/README for instructions on running them. diff --git a/cpp/demo/IceStorm/replicated2/Subscriber.cpp b/cpp/demo/IceStorm/replicated2/Subscriber.cpp new file mode 100644 index 00000000000..1d7faf18673 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/Subscriber.cpp @@ -0,0 +1,258 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/IceUtil.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> + +#include <Clock.h> + +using namespace std; +using namespace Demo; + +class ClockI : public Clock +{ +public: + + virtual void + tick(const string& time, const Ice::Current&) + { + cout << time << endl; + } +}; + +class Subscriber : public Ice::Application +{ +public: + + virtual int run(int, char*[]); +}; + +int +main(int argc, char* argv[]) +{ + Subscriber app; + return app.main(argc, argv, "config.sub"); +} + +void +usage(const string& n) +{ + cerr << "Usage: " << n + << " [--batch] [--datagram|--twoway|--ordered|--oneway] [--retryCount count] [--id id] [topic]" << endl; +} + +int +Subscriber::run(int argc, char* argv[]) +{ + Ice::StringSeq args = Ice::argsToStringSeq(argc, argv); + args = communicator()->getProperties()->parseCommandLineOptions("Clock", args); + Ice::stringSeqToArgs(args, argc, argv); + + bool batch = false; + enum Option { None, Datagram, Twoway, Oneway, Ordered}; + Option option = None; + string topicName = "time"; + string id; + string retryCount; + int i; + + for(i = 1; i < argc; ++i) + { + string optionString = argv[i]; + Option oldoption = option; + if(optionString == "--datagram") + { + option = Datagram; + } + else if(optionString == "--twoway") + { + option = Twoway; + } + else if(optionString == "--oneway") + { + option = Oneway; + } + else if(optionString == "--ordered") + { + option = Ordered; + } + else if(optionString == "--batch") + { + batch = true; + } + else if(optionString == "--id") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + id = argv[i]; + } + else if(optionString == "--retryCount") + { + ++i; + if(i >= argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + retryCount = argv[i]; + } + else if(optionString.substr(0, 2) == "--") + { + usage(argv[0]); + return EXIT_FAILURE; + } + else + { + topicName = argv[i++]; + break; + } + + if(oldoption != option && oldoption != None) + { + usage(argv[0]); + return EXIT_FAILURE; + } + } + + if(i != argc) + { + usage(argv[0]); + return EXIT_FAILURE; + } + + if(!retryCount.empty()) + { + if(option == None) + { + option = Twoway; + } + else if(option != Twoway && option != Ordered) + { + cerr << argv[0] << ": retryCount requires a twoway proxy" << endl; + return EXIT_FAILURE; + } + } + + if(batch && (option == Twoway || option == Ordered)) + { + cerr << argv[0] << ": batch can only be set with oneway or datagram" << endl; + return EXIT_FAILURE; + } + + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( + communicator()->propertyToProxy("TopicManager.Proxy")); + if(!manager) + { + cerr << appName() << ": invalid proxy" << endl; + return EXIT_FAILURE; + } + + IceStorm::TopicPrx topic; + try + { + topic = manager->retrieve(topicName); + } + catch(const IceStorm::NoSuchTopic&) + { + try + { + topic = manager->create(topicName); + } + catch(const IceStorm::TopicExists&) + { + cerr << appName() << ": temporary failure. try again." << endl; + return EXIT_FAILURE; + } + } + + Ice::ObjectAdapterPtr adapter = communicator()->createObjectAdapter("Clock.Subscriber"); + + // + // Add a servant for the Ice object. If --id is used the identity + // comes from the command line, otherwise a UUID is used. + // + // id is not directly altered since it is used below to detect + // whether subscribeAndGetPublisher can raise AlreadySubscribed. + // + Ice::Identity subId; + subId.name = id; + if(subId.name.empty()) + { + subId.name = IceUtil::generateUUID(); + } + Ice::ObjectPrx subscriber = adapter->add(new ClockI, subId); + + IceStorm::QoS qos; + if(!retryCount.empty()) + { + qos["retryCount"] = retryCount; + } + + // + // Set up the proxy. + // + if(option == Datagram) + { + if(batch) + { + subscriber = subscriber->ice_batchDatagram(); + } + else + { + subscriber = subscriber->ice_datagram(); + } + } + else if(option == Twoway) + { + // Do nothing to the subscriber proxy. Its already twoway. + } + else if(option == Ordered) + { + // Do nothing to the subscriber proxy. Its already twoway. + qos["reliability"] = "ordered"; + } + else if(option == Oneway || option == None) + { + if(batch) + { + subscriber = subscriber->ice_batchOneway(); + } + else + { + subscriber = subscriber->ice_oneway(); + } + } + + try + { + topic->subscribeAndGetPublisher(qos, subscriber); + } + catch(const IceStorm::AlreadySubscribed&) + { + // If we're manually setting the subscriber id ignore. + if(id.empty()) + { + throw; + } + cout << "reactivating persistent subscriber" << endl; + } + adapter->activate(); + + shutdownOnInterrupt(); + communicator()->waitForShutdown(); + + topic->unsubscribe(subscriber); + + return EXIT_SUCCESS; +} diff --git a/cpp/demo/IceStorm/replicated2/config.ib1 b/cpp/demo/IceStorm/replicated2/config.ib1 new file mode 100644 index 00000000000..461a826bb4f --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.ib1 @@ -0,0 +1,32 @@ +# +# The IceBox server endpoint configuration +# +IceBox.ServiceManager.Endpoints=tcp -p 9990 + +# +# The IceStorm service +# +IceBox.Service.IceStorm=IceStormService,33:createIceStorm --Ice.Config=config.s1 + +# +# Warn about connection exceptions +# +#Ice.Warn.Connections=1 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# Protocol Tracing +# +# 0 = no protocol tracing +# 1 = trace protocol messages +# +#Ice.Trace.Protocol=1 diff --git a/cpp/demo/IceStorm/replicated2/config.ib2 b/cpp/demo/IceStorm/replicated2/config.ib2 new file mode 100644 index 00000000000..54a0f3ad796 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.ib2 @@ -0,0 +1,32 @@ +# +# The IceBox server endpoint configuration +# +IceBox.ServiceManager.Endpoints=tcp -p 9991 + +# +# The IceStorm service +# +IceBox.Service.IceStorm=IceStormService,33:createIceStorm --Ice.Config=config.s2 + +# +# Warn about connection exceptions +# +#Ice.Warn.Connections=1 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# Protocol Tracing +# +# 0 = no protocol tracing +# 1 = trace protocol messages +# +#Ice.Trace.Protocol=1 diff --git a/cpp/demo/IceStorm/replicated2/config.ib3 b/cpp/demo/IceStorm/replicated2/config.ib3 new file mode 100644 index 00000000000..c12a6328483 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.ib3 @@ -0,0 +1,32 @@ +# +# The IceBox server endpoint configuration +# +IceBox.ServiceManager.Endpoints=tcp -p 9993 + +# +# The IceStorm service +# +IceBox.Service.IceStorm=IceStormService,33:createIceStorm --Ice.Config=config.s3 + +# +# Warn about connection exceptions +# +#Ice.Warn.Connections=1 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# Protocol Tracing +# +# 0 = no protocol tracing +# 1 = trace protocol messages +# +#Ice.Trace.Protocol=1 diff --git a/cpp/demo/IceStorm/replicated2/config.pub b/cpp/demo/IceStorm/replicated2/config.pub new file mode 100644 index 00000000000..e7d497f8f52 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.pub @@ -0,0 +1,14 @@ +# +# This property is used by the clients to connect to IceStorm. +# +TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 diff --git a/cpp/demo/IceStorm/replicated2/config.s1 b/cpp/demo/IceStorm/replicated2/config.s1 new file mode 100644 index 00000000000..9bc2a1bca73 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.s1 @@ -0,0 +1,112 @@ +# This property configures the node id. It must be a positive integer. +IceStorm.NodeId=0 + +# This property configures the replicated node endpoints. +IceStorm.Node.Endpoints=default -p 13000 + +# This set of properties configures the replicated node proxies. Each +# property is of the form +# IceStorm.Nodes.<id>=<instance-name>/node<id>:<endpoints> +# +# All nodes must be included in this list. +IceStorm.Nodes.0=DemoIceStorm/node0:default -p 13000 +IceStorm.Nodes.1=DemoIceStorm/node1:default -p 13010 +IceStorm.Nodes.2=DemoIceStorm/node2:default -p 13020 + +# Node tracing properties. +IceStorm.Trace.Election=1 +IceStorm.Trace.Replication=1 + +# The interval in seconds at which a slave checks the status of the +# coordinator. +#IceStorm.Election.MasterTimeout=2 + +# The interval in seconds at which a coordinator attempts to form +# larger groups of replicas. +#IceStorm.Election.ElectionTimeout=2 + +# The interval in seconds that a replica waits for replies to an +# invitation to form a larger group. Lower priority wait for intervals +# inversely proporitional to the maximum priority. +#IceStorm.Election.ResponseTimeout=2 + +# +# This property defines the endpoints on which the IceStorm +# TopicManager listens. +# +IceStorm.TopicManager.Endpoints=default -p 10000 + +# This property defines the endpoints contained in proxies to topics. +IceStorm.ReplicatedTopicManagerEndpoints=default -p 10000:default -p 10010:default -p 10020 + +# +# The IceStorm service instance name. +# +IceStorm.InstanceName=DemoIceStorm + +# +# This property defines the endpoints on which the topic +# publisher objects listen. If you want to federate +# IceStorm instances this must run on a fixed port (or use +# IceGrid). +# +IceStorm.Publish.Endpoints=default -p 10001:udp -p 10001 + +# This property defines the endpoints contained in publisher proxies. +IceStorm.ReplicatedPublishEndpoints=default -p 10001:default -p 10011:default -p 10021:udp -p 10001:udp -p 10011:udp -p 10021 + +# +# TopicManager Tracing +# +# 0 = no tracing +# 1 = trace topic creation, subscription, unsubscription +# 2 = like 1, but with more detailed subscription information +# +IceStorm.Trace.TopicManager=2 + +# +# Topic Tracing +# +# 0 = no tracing +# 1 = trace unsubscription diagnostics +# +IceStorm.Trace.Topic=1 + +# +# Subscriber Tracing +# +# 0 = no tracing +# 1 = subscriber diagnostics (subscription, unsubscription, event +# propagation failures) +# +IceStorm.Trace.Subscriber=1 + +# +# Flush Tracing (for batch mode transfer flushing) +# +# 0 = no tracing +# 1 = trace activity of flusher thread +# +IceStorm.Trace.Flush=1 + +# +# Amount of time in milliseconds between flushes for batch mode +# transfer. The minimum allowable value is 100ms. +# +IceStorm.Flush.Timeout=2000 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# This property defines the home directory of the Freeze +# database environment for the IceStorm service. +# +Freeze.DbEnv.IceStorm.DbHome=db1 diff --git a/cpp/demo/IceStorm/replicated2/config.s2 b/cpp/demo/IceStorm/replicated2/config.s2 new file mode 100644 index 00000000000..b785c32c96f --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.s2 @@ -0,0 +1,112 @@ +# This property configures the node id. It must be a positive integer. +IceStorm.NodeId=1 + +# This property configures the replicated node endpoints. +IceStorm.Node.Endpoints=default -p 13010 + +# This set of properties configures the replicated node proxies. Each +# property is of the form +# IceStorm.Nodes.<id>=<instance-name>/node<id>:<endpoints> +# +# All nodes must be included in this list. +IceStorm.Nodes.0=DemoIceStorm/node0:default -p 13000 +IceStorm.Nodes.1=DemoIceStorm/node1:default -p 13010 +IceStorm.Nodes.2=DemoIceStorm/node2:default -p 13020 + +# Node tracing properties. +IceStorm.Trace.Election=1 +IceStorm.Trace.Replication=1 + +# The interval in seconds at which a slave checks the status of the +# coordinator. +#IceStorm.Election.MasterTimeout=2 + +# The interval in seconds at which a coordinator attempts to form +# larger groups of replicas. +#IceStorm.Election.ElectionTimeout=2 + +# The interval in seconds that a replica waits for replies to an +# invitation to form a larger group. Lower priority wait for intervals +# inversely proporitional to the maximum priority. +#IceStorm.Election.ResponseTimeout=2 + +# +# This property defines the endpoints on which the IceStorm +# TopicManager listens. +# +IceStorm.TopicManager.Endpoints=default -p 10010 + +# This property defines the endpoints contained in proxies to topics. +IceStorm.ReplicatedTopicManagerEndpoints=default -p 10000:default -p 10010:default -p 10020 + +# +# The IceStorm service instance name. +# +IceStorm.InstanceName=DemoIceStorm + +# +# This property defines the endpoints on which the topic +# publisher objects listen. If you want to federate +# IceStorm instances this must run on a fixed port (or use +# IceGrid). +# +IceStorm.Publish.Endpoints=default -p 10011:udp -p 10011 + +# This property defines the endpoints contained in publisher proxies. +IceStorm.ReplicatedPublishEndpoints=default -p 10001:default -p 10011:default -p 10021:udp -p 10001:udp -p 10011:udp -p 10021 + +# +# TopicManager Tracing +# +# 0 = no tracing +# 1 = trace topic creation, subscription, unsubscription +# 2 = like 1, but with more detailed subscription information +# +IceStorm.Trace.TopicManager=2 + +# +# Topic Tracing +# +# 0 = no tracing +# 1 = trace unsubscription diagnostics +# +IceStorm.Trace.Topic=1 + +# +# Subscriber Tracing +# +# 0 = no tracing +# 1 = subscriber diagnostics (subscription, unsubscription, event +# propagation failures) +# +IceStorm.Trace.Subscriber=1 + +# +# Flush Tracing (for batch mode transfer flushing) +# +# 0 = no tracing +# 1 = trace activity of flusher thread +# +IceStorm.Trace.Flush=1 + +# +# Amount of time in milliseconds between flushes for batch mode +# transfer. The minimum allowable value is 100ms. +# +IceStorm.Flush.Timeout=2000 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# This property defines the home directory of the Freeze +# database environment for the IceStorm service. +# +Freeze.DbEnv.IceStorm.DbHome=db2 diff --git a/cpp/demo/IceStorm/replicated2/config.s3 b/cpp/demo/IceStorm/replicated2/config.s3 new file mode 100644 index 00000000000..74f6e6b8908 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.s3 @@ -0,0 +1,112 @@ +# This property configures the node id. It must be a positive integer. +IceStorm.NodeId=2 + +# This property configures the replicated node endpoints. +IceStorm.Node.Endpoints=default -p 13020 + +# This set of properties configures the replicated node proxies. Each +# property is of the form +# IceStorm.Nodes.<id>=<instance-name>/node<id>:<endpoints> +# +# All nodes must be included in this list. +IceStorm.Nodes.0=DemoIceStorm/node0:default -p 13000 +IceStorm.Nodes.1=DemoIceStorm/node1:default -p 13010 +IceStorm.Nodes.2=DemoIceStorm/node2:default -p 13020 + +# Node tracing properties. +IceStorm.Trace.Election=1 +IceStorm.Trace.Replication=1 + +# The interval in seconds at which a slave checks the status of the +# coordinator. +#IceStorm.Election.MasterTimeout=2 + +# The interval in seconds at which a coordinator attempts to form +# larger groups of replicas. +#IceStorm.Election.ElectionTimeout=2 + +# The interval in seconds that a replica waits for replies to an +# invitation to form a larger group. Lower priority wait for intervals +# inversely proporitional to the maximum priority. +#IceStorm.Election.ResponseTimeout=2 + +# +# This property defines the endpoints on which the IceStorm +# TopicManager listens. +# +IceStorm.TopicManager.Endpoints=default -p 10020 + +# This property defines the endpoints contained in proxies to topics. +IceStorm.ReplicatedTopicManagerEndpoints=default -p 10000:default -p 10010:default -p 10020 + +# +# The IceStorm service instance name. +# +IceStorm.InstanceName=DemoIceStorm + +# +# This property defines the endpoints on which the topic +# publisher objects listen. If you want to federate +# IceStorm instances this must run on a fixed port (or use +# IceGrid). +# +IceStorm.Publish.Endpoints=default -p 10021:udp -p 10021 + +# This property defines the endpoints contained in publisher proxies. +IceStorm.ReplicatedPublishEndpoints=default -p 10001:default -p 10011:default -p 10021:udp -p 10001:udp -p 10011:udp -p 10021 + +# +# TopicManager Tracing +# +# 0 = no tracing +# 1 = trace topic creation, subscription, unsubscription +# 2 = like 1, but with more detailed subscription information +# +IceStorm.Trace.TopicManager=2 + +# +# Topic Tracing +# +# 0 = no tracing +# 1 = trace unsubscription diagnostics +# +IceStorm.Trace.Topic=1 + +# +# Subscriber Tracing +# +# 0 = no tracing +# 1 = subscriber diagnostics (subscription, unsubscription, event +# propagation failures) +# +IceStorm.Trace.Subscriber=1 + +# +# Flush Tracing (for batch mode transfer flushing) +# +# 0 = no tracing +# 1 = trace activity of flusher thread +# +IceStorm.Trace.Flush=1 + +# +# Amount of time in milliseconds between flushes for batch mode +# transfer. The minimum allowable value is 100ms. +# +IceStorm.Flush.Timeout=2000 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 + +# +# This property defines the home directory of the Freeze +# database environment for the IceStorm service. +# +Freeze.DbEnv.IceStorm.DbHome=db3 diff --git a/cpp/demo/IceStorm/replicated2/config.sub b/cpp/demo/IceStorm/replicated2/config.sub new file mode 100644 index 00000000000..24a7d8d73e5 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/config.sub @@ -0,0 +1,20 @@ +# +# This property is used to configure the endpoints of the clock +# subscriber adapter. +# +Clock.Subscriber.Endpoints=tcp:udp + +# +# This property is used by the clients to connect to IceStorm. +# +TopicManager.Proxy=DemoIceStorm/TopicManager:default -p 10000:default -p 10010:default -p 10020 + +# +# Network Tracing +# +# 0 = no network tracing +# 1 = trace connection establishment and closure +# 2 = like 1, but more detailed +# 3 = like 2, but also trace data transfer +# +#Ice.Trace.Network=1 diff --git a/cpp/demo/IceStorm/replicated2/db1/.gitignore b/cpp/demo/IceStorm/replicated2/db1/.gitignore new file mode 100644 index 00000000000..005f76775fa --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/db1/.gitignore @@ -0,0 +1,8 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +Clock.cpp +Clock.h +db/* diff --git a/cpp/demo/IceStorm/replicated2/db2/.gitignore b/cpp/demo/IceStorm/replicated2/db2/.gitignore new file mode 100644 index 00000000000..005f76775fa --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/db2/.gitignore @@ -0,0 +1,8 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +Clock.cpp +Clock.h +db/* diff --git a/cpp/demo/IceStorm/replicated2/db3/.gitignore b/cpp/demo/IceStorm/replicated2/db3/.gitignore new file mode 100644 index 00000000000..005f76775fa --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/db3/.gitignore @@ -0,0 +1,8 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +Clock.cpp +Clock.h +db/* diff --git a/cpp/demo/IceStorm/replicated2/expect.py b/cpp/demo/IceStorm/replicated2/expect.py new file mode 100755 index 00000000000..b303c340957 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/expect.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import pexpect, sys, os + +try: + import demoscript +except ImportError: + for toplevel in [".", "..", "../..", "../../..", "../../../.."]: + toplevel = os.path.normpath(toplevel) + if os.path.exists(os.path.join(toplevel, "demoscript")): + break + else: + raise "can't find toplevel directory!" + sys.path.append(os.path.join(toplevel)) + import demoscript + +import demoscript.Util +import demoscript.IceStorm.clock + +demoscript.IceStorm.clock.run('./subscriber', './publisher') diff --git a/cpp/demo/IceStorm/replicated2/replicated2C.dsp b/cpp/demo/IceStorm/replicated2/replicated2C.dsp new file mode 100644 index 00000000000..b382c9c79e2 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/replicated2C.dsp @@ -0,0 +1,157 @@ +# Microsoft Developer Studio Project File - Name="replicated2C" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=replicated2C - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "replicated2C.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "replicated2C.mak" CFG="replicated2C - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "replicated2C - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "replicated2C - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "replicated2C - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "NDEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /c
+# SUBTRACT CPP /Fr /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 IceStorm.lib IceGrid.lib Ice.lib IceUtil.lib setargv.obj /nologo /subsystem:console /pdb:none /machine:I386 /out:"publisher.exe" /libpath:"../../../lib" /FIXED:no
+# SUBTRACT LINK32 /debug
+
+!ELSEIF "$(CFG)" == "replicated2C - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "_DEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /GZ /c
+# SUBTRACT CPP /Fr /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 IceStormd.lib IceGridd.lib Iced.lib IceUtild.lib setargv.obj /nologo /subsystem:console /debug /machine:I386 /out:"publisher.exe" /pdbtype:sept /libpath:"../../../lib" /FIXED:no
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "replicated2C - Win32 Release"
+# Name "replicated2C - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Clock.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Publisher.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Clock.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Clock.ice
+
+!IF "$(CFG)" == "replicated2C - Win32 Release"
+
+USERDEP__CLOCK="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\slice.lib"
+# Begin Custom Build
+InputPath=.\Clock.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Clock.ice
+
+"Clock.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Clock.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "replicated2C - Win32 Debug"
+
+USERDEP__CLOCK="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\sliced.lib"
+# Begin Custom Build
+InputPath=.\Clock.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Clock.ice
+
+"Clock.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Clock.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\README
+# End Source File
+# End Target
+# End Project
diff --git a/cpp/demo/IceStorm/replicated2/replicated2S.dsp b/cpp/demo/IceStorm/replicated2/replicated2S.dsp new file mode 100644 index 00000000000..cee078aef18 --- /dev/null +++ b/cpp/demo/IceStorm/replicated2/replicated2S.dsp @@ -0,0 +1,157 @@ +# Microsoft Developer Studio Project File - Name="replicated2S" - Package Owner=<4>
+# Microsoft Developer Studio Generated Build File, Format Version 6.00
+# ** DO NOT EDIT **
+
+# TARGTYPE "Win32 (x86) Console Application" 0x0103
+
+CFG=replicated2S - Win32 Debug
+!MESSAGE This is not a valid makefile. To build this project using NMAKE,
+!MESSAGE use the Export Makefile command and run
+!MESSAGE
+!MESSAGE NMAKE /f "replicated2S.mak".
+!MESSAGE
+!MESSAGE You can specify a configuration when running NMAKE
+!MESSAGE by defining the macro CFG on the command line. For example:
+!MESSAGE
+!MESSAGE NMAKE /f "replicated2S.mak" CFG="replicated2S - Win32 Debug"
+!MESSAGE
+!MESSAGE Possible choices for configuration are:
+!MESSAGE
+!MESSAGE "replicated2S - Win32 Release" (based on "Win32 (x86) Console Application")
+!MESSAGE "replicated2S - Win32 Debug" (based on "Win32 (x86) Console Application")
+!MESSAGE
+
+# Begin Project
+# PROP AllowPerConfigDependencies 0
+# PROP Scc_ProjName ""
+# PROP Scc_LocalPath ""
+CPP=cl.exe
+RSC=rc.exe
+
+!IF "$(CFG)" == "replicated2S - Win32 Release"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 0
+# PROP BASE Output_Dir "Release"
+# PROP BASE Intermediate_Dir "Release"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 0
+# PROP Output_Dir "Release"
+# PROP Intermediate_Dir "Release"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
+# ADD CPP /nologo /MD /W3 /WX /GR /GX /O2 /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "NDEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /c
+# SUBTRACT CPP /Fr /YX
+# ADD BASE RSC /l 0x409 /d "NDEBUG"
+# ADD RSC /l 0x409 /d "NDEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
+# ADD LINK32 IceStorm.lib IceGrid.lib Ice.lib IceUtil.lib setargv.obj /nologo /subsystem:console /pdb:none /machine:I386 /out:"subscriber.exe" /libpath:"../../../lib" /FIXED:no
+# SUBTRACT LINK32 /debug
+
+!ELSEIF "$(CFG)" == "replicated2S - Win32 Debug"
+
+# PROP BASE Use_MFC 0
+# PROP BASE Use_Debug_Libraries 1
+# PROP BASE Output_Dir "Debug"
+# PROP BASE Intermediate_Dir "Debug"
+# PROP BASE Target_Dir ""
+# PROP Use_MFC 0
+# PROP Use_Debug_Libraries 1
+# PROP Output_Dir "Debug"
+# PROP Intermediate_Dir "Debug"
+# PROP Ignore_Export_Lib 0
+# PROP Target_Dir ""
+# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /WX /Gm /GR /GX /Zi /Od /I "." /I "../../../include" /I "../../../include/stlport" /D "_CONSOLE" /D "_DEBUG" /D "WIN32_LEAN_AND_MEAN" /FD /GZ /c
+# SUBTRACT CPP /Fr /YX
+# ADD BASE RSC /l 0x409 /d "_DEBUG"
+# ADD RSC /l 0x409 /d "_DEBUG"
+BSC32=bscmake.exe
+# ADD BASE BSC32 /nologo
+# ADD BSC32 /nologo
+LINK32=link.exe
+# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
+# ADD LINK32 IceStormd.lib IceGridd.lib Iced.lib IceUtild.lib setargv.obj /nologo /subsystem:console /debug /machine:I386 /out:"subscriber.exe" /pdbtype:sept /libpath:"../../../lib" /FIXED:no
+# SUBTRACT LINK32 /pdb:none
+
+!ENDIF
+
+# Begin Target
+
+# Name "replicated2S - Win32 Release"
+# Name "replicated2S - Win32 Debug"
+# Begin Group "Source Files"
+
+# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+# Begin Source File
+
+SOURCE=.\Clock.cpp
+# End Source File
+# Begin Source File
+
+SOURCE=.\Subscriber.cpp
+# End Source File
+# End Group
+# Begin Group "Header Files"
+
+# PROP Default_Filter "h;hpp;hxx;hm;inl"
+# Begin Source File
+
+SOURCE=.\Clock.h
+# End Source File
+# End Group
+# Begin Group "Resource Files"
+
+# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+# Begin Source File
+
+SOURCE=.\Clock.ice
+
+!IF "$(CFG)" == "replicated2S - Win32 Release"
+
+USERDEP__CLOCK="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\slice.lib"
+# Begin Custom Build
+InputPath=.\Clock.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Clock.ice
+
+"Clock.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Clock.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ELSEIF "$(CFG)" == "replicated2S - Win32 Debug"
+
+USERDEP__CLOCK="..\..\..\bin\slice2cpp.exe" "..\..\..\lib\sliced.lib"
+# Begin Custom Build
+InputPath=.\Clock.ice
+
+BuildCmds= \
+ ..\..\..\bin\slice2cpp.exe Clock.ice
+
+"Clock.h" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+
+"Clock.cpp" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)"
+ $(BuildCmds)
+# End Custom Build
+
+!ENDIF
+
+# End Source File
+# End Group
+# Begin Source File
+
+SOURCE=.\README
+# End Source File
+# End Target
+# End Project
diff --git a/cpp/src/Ice/PluginManagerI.cpp b/cpp/src/Ice/PluginManagerI.cpp index 0b594787db7..9dc03d892fe 100644 --- a/cpp/src/Ice/PluginManagerI.cpp +++ b/cpp/src/Ice/PluginManagerI.cpp @@ -167,8 +167,7 @@ Ice::PluginManagerI::loadPlugins(int& argc, char* argv[]) { string name = *p; - map<string, PluginPtr>::iterator q = _plugins.find(name); - if(q != _plugins.end()) + if(_plugins.find(name) != _plugins.end()) { PluginInitializationException ex(__FILE__, __LINE__); ex.reason = "plugin `" + name + "' already loaded"; diff --git a/cpp/src/Ice/PropertyNames.cpp b/cpp/src/Ice/PropertyNames.cpp index fd83fc542b9..26d2e0655f8 100644 --- a/cpp/src/Ice/PropertyNames.cpp +++ b/cpp/src/Ice/PropertyNames.cpp @@ -7,7 +7,7 @@ // // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Feb 27 12:48:24 2008 +// Generated by makeprops.py from file config/PropertyNames.xml, Fri Feb 29 15:15:38 2008 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -475,65 +475,6 @@ const IceInternal::PropertyArray IceInternal::PropertyNames::IceStormAdminProps(IceStormAdminPropsData, sizeof(IceStormAdminPropsData)/sizeof(IceStormAdminPropsData[0])); -const IceInternal::Property IceStormPropsData[] = -{ - IceInternal::Property("IceStorm.Flush.Timeout", false, 0), - IceInternal::Property("IceStorm.InstanceName", false, 0), - IceInternal::Property("IceStorm.Publish.AdapterId", false, 0), - IceInternal::Property("IceStorm.Publish.Endpoints", false, 0), - IceInternal::Property("IceStorm.Publish.Locator", false, 0), - IceInternal::Property("IceStorm.Publish.PublishedEndpoints", false, 0), - IceInternal::Property("IceStorm.Publish.RegisterProcess", true, 0), - IceInternal::Property("IceStorm.Publish.ReplicaGroupId", false, 0), - IceInternal::Property("IceStorm.Publish.Router", false, 0), - IceInternal::Property("IceStorm.Publish.ProxyOptions", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPerConnection", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPerConnection.StackSize", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPool.Size", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPool.SizeMax", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPool.SizeWarn", false, 0), - IceInternal::Property("IceStorm.Publish.ThreadPool.StackSize", false, 0), - IceInternal::Property("IceStorm.TopicManager.AdapterId", false, 0), - IceInternal::Property("IceStorm.TopicManager.Endpoints", false, 0), - IceInternal::Property("IceStorm.TopicManager.Locator", false, 0), - IceInternal::Property("IceStorm.TopicManager.PublishedEndpoints", false, 0), - IceInternal::Property("IceStorm.TopicManager.RegisterProcess", true, 0), - IceInternal::Property("IceStorm.TopicManager.ReplicaGroupId", false, 0), - IceInternal::Property("IceStorm.TopicManager.Router", false, 0), - IceInternal::Property("IceStorm.TopicManager.ProxyOptions", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPerConnection", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPerConnection.StackSize", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPool.Size", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPool.SizeMax", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPool.SizeWarn", false, 0), - IceInternal::Property("IceStorm.TopicManager.ThreadPool.StackSize", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.EndpointSelection", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.ConnectionCached", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.PreferSecure", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.LocatorCacheTimeout", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.Locator", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.Router", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.CollocationOptimization", true, "IceStorm.TopicManager.Proxy.CollocationOptimized"), - IceInternal::Property("IceStorm.TopicManager.Proxy.CollocationOptimized", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy.ThreadPerConnection", false, 0), - IceInternal::Property("IceStorm.TopicManager.Proxy", false, 0), - IceInternal::Property("IceStorm.SubscriberPool.Size", false, 0), - IceInternal::Property("IceStorm.SubscriberPool.SizeMax", false, 0), - IceInternal::Property("IceStorm.SubscriberPool.SizeWarn", false, 0), - IceInternal::Property("IceStorm.SubscriberPool.StackSize", false, 0), - IceInternal::Property("IceStorm.Trace.Flush", false, 0), - IceInternal::Property("IceStorm.Trace.Subscriber", false, 0), - IceInternal::Property("IceStorm.Trace.SubscriberPool", false, 0), - IceInternal::Property("IceStorm.Trace.Topic", false, 0), - IceInternal::Property("IceStorm.Trace.TopicManager", false, 0), - IceInternal::Property("IceStorm.Send.Timeout", false, 0), - IceInternal::Property("IceStorm.Discard.Interval", false, 0), -}; - -const IceInternal::PropertyArray - IceInternal::PropertyNames::IceStormProps(IceStormPropsData, - sizeof(IceStormPropsData)/sizeof(IceStormPropsData[0])); - const IceInternal::Property Glacier2PropsData[] = { IceInternal::Property("Glacier2.AddSSLContext", false, 0), @@ -698,7 +639,6 @@ const IceInternal::PropertyArray IceInternal::PropertyNames::validProps[] = IcePatch2Props, IceSSLProps, IceStormAdminProps, - IceStormProps, Glacier2Props, FreezeProps, IceInternal::PropertyArray(0,0) @@ -715,7 +655,6 @@ const char* IceInternal::PropertyNames::clPropNames[] = "IcePatch2", "IceSSL", "IceStormAdmin", - "IceStorm", "Glacier2", "Freeze", 0 diff --git a/cpp/src/Ice/PropertyNames.h b/cpp/src/Ice/PropertyNames.h index 0455602fa97..e6b3826c029 100644 --- a/cpp/src/Ice/PropertyNames.h +++ b/cpp/src/Ice/PropertyNames.h @@ -7,7 +7,7 @@ // // ********************************************************************** // -// Generated by makeprops.py from file ../config/PropertyNames.xml, Wed Feb 27 12:48:24 2008 +// Generated by makeprops.py from file config/PropertyNames.xml, Fri Feb 29 15:15:38 2008 // IMPORTANT: Do not edit this file -- any edits made here will be lost! @@ -65,7 +65,6 @@ public: static const PropertyArray IcePatch2Props; static const PropertyArray IceSSLProps; static const PropertyArray IceStormAdminProps; - static const PropertyArray IceStormProps; static const PropertyArray Glacier2Props; static const PropertyArray FreezeProps; diff --git a/cpp/src/IceBox/Service.cpp b/cpp/src/IceBox/Service.cpp index a66254e128d..83f2bda2bfe 100644 --- a/cpp/src/IceBox/Service.cpp +++ b/cpp/src/IceBox/Service.cpp @@ -45,14 +45,34 @@ IceBox::IceBoxService::IceBoxService() bool IceBox::IceBoxService::start(int argc, char* argv[]) { + // Run through the command line arguments removing all the service + // properties. + vector<string> args = Ice::argsToStringSeq(argc, argv); + PropertiesPtr properties = communicator()->getProperties(); + const string prefix = "IceBox.Service."; + PropertyDict services = properties->getPropertiesForPrefix(prefix); + for(PropertyDict::const_iterator p = services.begin(); p != services.end(); ++p) + { + string name = p->first.substr(prefix.size()); + StringSeq::iterator q = args.begin(); + while(q != args.end()) + { + if(q->find("--" + name + ".") == 0) + { + q = args.erase(q); + continue; + } + ++q; + } + } + IceUtilInternal::Options opts; opts.addOpt("h", "help"); opts.addOpt("v", "version"); - vector<string> args; try { - args = opts.parse(argc, (const char**)argv); + args = opts.parse(args); } catch(const IceUtilInternal::BadOptException& e) { diff --git a/cpp/src/IceBox/ServiceManagerI.cpp b/cpp/src/IceBox/ServiceManagerI.cpp index 8da4c93852f..0d8710fb6cf 100644 --- a/cpp/src/IceBox/ServiceManagerI.cpp +++ b/cpp/src/IceBox/ServiceManagerI.cpp @@ -81,8 +81,8 @@ private: IceBox::ServiceManagerI::ServiceManagerI(CommunicatorPtr communicator, int& argc, char* argv[]) : _communicator(communicator), - _traceServiceObserver(0), - _pendingStatusChanges(false) + _pendingStatusChanges(false), + _traceServiceObserver(0) { _logger = _communicator->getLogger(); @@ -118,13 +118,13 @@ IceBox::ServiceManagerI::startService(const string& name, const Current&) vector<ServiceInfo>::iterator p; for(p = _services.begin(); p != _services.end(); ++p) { - if((*p).name == name) + if(p->name == name) { - if((*p).status != Stopped) + if(p->status != Stopped) { throw AlreadyStartedException(); } - (*p).status = Starting; + p->status = Starting; info = *p; break; } @@ -161,16 +161,16 @@ IceBox::ServiceManagerI::startService(const string& name, const Current&) vector<ServiceInfo>::iterator p; for(p = _services.begin(); p != _services.end(); ++p) { - if((*p).name == name) + if(p->name == name) { if(started) { - (*p).status = Started; + p->status = Started; observers = _observers; } else { - (*p).status = Stopped; + p->status = Stopped; } break; } @@ -201,13 +201,13 @@ IceBox::ServiceManagerI::stopService(const string& name, const Current&) vector<ServiceInfo>::iterator p; for(p = _services.begin(); p != _services.end(); ++p) { - if((*p).name == name) + if(p->name == name) { - if((*p).status != Started) + if(p->status != Started) { throw AlreadyStoppedException(); } - (*p).status = Stopping; + p->status = Stopping; info = *p; break; } @@ -244,16 +244,16 @@ IceBox::ServiceManagerI::stopService(const string& name, const Current&) vector<ServiceInfo>::iterator p; for(p = _services.begin(); p != _services.end(); ++p) { - if((*p).name == name) + if(p->name == name) { if(stopped) { - (*p).status = Stopped; + p->status = Stopped; observers = _observers; } else { - (*p).status = Started; + p->status = Started; } break; } diff --git a/cpp/src/IceGrid/.depend b/cpp/src/IceGrid/.depend index 9a0f2665bb4..a54b02d328c 100644 --- a/cpp/src/IceGrid/.depend +++ b/cpp/src/IceGrid/.depend @@ -1,87 +1,57 @@ -Admin$(OBJEXT): Admin.cpp $(includedir)/IceGrid/Admin.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Locator$(OBJEXT): Locator.cpp $(includedir)/IceGrid/Locator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Query$(OBJEXT): Query.cpp $(includedir)/IceGrid/Query.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Exception$(OBJEXT): Exception.cpp $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Descriptor$(OBJEXT): Descriptor.cpp $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -FileParser$(OBJEXT): FileParser.cpp $(includedir)/IceGrid/FileParser.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Observer$(OBJEXT): Observer.cpp $(includedir)/IceGrid/Observer.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Session$(OBJEXT): Session.cpp $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Registry$(OBJEXT): Registry.cpp $(includedir)/IceGrid/Registry.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -UserAccountMapper$(OBJEXT): UserAccountMapper.cpp $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Grammar$(OBJEXT): Grammar.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h -Scanner$(OBJEXT): Scanner.cpp $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/Grammar.h -Parser$(OBJEXT): Parser.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceBox/IceBox.h -DescriptorParser$(OBJEXT): DescriptorParser.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorBuilder.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h -DescriptorBuilder$(OBJEXT): DescriptorBuilder.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/DescriptorBuilder.h $(includedir)/Ice/Logger.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h -DescriptorHelper$(OBJEXT): DescriptorHelper.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h -FileParserI$(OBJEXT): FileParserI.cpp ../IceGrid/FileParserI.h $(includedir)/IceGrid/FileParser.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h $(includedir)/IceXML/Parser.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h -Util$(OBJEXT): Util.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/IceUtil/Random.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h -Internal$(OBJEXT): Internal.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Client$(OBJEXT): Client.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/FileParserI.h $(includedir)/IceGrid/FileParser.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h $(includedir)/Glacier2/Router.h -Internal$(OBJEXT): Internal.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -DescriptorParser$(OBJEXT): DescriptorParser.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorBuilder.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h -DescriptorBuilder$(OBJEXT): DescriptorBuilder.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/DescriptorBuilder.h $(includedir)/Ice/Logger.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h -TraceLevels$(OBJEXT): TraceLevels.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/TraceLevels.h -FileCache$(OBJEXT): FileCache.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/FileCache.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h -PlatformInfo$(OBJEXT): PlatformInfo.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/PlatformInfo.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IcePatch2/Util.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IcePatch2/FileInfo.h -NodeI$(OBJEXT): NodeI.cpp $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IcePatch2/OS.h $(includedir)/IcePatch2/ClientUtil.h $(includedir)/IcePatch2/FileServer.h ../IceGrid/NodeI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/Activator.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/ServerAdapterI.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h -NodeServerAdminRouter$(OBJEXT): NodeServerAdminRouter.cpp ../IceGrid/NodeServerAdminRouter.h ../IceGrid/NodeI.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IcePatch2/FileServer.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h -ServerI$(OBJEXT): ServerI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/ServerAdapterI.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h ../IcePatch2/OS.h -ServerAdapterI$(OBJEXT): ServerAdapterI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerAdapterI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h -Activator$(OBJEXT): Activator.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/ArgVector.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h -NodeSessionManager$(OBJEXT): NodeSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h -AdminCallbackRouter$(OBJEXT): AdminCallbackRouter.cpp ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h -RegistryI$(OBJEXT): RegistryI.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/Network.h $(includedir)/Ice/ProtocolPluginFacade.h $(includedir)/Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/EndpointFactoryF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceStorm/IceStorm.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/ReapThread.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Locator.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceGrid/LocatorI.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../IceGrid/SessionI.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/AdminSessionI.h ../IceGrid/InternalRegistryI.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/FileCache.h ../IceGrid/RegistryServerAdminRouter.h +Grammar$(OBJEXT): Grammar.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h +Scanner$(OBJEXT): Scanner.cpp $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/Grammar.h +Parser$(OBJEXT): Parser.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceBox/IceBox.h +DescriptorParser$(OBJEXT): DescriptorParser.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorBuilder.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h +DescriptorBuilder$(OBJEXT): DescriptorBuilder.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/DescriptorBuilder.h $(includedir)/Ice/Logger.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h +DescriptorHelper$(OBJEXT): DescriptorHelper.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h +FileParserI$(OBJEXT): FileParserI.cpp ../IceGrid/FileParserI.h $(includedir)/IceGrid/FileParser.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h $(includedir)/IceXML/Parser.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h +Util$(OBJEXT): Util.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/IceUtil/Random.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h +Internal$(OBJEXT): Internal.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Client$(OBJEXT): Client.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h ../IceGrid/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h ../IceGrid/FileParserI.h $(includedir)/IceGrid/FileParser.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h $(includedir)/Glacier2/Router.h +Internal$(OBJEXT): Internal.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +DescriptorParser$(OBJEXT): DescriptorParser.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorBuilder.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h +DescriptorBuilder$(OBJEXT): DescriptorBuilder.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/DescriptorBuilder.h $(includedir)/Ice/Logger.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h +TraceLevels$(OBJEXT): TraceLevels.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/TraceLevels.h +FileCache$(OBJEXT): FileCache.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/FileCache.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h +PlatformInfo$(OBJEXT): PlatformInfo.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/PlatformInfo.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IcePatch2/Util.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IcePatch2/FileInfo.h +NodeI$(OBJEXT): NodeI.cpp $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IcePatch2/OS.h $(includedir)/IcePatch2/ClientUtil.h $(includedir)/IcePatch2/FileServer.h ../IceGrid/NodeI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/Activator.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/ServerAdapterI.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h +NodeServerAdminRouter$(OBJEXT): NodeServerAdminRouter.cpp ../IceGrid/NodeServerAdminRouter.h ../IceGrid/NodeI.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IcePatch2/FileServer.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IcePatch2/FileInfo.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h +ServerI$(OBJEXT): ServerI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/ServerAdapterI.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h ../IcePatch2/OS.h +ServerAdapterI$(OBJEXT): ServerAdapterI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ServerAdapterI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IceGrid/Activator.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h +Activator$(OBJEXT): Activator.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/ArgVector.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/ServerI.h $(includedir)/Freeze/EvictorF.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h +NodeSessionManager$(OBJEXT): NodeSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h +AdminCallbackRouter$(OBJEXT): AdminCallbackRouter.cpp ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h +RegistryI$(OBJEXT): RegistryI.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/Network.h $(includedir)/Ice/ProtocolPluginFacade.h $(includedir)/Ice/ProtocolPluginFacadeF.h $(includedir)/Ice/EndpointFactoryF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceStorm/IceStorm.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/ReapThread.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Locator.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h ../IceGrid/LocatorI.h ../IceGrid/LocatorRegistryI.h ../IceGrid/AdminI.h ../IceGrid/QueryI.h ../IceGrid/SessionI.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/AdminSessionI.h ../IceGrid/InternalRegistryI.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/FileCache.h ../IceGrid/RegistryServerAdminRouter.h RegistryServerAdminRouter$(OBJEXT): RegistryServerAdminRouter.cpp ../IceGrid/RegistryServerAdminRouter.h ../IceGrid/Database.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/CommunicatorF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -InternalRegistryI$(OBJEXT): InternalRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/InternalRegistryI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/ReapThread.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h ../IceGrid/FileCache.h -StringApplicationInfoDict$(OBJEXT): StringApplicationInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h -IdentityObjectInfoDict$(OBJEXT): IdentityObjectInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/IdentityObjectInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h -StringAdapterInfoDict$(OBJEXT): StringAdapterInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/StringAdapterInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h -Database$(OBJEXT): Database.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Exception.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h ../IceGrid/Database.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h +InternalRegistryI$(OBJEXT): InternalRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/InternalRegistryI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/ReapThread.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h ../IceGrid/FileCache.h +StringApplicationInfoDict$(OBJEXT): StringApplicationInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h +IdentityObjectInfoDict$(OBJEXT): IdentityObjectInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/IdentityObjectInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h +StringAdapterInfoDict$(OBJEXT): StringAdapterInfoDict.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceGrid/StringAdapterInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h +Database$(OBJEXT): Database.cpp $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Exception.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Transaction.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/TransactionHolder.h ../IceGrid/Database.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/NodeSessionI.h ../IceGrid/ReplicaSessionI.h Allocatable$(OBJEXT): Allocatable.cpp ../IceGrid/Allocatable.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LoggerF.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h -AdapterCache$(OBJEXT): AdapterCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h ../IceGrid/AdapterCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h ../IceGrid/TraceLevels.h $(includedir)/IceGrid/Query.h ../IceGrid/Internal.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h -ObjectCache$(OBJEXT): ObjectCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/ObjectCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h -AllocatableObjectCache$(OBJEXT): AllocatableObjectCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h ../IceGrid/TraceLevels.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/Allocatable.h $(includedir)/IceGrid/Session.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h -ServerCache$(OBJEXT): ServerCache.cpp $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/AdapterCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h -NodeCache$(OBJEXT): NodeCache.cpp $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h -ReplicaCache$(OBJEXT): ReplicaCache.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/ReplicaCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ReplicaSessionI.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h -LocatorI$(OBJEXT): LocatorI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h -LocatorRegistryI$(OBJEXT): LocatorRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -AdminI$(OBJEXT): AdminI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/AdminI.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/NodeSessionI.h -Util$(OBJEXT): Util.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/IceUtil/Random.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h -DescriptorHelper$(OBJEXT): DescriptorHelper.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h -NodeSessionI$(OBJEXT): NodeSessionI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -ReplicaSessionI$(OBJEXT): ReplicaSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/PlatformInfo.h -ReapThread$(OBJEXT): ReapThread.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReapThread.h -SessionI$(OBJEXT): SessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h -AdminSessionI$(OBJEXT): AdminSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/AdminI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h -SessionServantManager$(OBJEXT): SessionServantManager.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h -Topics$(OBJEXT): Topics.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Topics.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h -QueryI$(OBJEXT): QueryI.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -FileUserAccountMapperI$(OBJEXT): FileUserAccountMapperI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h -ReplicaSessionManager$(OBJEXT): ReplicaSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h -WellKnownObjectsManager$(OBJEXT): WellKnownObjectsManager.cpp $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h -IceGridNode$(OBJEXT): IceGridNode.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeServerAdminRouter.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/FileUserAccountMapperI.h ../IceGrid/NodeSessionManager.h ../IceGrid/TraceLevels.h ../IceGrid/DescriptorParser.h ../IcePatch2/Util.h -IceGridRegistry$(OBJEXT): IceGridRegistry.cpp $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/TraceLevels.h -Admin.cpp: $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice -Exception.cpp: $(slicedir)/IceGrid/Exception.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice -FileParser.cpp: $(slicedir)/IceGrid/FileParser.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice -Locator.cpp: $(slicedir)/IceGrid/Locator.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/ProcessF.ice -Query.cpp: $(slicedir)/IceGrid/Query.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/IceGrid/Exception.ice -Registry.cpp: $(slicedir)/IceGrid/Registry.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/IceGrid/Session.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/IceGrid/Descriptor.ice -Session.cpp: $(slicedir)/IceGrid/Session.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice -Observer.cpp: $(slicedir)/IceGrid/Observer.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice -Descriptor.cpp: $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice -UserAccountMapper.cpp: $(slicedir)/IceGrid/UserAccountMapper.ice +AdapterCache$(OBJEXT): AdapterCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h ../IceGrid/AdapterCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h ../IceGrid/TraceLevels.h $(includedir)/IceGrid/Query.h ../IceGrid/Internal.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h +ObjectCache$(OBJEXT): ObjectCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/ObjectCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h +AllocatableObjectCache$(OBJEXT): AllocatableObjectCache.cpp $(includedir)/IceUtil/Random.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h ../IceGrid/TraceLevels.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h ../IceGrid/Allocatable.h $(includedir)/IceGrid/Session.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h +ServerCache$(OBJEXT): ServerCache.cpp $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/AdapterCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h +NodeCache$(OBJEXT): NodeCache.cpp $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LocalException.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceGrid/NodeSessionI.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h +ReplicaCache$(OBJEXT): ReplicaCache.cpp $(includedir)/Ice/Communicator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h ../IceGrid/ReplicaCache.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/Internal.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ReplicaSessionI.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/Logger.h $(includedir)/Ice/Stats.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h +LocatorI$(OBJEXT): LocatorI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h +LocatorRegistryI$(OBJEXT): LocatorRegistryI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/LocatorRegistryI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +AdminI$(OBJEXT): AdminI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../Ice/TraceUtil.h ../Ice/TraceLevelsF.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/AdminI.h $(includedir)/IceGrid/Admin.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/DescriptorParser.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h ../IceGrid/NodeSessionI.h +Util$(OBJEXT): Util.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IcePatch2/Util.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/Util.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceGrid/Exception.h $(includedir)/IceUtil/Random.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h +DescriptorHelper$(OBJEXT): DescriptorHelper.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h +NodeSessionI$(OBJEXT): NodeSessionI.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/NodeSessionI.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +ReplicaSessionI$(OBJEXT): ReplicaSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/PlatformInfo.h +ReapThread$(OBJEXT): ReapThread.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReapThread.h +SessionI$(OBJEXT): SessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/LocatorI.h ../IceGrid/Internal.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Locator.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h +AdminSessionI$(OBJEXT): AdminSessionI.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/AdminSessionI.h ../IceGrid/SessionI.h ../IceGrid/ReapThread.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/Topics.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/AdminI.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h ../IceGrid/ReplicaCache.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h $(includedir)/IceSSL/Plugin.h $(includedir)/Ice/Plugin.h +SessionServantManager$(OBJEXT): SessionServantManager.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h ../IceGrid/SessionServantManager.h ../IceGrid/AdminCallbackRouter.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h +Topics$(OBJEXT): Topics.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/Topics.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/DescriptorHelper.h $(includedir)/IceUtil/OutputUtil.h $(includedir)/IceXML/Parser.h +QueryI$(OBJEXT): QueryI.cpp ../IceGrid/Internal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/QueryI.h $(includedir)/IceGrid/Query.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +FileUserAccountMapperI$(OBJEXT): FileUserAccountMapperI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceGrid/FileUserAccountMapperI.h $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h +ReplicaSessionManager$(OBJEXT): ReplicaSessionManager.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/TraceLevels.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h ../IceGrid/WellKnownObjectsManager.h +WellKnownObjectsManager$(OBJEXT): WellKnownObjectsManager.cpp $(includedir)/Glacier2/PermissionsVerifier.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/Ice/BuiltinSequences.h ../IceGrid/WellKnownObjectsManager.h ../IceGrid/Internal.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/Properties.h $(includedir)/Glacier2/Session.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/Database.h $(includedir)/Freeze/ConnectionF.h ../IceGrid/StringApplicationInfoDict.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceGrid/IdentityObjectInfoDict.h ../IceGrid/StringAdapterInfoDict.h ../IceGrid/ServerCache.h $(includedir)/IceGrid/Query.h ../IceGrid/Allocatable.h ../IceGrid/Cache.h ../IceGrid/Util.h $(includedir)/IceUtil/StringUtil.h $(includedir)/IceUtil/Random.h ../IceGrid/TraceLevels.h ../IceGrid/NodeCache.h $(includedir)/IceUtil/RecMutex.h ../IceGrid/ReplicaCache.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/ObjectCache.h ../IceGrid/AllocatableObjectCache.h ../IceGrid/AdapterCache.h ../IceGrid/Topics.h +IceGridNode$(OBJEXT): IceGridNode.cpp $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/StringUtil.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/Activator.h ../IceGrid/Internal.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Observer.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Session.h ../IceGrid/NodeServerAdminRouter.h ../IceGrid/NodeI.h $(includedir)/IcePatch2/FileServer.h $(includedir)/IcePatch2/FileInfo.h ../IceGrid/PlatformInfo.h $(includedir)/IceGrid/UserAccountMapper.h ../IceGrid/FileCache.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/FileUserAccountMapperI.h ../IceGrid/NodeSessionManager.h ../IceGrid/TraceLevels.h ../IceGrid/DescriptorParser.h ../IcePatch2/Util.h +IceGridRegistry$(OBJEXT): IceGridRegistry.cpp $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Service.h ../IceGrid/RegistryI.h $(includedir)/IceGrid/Registry.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Locator.h ../IceGrid/Internal.h $(includedir)/IceGrid/Observer.h ../IceGrid/PlatformInfo.h ../IceGrid/ReplicaSessionManager.h ../IceGrid/SessionManager.h $(includedir)/Glacier2/PermissionsVerifierF.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/IceStorm/IceStorm.h ../IceGrid/TraceLevels.h Internal.cpp: ../IceGrid/Internal.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/ProcessF.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/IceGrid/Observer.ice $(slicedir)/IceGrid/Registry.ice $(slicedir)/IceGrid/Session.ice -../../../slice/IceGrid/Admin.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Exception.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/FileParser.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Locator.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Query.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Registry.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Session.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Observer.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/Descriptor.ice: $(SLICE2CPP) $(SLICEPARSERLIB) -../../../slice/IceGrid/UserAccountMapper.ice: $(SLICE2CPP) $(SLICEPARSERLIB) ../IceGrid/Internal.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/src/IceGrid/.gitignore b/cpp/src/IceGrid/.gitignore index 6da36cfe3f7..9c92c4e432e 100644 --- a/cpp/src/IceGrid/.gitignore +++ b/cpp/src/IceGrid/.gitignore @@ -1,27 +1,7 @@ // Generated by makegitignore.py // IMPORTANT: Do not edit this file -- any edits made here will be lost! -Admin.cpp -Exception.cpp -FileParser.cpp -Locator.cpp -Query.cpp -Registry.cpp -Session.cpp -Observer.cpp -Descriptor.cpp -UserAccountMapper.cpp Internal.cpp -Admin.h -Exception.h -FileParser.h -Locator.h -Query.h -Registry.h -Session.h -Observer.h -Descriptor.h -UserAccountMapper.h Internal.h StringApplicationInfoDict.h StringApplicationInfoDict.cpp diff --git a/cpp/src/IceGrid/Makefile b/cpp/src/IceGrid/Makefile index 7f9f0e1e782..94cfe1a3575 100644 --- a/cpp/src/IceGrid/Makefile +++ b/cpp/src/IceGrid/Makefile @@ -9,27 +9,11 @@ top_srcdir = ../.. -LIBFILENAME = $(call mklibfilename,IceGrid,$(VERSION)) -SONAME = $(call mksoname,IceGrid,$(SOVERSION)) -LIBNAME = $(call mklibname,IceGrid) - ADMIN = $(top_srcdir)/bin/icegridadmin NODE_SERVER = $(top_srcdir)/bin/icegridnode REGISTRY_SERVER = $(top_srcdir)/bin/icegridregistry -LIBTARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) -TARGETS = $(LIBTARGETS) $(NODE_SERVER) $(REGISTRY_SERVER) $(ADMIN) - -LIB_OBJS = Admin.o \ - Locator.o \ - Query.o \ - Exception.o \ - Descriptor.o \ - FileParser.o \ - Observer.o \ - Session.o \ - Registry.o \ - UserAccountMapper.o +TARGETS = $(NODE_SERVER) $(REGISTRY_SERVER) $(ADMIN) ADMIN_OBJS = Grammar.o \ Scanner.o \ @@ -98,29 +82,17 @@ REGISTRY_SVR_OBJS = \ $(REGISTRY_OBJS) \ IceGridRegistry.o -SRCS = $(LIB_OBJS:.o=.cpp) \ - $(ADMIN_OBJS:.o=.cpp) \ +SRCS = $(ADMIN_OBJS:.o=.cpp) \ $(COMMON_OBJS:.o=.cpp) \ $(NODE_OBJS:.o=.cpp) \ $(REGISTRY_OBJS:.o=.cpp) \ IceGridNode.cpp \ IceGridRegistry.cpp -SLICE_SRCS = $(SDIR)/Admin.ice \ - $(SDIR)/Exception.ice \ - $(SDIR)/FileParser.ice \ - $(SDIR)/Locator.ice \ - $(SDIR)/Query.ice \ - $(SDIR)/Registry.ice \ - $(SDIR)/Session.ice \ - $(SDIR)/Observer.ice \ - $(SDIR)/Descriptor.ice \ - $(SDIR)/UserAccountMapper.ice \ - ../IceGrid/Internal.ice +SLICE_SRCS = ../IceGrid/Internal.ice HDIR = $(includedir)/IceGrid LOCAL_HDIR = ../IceGrid -SDIR = $(slicedir)/IceGrid LOCAL_SDIR = ../IceGrid SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceGrid $(ICECPPFLAGS) @@ -132,18 +104,6 @@ ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_API $(SLICE2CPPFLAGS) LINKWITH := -lGlacier2 $(BZIP2_RPATH_LINK) -lIce -lIceUtil -$(libdir)/$(LIBFILENAME): $(LIB_OBJS) - rm -f $@ - $(call mkshlib,$@,$(SONAME),$(LIB_OBJS),$(LINKWITH)) - -$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) - rm -f $@ - ln -s $(LIBFILENAME) $@ - -$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) - rm -f $@ - ln -s $(SONAME) $@ - $(ADMIN): $(ADMIN_OBJS) $(LIBTARGETS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(ADMIN_OBJS) -lGlacier2 $(EXPAT_RPATH_LINK) -lIceXML -lIceGrid -lIcePatch2 -lIceBox \ @@ -159,10 +119,6 @@ $(NODE_SERVER): $(NODE_SVR_OBJS) $(LIBTARGETS) $(CXX) $(LDFLAGS) -o $@ $(NODE_SVR_OBJS) -lIceGrid -lIceStormService -lIceBox -lGlacier2 -lIcePatch2 \ $(DB_RPATH_LINK) -lFreeze $(EXPAT_RPATH_LINK) -lIceXML -lIceSSL $(OPENSSL_LIBS) $(LIBS) -$(LOCAL_HDIR)/%.h %.cpp: $(SDIR)/%.ice $(SLICE2CPP) - rm -f $(HDIR)/$(*F).h $(*F).cpp - $(SLICE2CPP) $(SLICE2CPPFLAGS) $(SDIR)/$(*F).ice - $(LOCAL_HDIR)/StringApplicationInfoDict.h StringApplicationInfoDict.cpp: $(SLICE2FREEZE) rm -f StringApplicationInfoDict.h StringApplicationInfoDict.cpp $(SLICE2FREEZECMD) --dict IceGrid::StringApplicationInfoDict,string,IceGrid::ApplicationInfo \ @@ -183,7 +139,7 @@ clean:: $(LOCAL_HDIR)/StringAdapterInfoDict.h StringAdapterInfoDict.cpp: $(SLICE2FREEZE) rm -f StringAdapterInfoDict.h StringAdapterInfoDict.cpp $(SLICE2FREEZECMD) --dict IceGrid::StringAdapterInfoDict,string,IceGrid::AdapterInfo \ - --dict-index IceGrid::StringAdapterInfoDict,replicaGroupId StringAdapterInfoDict $(SDIR)/Admin.ice + --dict-index IceGrid::StringAdapterInfoDict,replicaGroupId StringAdapterInfoDict $(slicedir)/IceGrid/Admin.ice clean:: rm -f StringAdapterInfoDict.h StringAdapterInfoDict.cpp @@ -196,7 +152,6 @@ clean:: rm -f Scanner.cpp install:: all - $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(call installprogram,$(ADMIN),$(install_bindir)) $(call installprogram,$(NODE_SERVER),$(install_bindir)) $(call installprogram,$(REGISTRY_SERVER),$(install_bindir)) diff --git a/cpp/src/IceGrid/Makefile.mak b/cpp/src/IceGrid/Makefile.mak index 6253ecff313..837f593c1b9 100644 --- a/cpp/src/IceGrid/Makefile.mak +++ b/cpp/src/IceGrid/Makefile.mak @@ -9,40 +9,18 @@ top_srcdir = ..\.. -LIBNAME = $(top_srcdir)\lib\icegrid$(LIBSUFFIX).lib -DLLNAME = $(top_srcdir)\bin\icegrid$(SOVERSION)$(LIBSUFFIX).dll - ADMIN = $(top_srcdir)\bin\icegridadmin.exe NODE_SERVER = $(top_srcdir)\bin\icegridnode.exe REGISTRY_SERVER = $(top_srcdir)\bin\icegridregistry.exe -!ifdef BUILD_UTILS - TARGETS = $(ADMIN) $(NODE_SERVER) $(REGISTRY_SERVER) -!else - -TARGETS = $(LIBNAME) $(DLLNAME) - -!endif - -LIB_OBJS = Admin.obj \ - Query.obj \ - Locator.obj \ - Exception.obj \ - Descriptor.obj \ - Observer.obj \ - Session.obj \ - Registry.obj \ - UserAccountMapper.obj - ADMIN_OBJS = Grammar.obj \ Scanner.obj \ Parser.obj \ DescriptorParser.obj \ DescriptorBuilder.obj \ DescriptorHelper.obj \ - FileParser.obj \ FileParserI.obj \ Util.obj \ Internal.obj \ @@ -104,16 +82,12 @@ REGISTRY_SVR_OBJS = \ $(REGISTRY_OBJS) \ IceGridRegistry.obj -!ifdef BUILD_UTILS SRCS = $(ADMIN_OBJS:.obj=.cpp) \ $(COMMON_OBJS:.obj=.cpp) \ $(NODE_OBJS:.obj=.cpp) \ $(REGISTRY_OBJS:.obj=.cpp) \ IceGridNode.cpp \ IceGridRegistry.cpp -!else -SRCS = $(LIB_OBJS:.obj=.cpp) -!endif HDIR = $(includedir)\IceGrid SDIR = $(slicedir)\IceGrid @@ -131,37 +105,18 @@ NLINKWITH = $(ALINKWITH) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$ NLINKWITH = $(NLINKWITH) pdh.lib ws2_32.lib !endif -!ifdef BUILD_UTILS - SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid $(SLICE2CPPFLAGS) CPPFLAGS = -I. -I.. -Idummyinclude $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN !if "$(CPP_COMPILER)" != "BCC2006" CPPFLAGS = $(CPPFLAGS) -Zm200 !endif -!else - -SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_API $(SLICE2CPPFLAGS) -CPPFLAGS = -I.. -DICE_GRID_API_EXPORTS $(CPPFLAGS) - -!endif - !if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" -PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb) RPDBFLAGS = /pdb:$(REGISTRY_SERVER:.exe=.pdb) NPDBFLAGS = /pdb:$(NODE_SERVER:.exe=.pdb) !endif -$(LIBNAME): $(DLLNAME) - -$(DLLNAME): $(LIB_OBJS) - $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) - move $(DLLNAME:.dll=.lib) $(LIBNAME) - @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ - $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest - @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp) - $(ADMIN): $(ADMIN_OBJS) $(LINK) $(LD_EXEFLAGS) $(APDBFLAGS) $(ADMIN_OBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(ALINKWITH) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) &&\ @@ -207,26 +162,13 @@ Grammar.cpp Grammar.h: Grammar.y move Grammar.tab.h Grammar.h del /q Grammar.output -!ifdef BUILD_UTILS - clean:: del /q StringApplicationInfoDict.h StringApplicationInfoDict.cpp del /q StringAdapterInfoDict.h StringAdapterInfoDict.cpp del /q IdentityObjectInfoDict.h IdentityObjectInfoDict.cpp clean:: - del /q Admin.cpp $(HDIR)\Admin.h - del /q Exception.cpp $(HDIR)\Exception.h - del /q FileParser.cpp $(HDIR)\FileParser.h - del /q Locator.cpp $(HDIR)\Locator.h - del /q Query.cpp $(HDIR)\Query.h - del /q Session.cpp $(HDIR)\Session.h - del /q Observer.cpp $(HDIR)\Observer.h - del /q Descriptor.cpp $(HDIR)\Descriptor.h - del /q UserAccountMapper.cpp $(HDIR)\UserAccountMapper.h - del /q Registry.cpp $(HDIR)\Registry.h del /q Internal.cpp Internal.h - del /q $(DLLNAME:.dll=.*) del /q $(ADMIN:.exe=.*) del /q $(NODE_SERVER:.exe=.*) del /q $(REGISTRY_SERVER:.exe=.*) @@ -236,8 +178,6 @@ clean:: del /q Scanner.cpp install:: all - copy $(LIBNAME) $(install_libdir) - copy $(DLLNAME) $(install_bindir) copy $(ADMIN) $(install_bindir) copy $(NODE_SERVER) $(install_bindir) copy $(REGISTRY_SERVER) $(install_bindir) @@ -247,7 +187,6 @@ install:: all !if "$(CPP_COMPILER)" == "BCC2006" install:: all - copy $(DLLNAME:.dll=.tds) $(install_bindir) copy $(ADMIN:.exe=.tds) $(install_bindir) copy $(NODE_SERVER:.exe=.tds) $(install_bindir) copy $(REGISTRY_SERVER:.exe=.tds) $(install_bindir) @@ -255,7 +194,6 @@ install:: all !else install:: all - copy $(DLLNAME:.dll=.pdb) $(install_bindir) copy $(ADMIN:.exe=.pdb) $(install_bindir) copy $(NODE_SERVER:.exe=.pdb) $(install_bindir) copy $(REGISTRY_SERVER:.exe=.pdb) $(install_bindir) @@ -264,13 +202,4 @@ install:: all !endif -!else - -install:: all - -$(EVERYTHING):: - @$(MAKE) -nologo /f Makefile.mak BUILD_UTILS=1 $@ - -!endif - !include .depend diff --git a/cpp/src/IceGridLib/.depend b/cpp/src/IceGridLib/.depend new file mode 100644 index 00000000000..c330fe10ffc --- /dev/null +++ b/cpp/src/IceGridLib/.depend @@ -0,0 +1,30 @@ +Admin$(OBJEXT): Admin.cpp $(includedir)/IceGrid/Admin.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Locator$(OBJEXT): Locator.cpp $(includedir)/IceGrid/Locator.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Query$(OBJEXT): Query.cpp $(includedir)/IceGrid/Query.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Exception$(OBJEXT): Exception.cpp $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Descriptor$(OBJEXT): Descriptor.cpp $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +FileParser$(OBJEXT): FileParser.cpp $(includedir)/IceGrid/FileParser.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Observer$(OBJEXT): Observer.cpp $(includedir)/IceGrid/Observer.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/IceGrid/Descriptor.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Session$(OBJEXT): Session.cpp $(includedir)/IceGrid/Session.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Glacier2/Session.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Registry$(OBJEXT): Registry.cpp $(includedir)/IceGrid/Registry.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceGrid/Exception.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/IceGrid/Session.h $(includedir)/Glacier2/Session.h $(includedir)/Glacier2/SSLInfo.h $(includedir)/IceGrid/Admin.h $(includedir)/Ice/Properties.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceGrid/Descriptor.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +UserAccountMapper$(OBJEXT): UserAccountMapper.cpp $(includedir)/IceGrid/UserAccountMapper.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Admin.cpp: $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice +Exception.cpp: $(slicedir)/IceGrid/Exception.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice +FileParser.cpp: $(slicedir)/IceGrid/FileParser.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice +Locator.cpp: $(slicedir)/IceGrid/Locator.ice $(slicedir)/Ice/Locator.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/ProcessF.ice +Query.cpp: $(slicedir)/IceGrid/Query.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/IceGrid/Exception.ice +Registry.cpp: $(slicedir)/IceGrid/Registry.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/IceGrid/Session.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/IceGrid/Descriptor.ice +Session.cpp: $(slicedir)/IceGrid/Session.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice +Observer.cpp: $(slicedir)/IceGrid/Observer.ice $(slicedir)/Glacier2/Session.ice $(slicedir)/Ice/BuiltinSequences.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Glacier2/SSLInfo.ice $(slicedir)/IceGrid/Exception.ice $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/IceGrid/Admin.ice $(slicedir)/Ice/Properties.ice $(slicedir)/Ice/SliceChecksumDict.ice +Descriptor.cpp: $(slicedir)/IceGrid/Descriptor.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice +UserAccountMapper.cpp: $(slicedir)/IceGrid/UserAccountMapper.ice +../../../slice/IceGrid/Admin.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Exception.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/FileParser.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Locator.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Query.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Registry.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Session.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Observer.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/Descriptor.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../../../slice/IceGrid/UserAccountMapper.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/src/IceGridLib/.gitignore b/cpp/src/IceGridLib/.gitignore new file mode 100644 index 00000000000..158b3777b32 --- /dev/null +++ b/cpp/src/IceGridLib/.gitignore @@ -0,0 +1,23 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +Admin.cpp +Exception.cpp +FileParser.cpp +Locator.cpp +Query.cpp +Registry.cpp +Session.cpp +Observer.cpp +Descriptor.cpp +UserAccountMapper.cpp +Admin.h +Exception.h +FileParser.h +Locator.h +Query.h +Registry.h +Session.h +Observer.h +Descriptor.h +UserAccountMapper.h diff --git a/cpp/src/IceGridLib/Makefile b/cpp/src/IceGridLib/Makefile new file mode 100644 index 00000000000..6adb0411a40 --- /dev/null +++ b/cpp/src/IceGridLib/Makefile @@ -0,0 +1,70 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../.. + +LIBFILENAME = $(call mklibfilename,IceGrid,$(VERSION)) +SONAME = $(call mksoname,IceGrid,$(SOVERSION)) +LIBNAME = $(call mklibname,IceGrid) + +LIBTARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) +TARGETS = $(LIBTARGETS) $(NODE_SERVER) $(REGISTRY_SERVER) $(ADMIN) + +LIB_OBJS = Admin.o \ + Locator.o \ + Query.o \ + Exception.o \ + Descriptor.o \ + FileParser.o \ + Observer.o \ + Session.o \ + Registry.o \ + UserAccountMapper.o + +SRCS = $(LIB_OBJS:.o=.cpp) + +SLICE_SRCS = $(SDIR)/Admin.ice \ + $(SDIR)/Exception.ice \ + $(SDIR)/FileParser.ice \ + $(SDIR)/Locator.ice \ + $(SDIR)/Query.ice \ + $(SDIR)/Registry.ice \ + $(SDIR)/Session.ice \ + $(SDIR)/Observer.ice \ + $(SDIR)/Descriptor.ice \ + $(SDIR)/UserAccountMapper.ice \ + +HDIR = $(includedir)/IceGrid +LOCAL_HDIR = ../IceGrid +SDIR = $(slicedir)/IceGrid +LOCAL_SDIR = ../IceGrid + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := $(CPPFLAGS) -I.. -DICE_GRID_API_EXPORTS $(OPENSSL_FLAGS) $(READLINE_FLAGS) +ICECPPFLAGS := $(ICECPPFLAGS) -I.. +SLICE2CPPFLAGS := --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_API $(SLICE2CPPFLAGS) +LINKWITH := -lGlacier2 $(BZIP2_RPATH_LINK) -lIce -lIceUtil + +$(libdir)/$(LIBFILENAME): $(LIB_OBJS) + rm -f $@ + $(call mkshlib,$@,$(SONAME),$(LIB_OBJS),$(LINKWITH)) + +$(libdir)/$(SONAME): $(libdir)/$(LIBFILENAME) + rm -f $@ + ln -s $(LIBFILENAME) $@ + +$(libdir)/$(LIBNAME): $(libdir)/$(SONAME) + rm -f $@ + ln -s $(SONAME) $@ + +install:: all + $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) + +include .depend diff --git a/cpp/src/IceGridLib/Makefile.mak b/cpp/src/IceGridLib/Makefile.mak new file mode 100644 index 00000000000..78230063c31 --- /dev/null +++ b/cpp/src/IceGridLib/Makefile.mak @@ -0,0 +1,81 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\.. + +LIBNAME = $(top_srcdir)\lib\icegrid$(LIBSUFFIX).lib +DLLNAME = $(top_srcdir)\bin\icegrid$(SOVERSION)$(LIBSUFFIX).dll + +TARGETS = $(LIBNAME) $(DLLNAME) + +LIB_OBJS = Admin.obj \ + Locator.obj \ + Query.obj \ + Exception.obj \ + Descriptor.obj \ + FileParser.obj \ + Observer.obj \ + Session.obj \ + Registry.obj \ + UserAccountMapper.obj + +SRCS = $(LIB_OBJS:.obj=.cpp) + +HDIR = $(includedir)\IceGrid +SDIR = $(slicedir)\IceGrid + +!include $(top_srcdir)\config\Make.rules.mak + +LINKWITH = $(LIBS) glacier2$(LIBSUFFIX).lib + +SLICE2CPPFLAGS = --checksum --ice --include-dir IceGrid --dll-export ICE_GRID_API $(SLICE2CPPFLAGS) +CPPFLAGS = -I.. -DICE_GRID_API_EXPORTS $(CPPFLAGS) + +!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" +PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) +!endif + +$(LIBNAME): $(DLLNAME) + +$(DLLNAME): $(LIB_OBJS) + $(LINK) $(LD_DLLFLAGS) $(PDBFLAGS) $(LIB_OBJS) $(PREOUT)$@ $(PRELIBS)$(LINKWITH) + move $(DLLNAME:.dll=.lib) $(LIBNAME) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#2 && del /q $@.manifest + @if exist $(DLLNAME:.dll=.exp) del /q $(DLLNAME:.dll=.exp) + +clean:: + del /q Admin.cpp $(HDIR)\Admin.h + del /q Descriptor.cpp $(HDIR)\Descriptor.h + del /q Exception.cpp $(HDIR)\Exception.h + del /q Locator.cpp $(HDIR)\Locator.h + del /q Observer.cpp $(HDIR)\Observer.h + del /q Query.cpp $(HDIR)\Query.h + del /q Session.cpp $(HDIR)\Session.h + del /q Registry.cpp $(HDIR)\Registry.h + del /q UserAccountMapper.cpp $(HDIR)\UserAccountMapper.h + del /q $(DLLNAME:.dll=.*) + +install:: all + copy $(LIBNAME) $(install_libdir) + copy $(DLLNAME) $(install_bindir) + +!if "$(CPP_COMPILER)" == "BCC2006" + +install:: all + copy $(DLLNAME:.dll=.tds) $(install_bindir) + +!else + +install:: all + copy $(DLLNAME:.dll=.pdb) $(install_bindir) + +!endif + +!include .depend diff --git a/cpp/src/IceStorm/.depend b/cpp/src/IceStorm/.depend index 33c502226dc..56f7eec2b4a 100644 --- a/cpp/src/IceStorm/.depend +++ b/cpp/src/IceStorm/.depend @@ -1,23 +1,43 @@ -IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Instance$(OBJEXT): Instance.cpp ../IceStorm/Instance.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h ../IceStorm/BatchFlusher.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h ../IceStorm/SubscriberPool.h ../IceStorm/Subscriber.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h -TraceLevels$(OBJEXT): TraceLevels.cpp ../IceStorm/TraceLevels.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h -BatchFlusher$(OBJEXT): BatchFlusher.cpp ../IceStorm/BatchFlusher.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/Handle.h ../IceStorm/Instance.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Connection.h -SubscriberPool$(OBJEXT): SubscriberPool.cpp ../IceStorm/SubscriberPool.h ../IceStorm/Subscriber.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/LoggerUtil.h -Subscriber$(OBJEXT): Subscriber.cpp ../IceStorm/Subscriber.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h ../IceStorm/BatchFlusher.h ../IceStorm/SubscriberPool.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Connection.h -TopicI$(OBJEXT): TopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h ../IceStorm/Instance.h ../IceStorm/Subscriber.h ../IceStorm/TraceLevels.h ../IceStorm/SubscriberPool.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h -TopicManagerI$(OBJEXT): TopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicManagerI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h ../IceStorm/TopicI.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/IceStormInternal.h ../IceStorm/SubscriberPool.h ../IceStorm/Subscriber.h ../IceStorm/BatchFlusher.h ../IceStorm/TraceLevels.h ../IceStorm/Instance.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Ice/SliceChecksums.h -PersistentTopicMap$(OBJEXT): PersistentTopicMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h -LinkRecord$(OBJEXT): LinkRecord.cpp ../IceStorm/LinkRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -IceStormInternal$(OBJEXT): IceStormInternal.cpp ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h -Service$(OBJEXT): Service.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h ../IceStorm/TopicManagerI.h ../IceStorm/Instance.h ../IceStorm/TraceLevels.h ../IceStorm/BatchFlusher.h ../IceStorm/SubscriberPool.h ../IceStorm/Subscriber.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h -Admin$(OBJEXT): Admin.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Application.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h -Grammar$(OBJEXT): Grammar.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h -Scanner$(OBJEXT): Scanner.cpp $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Grammar.h -Parser$(OBJEXT): Parser.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +LoggerI$(OBJEXT): LoggerI.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/Plugin.h ../IceStorm/LoggerI.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceStorm/IceStorm.h +NodeI$(OBJEXT): NodeI.cpp ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Replica.h ../IceStorm/Instance.h ../IceStorm/Observers.h ../IceStorm/TraceLevels.h +Observers$(OBJEXT): Observers.cpp ../IceStorm/Observers.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Replica.h ../IceStorm/Instance.h ../IceStorm/TraceLevels.h +LLUMap$(OBJEXT): LLUMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +Election$(OBJEXT): Election.cpp ../IceStorm/Election.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +IceStorm$(OBJEXT): IceStorm.cpp $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Instance$(OBJEXT): Instance.cpp ../IceStorm/Instance.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h ../IceStorm/Election.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h ../IceStorm/Observers.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Replica.h ../IceStorm/NodeI.h +TraceLevels$(OBJEXT): TraceLevels.cpp ../IceStorm/TraceLevels.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/BuiltinSequences.h +Subscriber$(OBJEXT): Subscriber.cpp ../IceStorm/Subscriber.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Replica.h +TopicI$(OBJEXT): TopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LLUMap.h ../IceStorm/Instance.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TraceLevels.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Replica.h ../IceStorm/Observers.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/TransactionHolder.h +TopicManagerI$(OBJEXT): TopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicManagerI.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h ../IceStorm/TraceLevels.h ../IceStorm/Instance.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/TransactionHolder.h ../IceStorm/NodeI.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/Observers.h $(includedir)/Ice/SliceChecksums.h +TransientTopicI$(OBJEXT): TransientTopicI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TransientTopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h ../IceStorm/Instance.h $(includedir)/Ice/PropertiesF.h ../IceStorm/Subscriber.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TraceLevels.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h +TransientTopicManagerI$(OBJEXT): TransientTopicManagerI.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TransientTopicManagerI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h ../IceStorm/TransientTopicI.h ../IceStorm/TraceLevels.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h ../IceStorm/Instance.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h +SubscriberMap$(OBJEXT): SubscriberMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +SubscriberRecord$(OBJEXT): SubscriberRecord.cpp ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +IceStormInternal$(OBJEXT): IceStormInternal.cpp ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Service$(OBJEXT): Service.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/TopicI.h ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LLUMap.h ../IceStorm/TopicManagerI.h ../IceStorm/Replica.h $(includedir)/IceUtil/RecMutex.h ../IceStorm/TransientTopicManagerI.h ../IceStorm/Instance.h $(includedir)/IceStorm/Service.h $(includedir)/IceBox/IceBox.h ../IceStorm/Observers.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h ../IceStorm/TraceLevels.h ../IceStorm/LoggerI.h $(includedir)/IceUtil/StringUtil.h ../IceStorm/NodeI.h $(includedir)/IceGrid/Locator.h $(includedir)/IceGrid/Query.h $(includedir)/IceGrid/Exception.h +Admin$(OBJEXT): Admin.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Application.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Ice/SliceChecksums.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h +Grammar$(OBJEXT): Grammar.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +Scanner$(OBJEXT): Scanner.cpp $(includedir)/IceUtil/Config.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Grammar.h +Parser$(OBJEXT): Parser.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h ../IceStorm/Parser.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/IceStormInternal.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h +Election$(OBJEXT): Election.cpp ../IceStorm/Election.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +SubscriberRecord$(OBJEXT): SubscriberRecord.cpp ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +IceStormInternal$(OBJEXT): IceStormInternal.cpp ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Migrate$(OBJEXT): Migrate.cpp $(includedir)/IceUtil/DisableWarnings.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h ../IceStorm/IceStormInternal.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h ../IceStorm/SubscriberMap.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Freeze.h $(includedir)/Freeze/Initialize.h $(includedir)/Freeze/EvictorF.h $(includedir)/Freeze/ConnectionF.h $(includedir)/Freeze/Index.h $(includedir)/Freeze/BackgroundSaveEvictor.h $(includedir)/Freeze/Evictor.h $(includedir)/Freeze/TransactionalEvictor.h $(includedir)/Freeze/TransactionHolder.h +SubscriberRecord$(OBJEXT): SubscriberRecord.cpp ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +SubscriberMap$(OBJEXT): SubscriberMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/SubscriberMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +LLUMap$(OBJEXT): LLUMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/LLUMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h +LinkRecord$(OBJEXT): LinkRecord.cpp ../IceStorm/LinkRecord.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h ../IceStorm/IceStormInternal.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +PersistentTopicMap$(OBJEXT): PersistentTopicMap.cpp $(includedir)/Ice/BasicStream.h $(includedir)/Ice/InstanceF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h ../IceStorm/PersistentTopicMap.h $(includedir)/Freeze/Map.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/Freeze/DB.h $(includedir)/Freeze/Exception.h $(includedir)/Freeze/Connection.h $(includedir)/Freeze/Transaction.h ../IceStorm/LinkRecord.h ../IceStorm/IceStormInternal.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h ../IceStorm/SubscriberRecord.h +IceStormInternal$(OBJEXT): IceStormInternal.cpp ../IceStorm/IceStormInternal.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h ../IceStorm/Election.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h +Election$(OBJEXT): Election.cpp ../IceStorm/Election.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/BuiltinSequences.h ../IceStorm/SubscriberRecord.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/SliceChecksums.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/DisableWarnings.h IceStorm.cpp: $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Ice/Identity.ice -IceStormInternal.cpp: ../IceStorm/IceStormInternal.ice $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/Current.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/ConnectionF.ice $(slicedir)/Ice/BuiltinSequences.ice -LinkRecord.cpp: ../IceStorm/LinkRecord.ice $(slicedir)/Ice/Identity.ice +Election.cpp: ../IceStorm/Election.ice $(slicedir)/Ice/Identity.ice $(slicedir)/Ice/BuiltinSequences.ice ../IceStorm/SubscriberRecord.ice $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice +IceStormInternal.cpp: ../IceStorm/IceStormInternal.ice $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice $(slicedir)/Ice/Identity.ice ../IceStorm/Election.ice $(slicedir)/Ice/BuiltinSequences.ice ../IceStorm/SubscriberRecord.ice $(slicedir)/Ice/Current.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/ConnectionF.ice +SubscriberRecord.cpp: ../IceStorm/SubscriberRecord.ice $(slicedir)/Ice/Identity.ice $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice +LinkRecord.cpp: ../IceStorm/LinkRecord.ice $(slicedir)/Ice/Identity.ice ../IceStorm/IceStormInternal.ice $(slicedir)/IceStorm/IceStorm.ice $(slicedir)/Ice/SliceChecksumDict.ice ../IceStorm/Election.ice $(slicedir)/Ice/BuiltinSequences.ice ../IceStorm/SubscriberRecord.ice $(slicedir)/Ice/Current.ice $(slicedir)/Ice/ObjectAdapterF.ice $(slicedir)/Ice/ConnectionF.ice ../../../slice/IceStorm/IceStorm.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../IceStorm/Election.ice: $(SLICE2CPP) $(SLICEPARSERLIB) ../IceStorm/IceStormInternal.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +../IceStorm/SubscriberRecord.ice: $(SLICE2CPP) $(SLICEPARSERLIB) ../IceStorm/LinkRecord.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/src/IceStorm/.gitignore b/cpp/src/IceStorm/.gitignore index ae16611ec93..7a8683e70df 100644 --- a/cpp/src/IceStorm/.gitignore +++ b/cpp/src/IceStorm/.gitignore @@ -2,13 +2,21 @@ // IMPORTANT: Do not edit this file -- any edits made here will be lost! IceStorm.cpp +Election.cpp IceStormInternal.cpp +SubscriberRecord.cpp LinkRecord.cpp IceStorm.h +Election.h IceStormInternal.h +SubscriberRecord.h LinkRecord.h +SubscriberMap.h +SubscriberMap.cpp PersistentTopicMap.h PersistentTopicMap.cpp +LLUMap.h +LLUMap.cpp Grammar.cpp Grammar.h Scanner.cpp diff --git a/cpp/src/IceStorm/Admin.cpp b/cpp/src/IceStorm/Admin.cpp index 272dd13ac9b..c2604257a8b 100644 --- a/cpp/src/IceStorm/Admin.cpp +++ b/cpp/src/IceStorm/Admin.cpp @@ -104,27 +104,9 @@ Client::run(int argc, char* argv[]) // The complete set of Ice::Identity -> manager proxies. map<Ice::Identity, IceStorm::TopicManagerPrx> managers; - - // IceStorm.TopicManager.Proxy is the "default" manager. PropertiesPtr properties = communicator()->getProperties(); - const char* managerProxy= "IceStorm.TopicManager.Proxy"; - string managerProxyValue = properties->getProperty(managerProxy); IceStorm::TopicManagerPrx defaultManager; - if(!managerProxyValue.empty()) - { - defaultManager = IceStorm::TopicManagerPrx::checkedCast(communicator()->propertyToProxy(managerProxy)); - if(!defaultManager) - { - cerr << appName() << ": `" << managerProxyValue << "' is not running" << endl; - return EXIT_FAILURE; - } - managers.insert(map<Ice::Identity, IceStorm::TopicManagerPrx>::value_type( - defaultManager->ice_getIdentity(), defaultManager)); - } - // - // Get remaining managers. - // Ice::PropertyDict props = communicator()->getProperties()->getPropertiesForPrefix("IceStormAdmin.TopicManager."); { for(Ice::PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) @@ -148,58 +130,25 @@ Client::run(int argc, char* argv[]) } } } - if(props.empty() && !defaultManager) + + string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); + if(!managerProxy.empty()) { - cerr << appName() << ": no manager proxies configured" << endl; - return EXIT_FAILURE; + defaultManager = IceStorm::TopicManagerPrx::uncheckedCast( + communicator()->stringToProxy(managerProxy)); } - - if(!defaultManager) + else if(!managers.empty()) { - string managerProxy = properties->getProperty("IceStormAdmin.TopicManager.Default"); - if(!managerProxy.empty()) - { - defaultManager = IceStorm::TopicManagerPrx::uncheckedCast( - communicator()->stringToProxy(managerProxy)); - } - else - { - defaultManager = managers.begin()->second; - } + defaultManager = managers.begin()->second; } } - // Check slice checksums for each manager. + if(!defaultManager) { - for(map<Ice::Identity, IceStorm::TopicManagerPrx>::const_iterator p = managers.begin(); p != managers.end(); - ++p) - { - try - { - Ice::SliceChecksumDict serverChecksums = p->second->getSliceChecksums(); - Ice::SliceChecksumDict localChecksums = Ice::sliceChecksums(); - for(Ice::SliceChecksumDict::const_iterator q = localChecksums.begin(); q != localChecksums.end(); ++q) - { - Ice::SliceChecksumDict::const_iterator r = serverChecksums.find(q->first); - if(r == serverChecksums.end()) - { - cerr << appName() << ": " << communicator()->identityToString(p->first) - << " is using unknown Slice type `" << q->first << "'" << endl; - } - else if(q->second != r->second) - { - cerr << appName() << ": " << communicator()->identityToString(p->first) - << " is using a different Slice definition of `" << q->first << "'" << endl; - } - } - } - catch(const Ice::Exception& ex) - { - cerr << communicator()->identityToString(p->first) << ": " << ex << endl; - } - } + cerr << appName() << ": no manager proxies configured" << endl; + return EXIT_FAILURE; } - + ParserPtr p = Parser::createParser(communicator(), defaultManager, managers); int status = EXIT_SUCCESS; diff --git a/cpp/src/IceStorm/BatchFlusher.cpp b/cpp/src/IceStorm/BatchFlusher.cpp deleted file mode 100644 index 9676b955b60..00000000000 --- a/cpp/src/IceStorm/BatchFlusher.cpp +++ /dev/null @@ -1,127 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <IceStorm/BatchFlusher.h> -#include <IceStorm/Instance.h> -#include <IceStorm/TraceLevels.h> - -#include <Ice/Communicator.h> -#include <Ice/Properties.h> -#include <Ice/LoggerUtil.h> -#include <Ice/Connection.h> - -#include <set> - -using namespace IceStorm; -using namespace std; - -BatchFlusher::BatchFlusher(const InstancePtr& instance) : - _traceLevels(instance->traceLevels()), - _flushTime(IceUtil::Time::milliSeconds( - max(instance->properties()->getPropertyAsIntWithDefault( - "IceStorm.Flush.Timeout", 1000), 100))), // Minimum of 100ms. - _destroy(false) -{ - start(); -} - -BatchFlusher::~BatchFlusher() -{ -} - -void -BatchFlusher::add(const Ice::ObjectPrx& subscriber) -{ - IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - // - // If the set of subscribers is empty then wake up the flushing - // thread since it will be waiting indefinitely - // - if(_subscribers.empty()) - { - notify(); - } - _subscribers.push_back(subscriber); -} - -void -BatchFlusher::remove(const Ice::ObjectPrx& subscriber) -{ - IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - _subscribers.remove(subscriber); -} - -void -BatchFlusher::destroy() -{ - IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - _destroy = true; - notify(); -} - -void -BatchFlusher::run() -{ - for(;;) - { - list<Ice::ObjectPrx> subscribers; - { - IceUtil::Monitor<IceUtil::Mutex>::Lock sync(*this); - if(_destroy) - { - return; - } - if(_subscribers.empty()) - { - wait(); - } - else - { - timedWait(_flushTime); - } - if(_destroy) - { - return; - } - subscribers = _subscribers; - } - - set<Ice::ConnectionPtr> flushSet; - for(list<Ice::ObjectPrx>::const_iterator p = subscribers.begin(); p != subscribers.end(); ++p) - { - Ice::ConnectionPtr connection = (*p)->ice_getCachedConnection(); - if(connection) - { - flushSet.insert(connection); - } - } - - for(set<Ice::ConnectionPtr>::const_iterator q = flushSet.begin(); q != flushSet.end(); ++q) - { - try - { - (*q)->flushBatchRequests(); - } - catch(const Ice::LocalException&) - { - // Ignore. - } - } - - // - // Trace after the flush so that the correct number of objects - // are displayed - // - if(_traceLevels->flush > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->flushCat); - out << "connections: " << flushSet.size() << " subscribers: " << subscribers.size(); - } - } -} diff --git a/cpp/src/IceStorm/BatchFlusher.h b/cpp/src/IceStorm/BatchFlusher.h deleted file mode 100644 index 5c3d19ca6bf..00000000000 --- a/cpp/src/IceStorm/BatchFlusher.h +++ /dev/null @@ -1,56 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#ifndef BATCH_FLUSHER_H -#define BATCH_FLUSHER_H - -#include <IceUtil/Thread.h> -#include <IceUtil/Mutex.h> -#include <IceUtil/Monitor.h> -#include <Ice/ProxyF.h> -#include <list> - -namespace IceStorm -{ - -class Instance; -typedef IceUtil::Handle<Instance> InstancePtr; - -class TraceLevels; -typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr; - -// -// Responsible for flushing Flushable objects at regular intervals. -// -class BatchFlusher : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex> -{ -public: - - BatchFlusher(const InstancePtr&); - ~BatchFlusher(); - - void add(const Ice::ObjectPrx&); - void remove(const Ice::ObjectPrx&); - void destroy(); - - void run(); - -private: - - const TraceLevelsPtr _traceLevels; - const IceUtil::Time _flushTime; - std::list<Ice::ObjectPrx> _subscribers; - bool _destroy; -}; - -typedef IceUtil::Handle<BatchFlusher> BatchFlusherPtr; - -} // End namespace IceStorm - -#endif diff --git a/cpp/src/IceStorm/Election.ice b/cpp/src/IceStorm/Election.ice new file mode 100644 index 00000000000..c49a70b99fa --- /dev/null +++ b/cpp/src/IceStorm/Election.ice @@ -0,0 +1,315 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ELECTION_ICE +#define ELECTION_ICE + +#include <Ice/Identity.ice> +#include <Ice/BuiltinSequences.ice> +#include <IceStorm/SubscriberRecord.ice> + +module IceStormElection +{ + +/** A struct used for marking the last log update. */ +struct LogUpdate +{ + /** The generation. */ + long generation; + /** The iteration within this generation. */ + long iteration; +}; + +/** The contents of topic. */ +struct TopicContent +{ + /** The topic identity. */ + Ice::Identity id; + /** The topic subscribers. */ + IceStorm::SubscriberRecordSeq records; +}; + +/** A sequence of topic content. */ +sequence<TopicContent> TopicContentSeq; + +/** Thrown if an observer detects an inconsistency. */ +exception ObserverInconsistencyException +{ + /** The reason for the inconsistency. */ + string reason; +}; + +/** The replica observer. */ +interface ReplicaObserver +{ + /** + * + * Initialize the observer. + * + * @param llu The last log update seen by the master. + * + * @param content The topic content. + * + * @throws ObserverInconsistencyException Raised if an + * inconsisency was detected. + * + **/ + void init(LogUpdate llu, TopicContentSeq content) + throws ObserverInconsistencyException; + + /** + * + * Create the topic with the given name. + * + * @param llu The log update token. + * + * @param name The topic name. + * + * @throws ObserverInconsistencyException Raised if an + * inconsisency was detected. + * + **/ + ["ami"] void createTopic(LogUpdate llu, string name) + throws ObserverInconsistencyException; + + /** + * + * Destroy the topic with the given name. + * + * @param llu The log update token. + * + * @param name The topic name. + * + * @throws ObserverInconsistencyException Raised if an + * inconsisency was detected. + * + **/ + ["ami"] void destroyTopic(LogUpdate llu, string name) + throws ObserverInconsistencyException; + + /** + * + * Add a subscriber to a topic. + * + * @param llu The log update token. + * + * @param topic The topic name to which to add the subscriber. + * + * @param record The subscriber information. + * + * @throws ObserverInconsistencyException Raised if an + * inconsisency was detected. + * + **/ + ["ami"] void addSubscriber(LogUpdate llu, string topic, IceStorm::SubscriberRecord record) + throws ObserverInconsistencyException; + + /** + * + * Remove a subscriber from a topic. + * + * @param llu The log update token. + * + * @param name The topic name. + * + * @param subscribers The identities of the subscribers to remove. + * + * @throws ObserverInconsistencyException Raised if an + * inconsisency was detected. + * + **/ + ["ami"] void removeSubscriber(LogUpdate llu, string topic, Ice::IdentitySeq subscribers) + throws ObserverInconsistencyException; +}; + +/** Interface used to sync topics. */ +interface TopicManagerSync +{ + /** + * Retrieve the topic content. + * + * @param llu The last log update token. + * + * @param content The topic content. + * + **/ + void getContent(out LogUpdate llu, out TopicContentSeq content); +}; + +/** The node state. */ +enum NodeState +{ + /** The node is inactive and awaiting an election. */ + NodeStateInactive, + /** The node is electing a leader. */ + NodeStateElection, + /** The replica group is reorganizing. */ + NodeStateReorganization, + /** The replica group is active & replicating. */ + NodeStateNormal +}; + +/** Forward declaration. */ +interface Node; + +/** All nodes in the replication group. */ +struct NodeInfo +{ + /** The identity of the node. */ + int id; + /** The node proxy. */ + Node* n; +}; + +/** A sequence of node info. */ +sequence<NodeInfo> NodeInfoSeq; + +/** The group info. */ +struct GroupInfo +{ + /** The identity of the node. */ + int id; + /** The last known log update for this node. */ + LogUpdate llu; +}; +/** A sequence of group info. */ +sequence<GroupInfo> GroupInfoSeq; + +struct QueryInfo +{ + /** The node id. */ + int id; + + /** The nodes coordinator. */ + int coord; + + /** The nodes group name. */ + string group; + + /** The replica the node is managing. */ + Object* replica; + + /** The node state. */ + NodeState state; + + /** The sequence of nodes in this nodes group. */ + GroupInfoSeq up; + + /** The highest priority node that this node has seen. */ + int max; +}; + +/** A replica node. */ +interface Node +{ + /** + * + * Invite the node into a group with the given coordinator and + * group name. + * + * @param gn The group name. + * + * @param j The group coordinator. + * + **/ + void invitation(int j, string gn); + + /** + * + * Call from the group coordinator to a node to inform the node + * that the replica group is active. + * + * @param j The group coordinator. + * + * @param gn The group name. + * + * @param coordinator The proxy to the coordinator. + * + * @param max The highest priority node seen by this replica + * group. + * + * @param generation The current generation count. + */ + void ready(int j, string gn, Object* coordinator, int max, long generation); + + /** + * + * Called to accept an invitation into + * the given group. + * + * @param j The id of the node accepting the invitation. + * + * @param observer The observer. + * + * @param gn The group name. + * + * @param forwardedInvites The ids of the nodes to which + * invitations were forwarded. + * + * @param llu The last log update for the given node. + * + * @param max The highest priority node seen by this replica + * group. + * + **/ + void accept(int j, string gn, Ice::IntSeq forwardedInvites, Object* observer, LogUpdate llu, int max); + + /** + * + * Determine if this node is a coordinator. + * + * @return True if the node is a coordinator, false otherwise. + **/ + ["cpp:const"] idempotent bool areYouCoordinator(); + + /** + * + * Determine if the node is a member of the given group with the + * given coordinator. + * + * @param gn The group name. + * + * @param j The group coordinator. + * + * @return True if the node is a member, false otherwise. + * + **/ + ["cpp:const"] idempotent bool areYouThere(string gn, int j); + + /** + * + * Get the sync object for the replica hosted by this node. + * + * @return The sync object. + * + **/ + ["cpp:const"] idempotent Object* sync(); + + /** + * + * Get the replication group information. + * + * @return The set of configured nodes and the associated + * priority. + * + **/ + ["cpp:const"] idempotent NodeInfoSeq nodes(); + /** + * + * Get the query information for the given node. + * + * @return The query information. + * + **/ + ["cpp:const"] idempotent QueryInfo query(); +}; + +}; + +#endif diff --git a/cpp/src/IceStorm/Grammar.y b/cpp/src/IceStorm/Grammar.y index 2b38936ad0f..a2edb7a8a93 100644 --- a/cpp/src/IceStorm/Grammar.y +++ b/cpp/src/IceStorm/Grammar.y @@ -48,6 +48,7 @@ yyerror(const char* s) %token ICE_STORM_UNLINK %token ICE_STORM_LINKS %token ICE_STORM_TOPICS +%token ICE_STORM_REPLICA %token ICE_STORM_STRING %% @@ -113,6 +114,10 @@ command { parser->topics($2); } +| ICE_STORM_REPLICA strings ';' +{ + parser->replica($2); +} | ICE_STORM_STRING error ';' { parser->invalidCommand("unknown command `" + $1.front() + "' (type `help' for more info)"); diff --git a/cpp/src/IceStorm/IceStormInternal.ice b/cpp/src/IceStorm/IceStormInternal.ice index f6ed93e8fff..e9952e05139 100644 --- a/cpp/src/IceStorm/IceStormInternal.ice +++ b/cpp/src/IceStorm/IceStormInternal.ice @@ -11,8 +11,12 @@ #define ICE_STORM_INTERNAL_ICE #include <IceStorm/IceStorm.ice> +#include <IceStorm/Election.ice> #include <Ice/Current.ice> #include <Ice/BuiltinSequences.ice> +#include <Ice/Identity.ice> + +[["cpp:include:deque"]] module IceStorm { @@ -35,7 +39,7 @@ module IceStorm }; /** A sequence of EventData. */ -sequence<EventData> EventDataSeq; +["cpp:type:std::deque< ::IceStorm::EventDataPtr>"] sequence<EventData> EventDataSeq; /** * @@ -57,6 +61,11 @@ interface TopicLink ["ami"] void forward(EventDataSeq events); }; +/** Thrown if the reap call would block. */ +exception ReapWouldBlock +{ +}; + /** * * Internal operations for a topic. @@ -74,6 +83,37 @@ interface TopicInternal extends Topic * **/ idempotent TopicLink* getLinkProxy(); + + /** + * + * Reap the given identities. + * + * @param id The sequence of identities. + * + * @throws ReapWouldBlock Raised if the reap call would block. + * + **/ + ["ami"] void reap(Ice::IdentitySeq id) throws ReapWouldBlock; +}; + +/** + * + * Internal operations for a topic manager. + * + * @see TopicManager + * + **/ +interface TopicManagerInternal extends TopicManager +{ + /** + * + * Return the replica node proxy for this topic manager. + * + * @return The replica proxy, or null if this instance is not + * replicated. + * + **/ + ["cpp:const"] idempotent IceStormElection::Node* getReplicaNode(); }; }; // End module IceStorm diff --git a/cpp/src/IceStorm/Instance.cpp b/cpp/src/IceStorm/Instance.cpp index c99a2f19444..16ab7555954 100644 --- a/cpp/src/IceStorm/Instance.cpp +++ b/cpp/src/IceStorm/Instance.cpp @@ -8,40 +8,68 @@ // ********************************************************************** #include <IceStorm/Instance.h> -#include <IceStorm/BatchFlusher.h> #include <IceStorm/TraceLevels.h> -#include <IceStorm/SubscriberPool.h> +#include <IceStorm/Observers.h> +#include <IceStorm/NodeI.h> +#include <IceUtil/Timer.h> #include <Ice/Communicator.h> #include <Ice/Properties.h> -using namespace IceStorm; using namespace std; +using namespace IceStorm; +using namespace IceStormElection; Instance::Instance( const string& instanceName, const string& name, const Ice::CommunicatorPtr& communicator, - const Ice::ObjectAdapterPtr& adapter) : + const Ice::ObjectAdapterPtr& publishAdapter, + const Ice::ObjectAdapterPtr& topicAdapter, + bool iceGridDeployment, + const Ice::ObjectAdapterPtr& nodeAdapter, + const NodePrx& nodeProxy) : _instanceName(instanceName), + _serviceName(name), _communicator(communicator), - _adapter(adapter), + _publishAdapter(publishAdapter), + _topicAdapter(topicAdapter), + _nodeAdapter(nodeAdapter), + _nodeProxy(nodeProxy), _traceLevels(new TraceLevels(name, communicator->getProperties(), communicator->getLogger())), _discardInterval(IceUtil::Time::seconds(communicator->getProperties()->getPropertyAsIntWithDefault( - "IceStorm.Discard.Interval", 60))), // default one minute. + name + ".Discard.Interval", 60))), // default one minute. + _flushInterval(IceUtil::Time::milliSeconds(communicator->getProperties()->getPropertyAsIntWithDefault( + name + ".Flush.Timeout", 1000))), // default one second. // default one minute. - _sendTimeout(communicator->getProperties()->getPropertyAsIntWithDefault("IceStorm.Send.Timeout", 60 * 1000)) + _sendTimeout(communicator->getProperties()->getPropertyAsIntWithDefault(name + ".Send.Timeout", 60 * 1000)) { try { __setNoDelete(true); - _batchFlusher = new BatchFlusher(this); - _subscriberPool = new SubscriberPool(this); + if(!iceGridDeployment) + { + Ice::PropertiesPtr properties = communicator->getProperties(); + string p = properties->getProperty(name + ".ReplicatedTopicManagerEndpoints"); + if(!p.empty()) + { + const_cast<Ice::ObjectPrx&>(_topicReplicaProxy) = communicator->stringToProxy("dummy:" + p); + } + p = properties->getProperty(name + ".ReplicatedPublishEndpoints"); + if(!p.empty()) + { + const_cast<Ice::ObjectPrx&>(_publisherReplicaProxy) = communicator->stringToProxy("dummy:" + p); + } + } + _observers = new Observers(this); + _batchFlusher = new IceUtil::Timer(); + _timer = new IceUtil::Timer(); } catch(...) { shutdown(); + destroy(); __setNoDelete(false); throw; @@ -51,6 +79,13 @@ Instance::Instance( Instance::~Instance() { + //cout << "~Instance" << endl; +} + +void +Instance::setNode(const NodeIPtr& node) +{ + _node = node; } string @@ -59,6 +94,12 @@ Instance::instanceName() const return _instanceName; } +string +Instance::serviceName() const +{ + return _serviceName; +} + Ice::CommunicatorPtr Instance::communicator() const { @@ -72,9 +113,39 @@ Instance::properties() const } Ice::ObjectAdapterPtr -Instance::objectAdapter() const +Instance::publishAdapter() const { - return _adapter; + return _publishAdapter; +} + +Ice::ObjectAdapterPtr +Instance::topicAdapter() const +{ + return _topicAdapter; +} + +Ice::ObjectAdapterPtr +Instance::nodeAdapter() const +{ + return _nodeAdapter; +} + +ObserversPtr +Instance::observers() const +{ + return _observers; +} + +NodeIPtr +Instance::node() const +{ + return _node; +} + +NodePrx +Instance::nodeProxy() const +{ + return _nodeProxy; } TraceLevelsPtr @@ -83,16 +154,28 @@ Instance::traceLevels() const return _traceLevels; } -BatchFlusherPtr +IceUtil::TimerPtr Instance::batchFlusher() const { return _batchFlusher; } -SubscriberPoolPtr -Instance::subscriberPool() const +IceUtil::TimerPtr +Instance::timer() const +{ + return _timer; +} + +Ice::ObjectPrx +Instance::topicReplicaProxy() const +{ + return _topicReplicaProxy; +} + +Ice::ObjectPrx +Instance::publisherReplicaProxy() const { - return _subscriberPool; + return _publisherReplicaProxy; } IceUtil::Time @@ -101,6 +184,12 @@ Instance::discardInterval() const return _discardInterval; } +IceUtil::Time +Instance::flushInterval() const +{ + return _flushInterval; +} + int Instance::sendTimeout() const { @@ -110,14 +199,32 @@ Instance::sendTimeout() const void Instance::shutdown() { - if(_batchFlusher) + if(_node) { - _batchFlusher->destroy(); - _batchFlusher->getThreadControl().join(); + _node->destroy(); + assert(_nodeAdapter); + _nodeAdapter->destroy(); + } + + _topicAdapter->destroy(); + _publishAdapter->destroy(); + + if(_timer) + { + _timer->destroy(); } +} - if(_subscriberPool) +void +Instance::destroy() +{ + if(_batchFlusher) { - _subscriberPool->destroy(); + _batchFlusher->destroy(); } + + // The node instance must be cleared as the node holds the + // replica (TopicManager) which holds the instance causing a + // cyclic reference. + _node = 0; } diff --git a/cpp/src/IceStorm/Instance.h b/cpp/src/IceStorm/Instance.h index 19e8801bdcf..0f38c70da6d 100644 --- a/cpp/src/IceStorm/Instance.h +++ b/cpp/src/IceStorm/Instance.h @@ -15,49 +15,86 @@ #include <Ice/ObjectAdapterF.h> #include <Ice/PropertiesF.h> #include <IceUtil/Time.h> +#include <IceStorm/Election.h> -namespace IceStorm +namespace IceUtil +{ + +class Timer; +typedef IceUtil::Handle<Timer> TimerPtr; + +} + +namespace IceStormElection { -class BatchFlusher; -typedef IceUtil::Handle<BatchFlusher> BatchFlusherPtr; +class Observers; +typedef IceUtil::Handle<Observers> ObserversPtr; + +class NodeI; +typedef IceUtil::Handle<NodeI> NodeIPtr; + +} + +namespace IceStorm +{ class TraceLevels; typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr; -class SubscriberPool; -typedef IceUtil::Handle<SubscriberPool> SubscriberPoolPtr; - class Instance : public IceUtil::Shared { public: - Instance(const std::string&, const std::string&, const Ice::CommunicatorPtr&, const Ice::ObjectAdapterPtr&); + Instance(const std::string&, const std::string&, const Ice::CommunicatorPtr&, const Ice::ObjectAdapterPtr&, + const Ice::ObjectAdapterPtr&, bool = false, const Ice::ObjectAdapterPtr& = 0, + const IceStormElection::NodePrx& = 0); ~Instance(); + void setNode(const IceStormElection::NodeIPtr&); + std::string instanceName() const; + std::string serviceName() const; Ice::CommunicatorPtr communicator() const; Ice::PropertiesPtr properties() const; - Ice::ObjectAdapterPtr objectAdapter() const; + Ice::ObjectAdapterPtr publishAdapter() const; + Ice::ObjectAdapterPtr topicAdapter() const; + Ice::ObjectAdapterPtr nodeAdapter() const; + IceStormElection::ObserversPtr observers() const; + IceStormElection::NodeIPtr node() const; + IceStormElection::NodePrx nodeProxy() const; TraceLevelsPtr traceLevels() const; - BatchFlusherPtr batchFlusher() const; - SubscriberPoolPtr subscriberPool() const; + IceUtil::TimerPtr batchFlusher() const; + IceUtil::TimerPtr timer() const; + Ice::ObjectPrx topicReplicaProxy() const; + Ice::ObjectPrx publisherReplicaProxy() const; IceUtil::Time discardInterval() const; + IceUtil::Time flushInterval() const; int sendTimeout() const; void shutdown(); + void destroy(); private: const std::string _instanceName; + const std::string _serviceName; const Ice::CommunicatorPtr _communicator; - const Ice::ObjectAdapterPtr _adapter; + const Ice::ObjectAdapterPtr _publishAdapter; + const Ice::ObjectAdapterPtr _topicAdapter; + const Ice::ObjectAdapterPtr _nodeAdapter; + const IceStormElection::NodePrx _nodeProxy; const TraceLevelsPtr _traceLevels; const IceUtil::Time _discardInterval; + const IceUtil::Time _flushInterval; const int _sendTimeout; - BatchFlusherPtr _batchFlusher; - SubscriberPoolPtr _subscriberPool; + const Ice::ObjectPrx _topicReplicaProxy; + const Ice::ObjectPrx _publisherReplicaProxy; + IceStormElection::NodeIPtr _node;; + IceStormElection::ObserversPtr _observers; + IceUtil::TimerPtr _batchFlusher; + IceUtil::TimerPtr _timer; }; typedef IceUtil::Handle<Instance> InstancePtr; diff --git a/cpp/src/IceStorm/LinkRecord.ice b/cpp/src/IceStorm/LinkRecord.ice index f866a718dd4..688091b36eb 100644 --- a/cpp/src/IceStorm/LinkRecord.ice +++ b/cpp/src/IceStorm/LinkRecord.ice @@ -11,13 +11,11 @@ #define LINK_RECORD_ICE #include <Ice/Identity.ice> +#include <IceStorm/IceStormInternal.ice> module IceStorm { -interface TopicLink; -interface Topic; - /** * * Used to store persistent information for Topic federation. diff --git a/cpp/src/IceStorm/LoggerI.cpp b/cpp/src/IceStorm/LoggerI.cpp new file mode 100644 index 00000000000..ba7baa1212f --- /dev/null +++ b/cpp/src/IceStorm/LoggerI.cpp @@ -0,0 +1,108 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceUtil/Time.h> +#include <Ice/Ice.h> +#include <Ice/Plugin.h> +#include <IceStorm/LoggerI.h> +#include <IceUtil/StaticMutex.h> + +#include <IceStorm/Service.h> // For ICE_STORM_API + +using namespace std; +using namespace IceStorm; + +static IceUtil::StaticMutex outputMutex = ICE_STATIC_MUTEX_INITIALIZER; + +LoggerI::LoggerI() +{ +} + +void +LoggerI::setPrefix(const string& prefix) +{ + _prefix = prefix + ": "; +} + +void +LoggerI::print(const string& message) +{ + IceUtil::StaticMutex::Lock sync(outputMutex); + + cerr << message << endl; +} + +void +LoggerI::trace(const string& category, const string& message) +{ + string s = "[ " + IceUtil::Time::now().toDateTime() + " " + _prefix; + if(!category.empty()) + { + s += category + ": "; + } + s += message + " ]"; + + string::size_type idx = 0; + while((idx = s.find("\n", idx)) != string::npos) + { + s.insert(idx + 1, " "); + ++idx; + } + + IceUtil::StaticMutex::Lock sync(outputMutex); + + cerr << s << endl; +} + +void +LoggerI::warning(const string& message) +{ + IceUtil::StaticMutex::Lock sync(outputMutex); + + cerr << IceUtil::Time::now().toDateTime() << " " << _prefix << "warning: " << message << endl; +} + +void +LoggerI::error(const string& message) +{ + IceUtil::StaticMutex::Lock sync(outputMutex); + + cerr << IceUtil::Time::now().toDateTime() << " " << _prefix << "error: " << message << endl; +} + +namespace +{ + +class LoggerPluginI : public Ice::LoggerPlugin +{ +public: + + virtual void initialize() { } + + virtual void destroy() { } + + virtual ::Ice::LoggerPtr getLogger() + { + return new LoggerI(); + } +}; + +} + +extern "C" +{ + +ICE_STORM_API ::Ice::Plugin* +createLogger(const Ice::CommunicatorPtr& communicator, const string&, const Ice::StringSeq&) +{ + return new LoggerPluginI(); +} + +} diff --git a/cpp/src/IceStorm/LoggerI.h b/cpp/src/IceStorm/LoggerI.h new file mode 100644 index 00000000000..eec3d2d52c3 --- /dev/null +++ b/cpp/src/IceStorm/LoggerI.h @@ -0,0 +1,40 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ICE_STORM_LOGGER_I_H +#define ICE_STORM_LOGGER_I_H + +#include <Ice/Logger.h> + +namespace IceStorm +{ + +class LoggerI : public Ice::Logger +{ +public: + + LoggerI(); + + void setPrefix(const std::string&); + + virtual void print(const std::string&); + virtual void trace(const std::string&, const std::string&); + virtual void warning(const std::string&); + virtual void error(const std::string&); + +private: + + std::string _prefix; +}; + +typedef IceUtil::Handle<LoggerI> LoggerIPtr; + +} + +#endif diff --git a/cpp/src/IceStorm/Makefile b/cpp/src/IceStorm/Makefile index d815aaa2613..7b31d7bfe95 100644 --- a/cpp/src/IceStorm/Makefile +++ b/cpp/src/IceStorm/Makefile @@ -18,37 +18,58 @@ SVCSONAME = $(call mksoname,IceStormService,$(SOVERSION)) SVCLIBNAME = $(call mklibname,IceStormService) ADMIN = $(top_srcdir)/bin/icestormadmin +MIGRATE = $(top_srcdir)/bin/icestormmigrate LIBTARGETS = $(call mklibtargets,$(libdir)/$(LIBFILENAME),$(libdir)/$(SONAME),$(libdir)/$(LIBNAME)) SVCLIBTARGETS = $(call mklibtargets,$(libdir)/$(SVCLIBFILENAME),$(libdir)/$(SVCSONAME),$(libdir)/$(SVCLIBNAME)) -TARGETS = $(LIBTARGETS) $(SVCLIBTARGETS) $(ADMIN) +TARGETS = $(LIBTARGETS) $(SVCLIBTARGETS) $(ADMIN) $(MIGRATE) OBJS = IceStorm.o -SERVICE_OBJS = IceStorm.o \ +SERVICE_OBJS = LoggerI.o \ + NodeI.o \ + Observers.o \ + LLUMap.o \ + Election.o \ + IceStorm.o \ Instance.o \ TraceLevels.o \ - BatchFlusher.o \ - SubscriberPool.o \ Subscriber.o \ TopicI.o \ TopicManagerI.o \ - PersistentTopicMap.o \ - LinkRecord.o \ + TransientTopicI.o \ + TransientTopicManagerI.o \ + SubscriberMap.o \ + SubscriberRecord.o \ IceStormInternal.o \ Service.o AOBJS = Admin.o \ Grammar.o \ Scanner.o \ - Parser.o + Parser.o \ + Election.o \ + SubscriberRecord.o \ + IceStormInternal.o + +MOBJS = Migrate.o \ + SubscriberRecord.o \ + SubscriberMap.o \ + LLUMap.o \ + LinkRecord.o \ + PersistentTopicMap.o \ + IceStormInternal.o \ + Election.o SRCS = $(OBJS:.o=.cpp) \ $(SERVICE_OBJS:.o=.cpp) \ - $(AOBJS:.o=.cpp) + $(AOBJS:.o=.cpp) \ + $(MOBJS:.o=.cpp) SLICE_SRCS = $(SDIR)/IceStorm.ice \ + ../IceStorm/Election.ice \ ../IceStorm/IceStormInternal.ice \ + ../IceStorm/SubscriberRecord.ice \ ../IceStorm/LinkRecord.ice HDIR = $(includedir)/IceStorm @@ -62,7 +83,7 @@ CPPFLAGS := $(CPPFLAGS) -I.. -DICE_STORM_API_EXPORTS $(READLINE_FLAGS) ICECPPFLAGS := $(ICECPPFLAGS) -I.. SLICE2CPPFLAGS := --checksum --ice --dll-export ICE_STORM_API --include-dir IceStorm $(SLICE2CPPFLAGS) LINKWITH := $(BZIP2_RPATH_LINK) -lIce -lIceUtil -SVCLINKWITH := $(DB_RPATH_LINK) -lFreeze -lIceBox $(BZIP2_RPATH_LINK) -lIce -lIceUtil +SVCLINKWITH := $(DB_RPATH_LINK) -lIceGrid -lFreeze -lIceBox $(BZIP2_RPATH_LINK) -lIce -lIceUtil $(libdir)/$(LIBFILENAME): $(OBJS) rm -f $@ @@ -88,11 +109,26 @@ $(libdir)/$(SVCLIBNAME): $(libdir)/$(SVCSONAME) rm -f $@ ln -s $(SVCSONAME) $@ - $(ADMIN): $(AOBJS) $(LIBTARGETS) rm -f $@ - $(CXX) $(LDFLAGS) -o $@ $(AOBJS) -lIceStorm $(EXPAT_RPATH_LINK) -lIceXML $(READLINE_LIBS) $(LIBS) + $(CXX) $(LDFLAGS) -o $@ $(AOBJS) -lIceStorm $(READLINE_LIBS) $(LIBS) + +$(MIGRATE): $(MOBJS) $(LIBTARGETS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(MOBJS) -lIceStorm -lFreeze $(LIBS) + +LLUMap.h LLUMap.cpp: $(SLICE2FREEZE) ../IceStorm/Election.ice + rm -f LLUMap.h LLUMap.cpp + $(SLICE2FREEZECMD) --dict IceStorm::LLUMap,string,IceStormElection::LogUpdate \ + LLUMap ../IceStorm/Election.ice + +SubscriberMap.h SubscriberMap.cpp: ../IceStorm/SubscriberRecord.ice $(slicedir)/Ice/Identity.ice $(SLICE2FREEZE) + rm -f SubscriberMap.h SubscriberMap.cpp + $(SLICE2FREEZECMD) \ + --dict IceStorm::SubscriberMap,IceStorm::SubscriberRecordKey,IceStorm::SubscriberRecord,sort \ + SubscriberMap ../IceStorm/SubscriberRecord.ice +# Needed for migration. PersistentTopicMap.h PersistentTopicMap.cpp: ../IceStorm/LinkRecord.ice $(slicedir)/Ice/Identity.ice $(SLICE2FREEZE) rm -f PersistentTopicMap.h PersistentTopicMap.cpp $(SLICE2FREEZECMD) --dict IceStorm::PersistentTopicMap,Ice::Identity,IceStorm::LinkRecordSeq \ @@ -102,7 +138,9 @@ PersistentTopicMap.h PersistentTopicMap.cpp: ../IceStorm/LinkRecord.ice $(sliced ../IceStorm/Grammar.y: Grammar.h clean:: + -rm -f SubscriberMap.h SubscriberMap.cpp -rm -f PersistentTopicMap.h PersistentTopicMap.cpp + -rm -f LLUMap.h LLUMap.cpp -rm -f Grammar.cpp Grammar.h -rm -f Scanner.cpp @@ -110,5 +148,6 @@ install:: all $(call installlib,$(install_libdir),$(libdir),$(LIBFILENAME),$(SONAME),$(LIBNAME)) $(call installlib,$(install_libdir),$(libdir),$(SVCLIBFILENAME),$(SVCSONAME),$(SVCLIBNAME)) $(call installprogram,$(ADMIN),$(install_bindir)) + $(call installprogram,$(MIGRATE),$(install_bindir)) include .depend diff --git a/cpp/src/IceStorm/Makefile.mak b/cpp/src/IceStorm/Makefile.mak index c2f64032744..100db5d41ad 100644 --- a/cpp/src/IceStorm/Makefile.mak +++ b/cpp/src/IceStorm/Makefile.mak @@ -16,40 +16,58 @@ SVCLIBNAME = $(top_srcdir)\lib\icestormservice$(LIBSUFFIX).lib SVCDLLNAME = $(top_srcdir)\bin\icestormservice$(SOVERSION)$(LIBSUFFIX).dll ADMIN = $(top_srcdir)\bin\icestormadmin.exe +MIGRATE = $(top_srcdir)\bin\icestormmigrate.exe !ifdef BUILD_UTILS -TARGETS = $(ADMIN) +TARGETS = $(SVCLIBNAME) $(SVCDLLNAME) $(ADMIN) $(MIGRATE) !else -TARGETS = $(LIBNAME) $(DLLNAME) $(SVCLIBNAME) $(SVCDLLNAME) +TARGETS = $(LIBNAME) $(DLLNAME) !endif -OBJS = IceStorm.obj \ +OBJS = IceStorm.obj -SERVICE_OBJS = IceStormInternal.obj \ - LinkRecord.obj \ - IceStorm.obj \ +SERVICE_OBJS = LoggerI.obj \ + NodeI.obj \ + Observers.obj \ + LLUMap.obj \ + Election.obj \ Instance.obj \ TraceLevels.obj \ - BatchFlusher.obj \ - SubscriberPool.obj \ Subscriber.obj \ TopicI.obj \ TopicManagerI.obj \ - PersistentTopicMap.obj \ + TransientTopicI.obj \ + TransientTopicManagerI.obj \ + SubscriberMap.obj \ + SubscriberRecord.obj \ + IceStormInternal.obj \ Service.obj AOBJS = Admin.obj \ Grammar.obj \ Scanner.obj \ - Parser.obj + Parser.obj \ + Election.obj \ + SubscriberRecord.obj \ + IceStormInternal.obj + +MOBJS = Migrate.obj \ + SubscriberRecord.obj \ + LLUMap.obj \ + SubscriberMap.obj \ + LinkRecord.obj \ + PersistentTopicMap.obj \ + IceStormInternal.obj \ + Election.obj SRCS = $(OBJS:.obj=.cpp) \ $(SOBJS:.obj=.cpp) \ - $(AOBJS:.obj=.cpp) + $(AOBJS:.obj=.cpp) \ + $(MOBJS:.obj=.cpp) HDIR = $(includedir)\IceStorm SDIR = $(slicedir)\IceStorm @@ -58,21 +76,27 @@ SDIR = $(slicedir)\IceStorm CPPFLAGS = -I.. -Idummyinclude $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN SLICE2CPPFLAGS = --ice --include-dir IceStorm $(SLICE2CPPFLAGS) -I.. -LINKWITH = $(LIBS) freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib -ALINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib icexml$(LIBSUFFIX).lib +LINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib icegrid$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib icebox$(LIBSUFFIX).lib +ALINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib +MLINKWITH = $(LIBS) icestorm$(LIBSUFFIX).lib freeze$(LIBSUFFIX).lib SLICE2FREEZECMD = $(SLICE2FREEZE) --ice --include-dir IceStorm -I.. -I$(slicedir) -!ifndef BUILD_UTILS +!ifdef BUILD_UTILS CPPFLAGS = $(CPPFLAGS) -DICE_STORM_API_EXPORTS +!else + +CPPFLAGS = $(CPPFLAGS) -DICE_STORM_LIB_API_EXPORTS + !endif !if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" PDBFLAGS = /pdb:$(DLLNAME:.dll=.pdb) SPDBFLAGS = /pdb:$(SVCDLLNAME:.dll=.pdb) APDBFLAGS = /pdb:$(ADMIN:.exe=.pdb) +MPDBFLAGS = /pdb:$(MIGRATE:.exe=.pdb) !endif $(LIBNAME): $(DLLNAME) @@ -98,15 +122,40 @@ $(ADMIN): $(AOBJS) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest -..\IceStorm\PersistentTopicMap.h PersistentTopicMap.cpp: ..\IceStorm\LinkRecord.ice $(slicedir)\Ice\Identity.ice $(SLICE2FREEZE) +$(MIGRATE): $(MOBJS) + $(LINK) $(LD_EXEFLAGS) $(MPDBFLAGS) $(MOBJS) $(SETARGV) $(PREOUT)$@ $(PRELIBS)$(MLINKWITH) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +LLUMap.h LLUMap.cpp: $(SLICE2FREEZE) ..\IceStorm\Election.ice + del /q LLUMap.h LLUMap.cpp + $(SLICE2FREEZECMD) --dict IceStorm::LLUMap,string,IceStormElection::LogUpdate LLUMap ..\IceStorm\Election.ice + +..\IceStorm\SubscriberMap.h SubscriberMap.cpp: ..\IceStorm\SubscriberRecord.ice $(slicedir)\Ice\Identity.ice $(SLICE2FREEZE) + del /q SubscriberMap.h SubscriberMap.cpp + $(SLICE2FREEZECMD) \ + --dict IceStorm::SubscriberMap,IceStorm::SubscriberRecordKey,IceStorm::SubscriberRecord,sort \ + SubscriberMap ..\IceStorm\SubscriberRecord.ice + +# Needed for migration. +PersistentTopicMap.h PersistentTopicMap.cpp: ..\IceStorm\LinkRecord.ice $(slicedir)\Ice\Identity.ice $(SLICE2FREEZE) del /q PersistentTopicMap.h PersistentTopicMap.cpp $(SLICE2FREEZECMD) --dict IceStorm::PersistentTopicMap,Ice::Identity,IceStorm::LinkRecordSeq \ PersistentTopicMap ..\IceStorm\LinkRecord.ice +LinkRecord.cpp ..\IceStorm\LinkRecord.h: ..\IceStorm\LinkRecord.ice + $(SLICE2CPP) $(SLICE2CPPFLAGS) ..\IceStorm\LinkRecord.ice + +SubscriberRecord.cpp ..\IceStorm\SubscriberRecord.h: ..\IceStorm\SubscriberRecord.ice + $(SLICE2CPP) $(SLICE2CPPFLAGS) ..\IceStorm\SubscriberRecord.ice + IceStorm.cpp $(HDIR)\IceStorm.h: $(SDIR)\IceStorm.ice - $(SLICE2CPP) --dll-export ICE_STORM_API $(SLICE2CPPFLAGS) $(SDIR)\IceStorm.ice + $(SLICE2CPP) --dll-export ICE_STORM_LIB_API $(SLICE2CPPFLAGS) $(SDIR)\IceStorm.ice move IceStorm.h $(HDIR) +Election.cpp ..\IceStorm\Election.h: ..\IceStorm\Election.ice + $(SLICE2CPP) $(SLICE2CPPFLAGS) ..\IceStorm\Election.ice + Scanner.cpp : Scanner.l flex Scanner.l del /q $@ @@ -124,12 +173,16 @@ Grammar.cpp Grammar.h: Grammar.y !ifdef BUILD_UTILS clean:: + del /q LLUMap.h LLUMap.cpp + del /q SubscriberMap.h SubscriberMap.cpp del /q PersistentTopicMap.h PersistentTopicMap.cpp clean:: del /q IceStorm.cpp $(HDIR)\IceStorm.h del /q IceStormInternal.cpp IceStormInternal.h del /q LinkRecord.cpp LinkRecord.h + del /q Election.cpp Election.h + del /q SubscriberRecord.cpp SubscriberRecord.h del /q $(DLLNAME:.dll=.*) del /q $(SVCDLLNAME:.dll=.*) del /q $(ADMIN:.exe=.*) @@ -144,6 +197,7 @@ install:: all copy $(SVCLIBNAME) $(install_libdir) copy $(SVCDLLNAME) $(install_bindir) copy $(ADMIN) $(install_bindir) + copy $(MIGRATE) $(install_bindir) !if "$(OPTIMIZE)" != "yes" @@ -153,6 +207,7 @@ install:: all copy $(DLLNAME:.dll=.tds) $(install_bindir) copy $(SVCDLLNAME:.dll=.tds) $(install_bindir) copy $(ADMIN:.exe=.tds) $(install_bindir) + copy $(MIGRATE:.exe=.tds) $(install_bindir) !else @@ -160,6 +215,7 @@ install:: all copy $(DLLNAME:.dll=.pdb) $(install_bindir) copy $(SVCDLLNAME:.dll=.pdb) $(install_bindir) copy $(ADMIN:.exe=.pdb) $(install_bindir) + copy $(MIGRATE:.exe=.pdb) $(install_bindir) !endif @@ -170,7 +226,7 @@ install:: all install:: all $(EVERYTHING):: - @$(MAKE) -nologo /f Makefile.mak BUILD_UTILS=1 $@ + $(MAKE) -nologo /f Makefile.mak BUILD_UTILS=1 $@ !endif diff --git a/cpp/src/IceStorm/Migrate.cpp b/cpp/src/IceStorm/Migrate.cpp new file mode 100644 index 00000000000..f4f3132f6a8 --- /dev/null +++ b/cpp/src/IceStorm/Migrate.cpp @@ -0,0 +1,129 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceStorm/PersistentTopicMap.h> +#include <IceStorm/SubscriberMap.h> +#include <IceStorm/IceStormInternal.h> +#include <IceStorm/LLUMap.h> +#include <Freeze/Freeze.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; + +class Client : public Application +{ +public: + + void usage(); + virtual int run(int, char*[]); +}; + +int +main(int argc, char* argv[]) +{ + Client app; + int rc = app.main(argc, argv); + return rc; +} + +void +Client::usage() +{ + cerr << "Usage: " << appName() << " old-env new-env\n"; +} + +string +identityToTopicName(const Ice::Identity& id) +{ + // + // Work out the topic name. If the category is empty then we're in + // backwards compatibility mode and the name is just + // identity.name. Otherwise identity.name is topic.<topicname>. + // + if(id.category.empty()) + { + return id.name; + } + + assert(id.name.length() > 6 && id.name.compare(0, 6, "topic.") == 0); + return id.name.substr(6); +} + +int +Client::run(int argc, char* argv[]) +{ + if(argc != 3) + { + usage(); + return EXIT_FAILURE; + } + string oldEnvName = argv[1]; + string newEnvName = argv[2]; + + if(oldEnvName == newEnvName) + { + cerr << argv[0] << ": database environment names must be different" << endl; + return EXIT_FAILURE; + } + + Freeze::ConnectionPtr oldCon = Freeze::createConnection(communicator(), oldEnvName); + Freeze::ConnectionPtr newCon = Freeze::createConnection(communicator(), newEnvName); + + // We should not create the old database. + PersistentTopicMap topicMap(oldCon, "topics", false); + // Creating the new database is fine. + SubscriberMap subscriberMap(newCon, "subscribers"); + LLUMap lluMap(newCon, "llu"); + + Freeze::TransactionHolder oldTxn(oldCon); + Freeze::TransactionHolder newTxn(newCon); + for(PersistentTopicMap::const_iterator p = topicMap.begin(); p != topicMap.end(); ++p) + { + // First the placeholder record for the topic. + SubscriberRecordKey key; + key.topic = p->first; + SubscriberRecord rec; + rec.link = false; + rec.cost = 0; + subscriberMap.put(SubscriberMap::value_type(key, rec)); + + string topicName = identityToTopicName(key.topic); + + // Next each link. + for(LinkRecordSeq::const_iterator q = p->second.begin(); q != p->second.end(); ++q) + { + Ice::Identity id = q->theTopic->ice_getIdentity(); + key.id = id; + + rec.id = id; + rec.obj = q->obj; + rec.theTopic = q->theTopic; + rec.topicName = topicName; + rec.link = true; + rec.cost = q->cost; + + subscriberMap.put(SubscriberMap::value_type(key, rec)); + } + } + + // We need to write a record in the LLU map so that if this + // database is used for a migration this database will be picked + // as the latest. We use generation 1 since the default is 0. + IceStormElection::LogUpdate llu; + llu.generation = 1; + llu.iteration = 0; + lluMap.put(LLUMap::value_type("_manager", llu)); + + oldTxn.rollback(); + newTxn.commit(); + + return 0; +} diff --git a/cpp/src/IceStorm/NodeI.cpp b/cpp/src/IceStorm/NodeI.cpp new file mode 100644 index 00000000000..b0ff4bb1bb5 --- /dev/null +++ b/cpp/src/IceStorm/NodeI.cpp @@ -0,0 +1,1246 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceStorm/NodeI.h> +#include <IceStorm/Observers.h> +#include <IceStorm/TraceLevels.h> + +using namespace IceStorm; +using namespace IceStormElection; +using namespace std; + +namespace +{ + +bool operator==(const GroupNodeInfo& info, int id) +{ + return info.id == id; +} + +class CheckTask : public IceUtil::TimerTask +{ + const NodeIPtr _node; + +public: + + CheckTask(const NodeIPtr& node) : _node(node) { } + virtual void runTimerTask() + { + _node->check(); + } +}; + +class MergeTask : public IceUtil::TimerTask +{ + const NodeIPtr _node; + const set<int> _s; + +public: + + MergeTask(const NodeIPtr& node, const set<int>& s) : _node(node), _s(s) { } + virtual void runTimerTask() + { + _node->merge(_s); + } +}; + +class MergeContinueTask : public IceUtil::TimerTask +{ + const NodeIPtr _node; + +public: + + MergeContinueTask(const NodeIPtr& node) : _node(node) { } + virtual void runTimerTask() + { + _node->mergeContinue(); + } +}; + +class TimeoutTask: public IceUtil::TimerTask +{ + const NodeIPtr _node; + +public: + + TimeoutTask(const NodeIPtr& node) : _node(node) { } + virtual void runTimerTask() + { + _node->timeout(); + } +}; + +} + +namespace +{ + +LogUpdate emptyLU = {0, 0}; + +} + +GroupNodeInfo::GroupNodeInfo(int i) : + id(i), llu(emptyLU) +{ +} + +GroupNodeInfo::GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o) : + id(i), llu(l), observer(o) +{ +} + +bool +GroupNodeInfo::operator<(const GroupNodeInfo& rhs) const +{ + return id < rhs.id; +} + +bool +GroupNodeInfo::operator==(const GroupNodeInfo& rhs) const +{ + return id == rhs.id; +} + +Replica::~Replica() +{ + //cout << "~Replica" << endl; +} + +namespace +{ +static IceUtil::Time +getTimeout(const string& key, int def, const Ice::PropertiesPtr& properties, const TraceLevelsPtr& traceLevels) +{ + int t = properties->getPropertyAsIntWithDefault(key, def); + if(t < 0) + { + Ice::Warning out(traceLevels->logger); + out << traceLevels->electionCat << ": " << key << " < 0; Adjusted to 1"; + t = 1; + } + return IceUtil::Time::seconds(t); +} + +static string +toString(const set<int>& s) +{ + ostringstream os; + os << "("; + for(set<int>::const_iterator p = s.begin(); p != s.end(); ++p) + { + if(p != s.begin()) + { + os << ","; + } + os << *p; + } + os << ")"; + return os.str(); +} + +} + +NodeI::NodeI(const InstancePtr& instance, + const ReplicaPtr& replica, + const Ice::ObjectPrx& replicaProxy, + int id, const map<int, NodePrx>& nodes) : + _timer(instance->timer()), + _traceLevels(instance->traceLevels()), + _observers(instance->observers()), + _replica(replica), + _replicaProxy(replicaProxy), + _id(id), + _nodes(nodes), + _state(NodeStateInactive), + _updateCounter(0), + _max(0), + _generation(-1), + _destroy(false) +{ + map<int, NodePrx> oneway; + for(map<int, NodePrx>::const_iterator p = _nodes.begin(); p != _nodes.end(); ++p) + { + oneway[p->first] = NodePrx::uncheckedCast(p->second->ice_oneway()); + } + const_cast<map<int, NodePrx>& >(_nodesOneway) = oneway; + + Ice::PropertiesPtr properties = instance->communicator()->getProperties(); + const_cast<IceUtil::Time&>(_masterTimeout) = getTimeout( + instance->serviceName() + ".Election.MasterTimeout", 10, properties, _traceLevels); + const_cast<IceUtil::Time&>(_electionTimeout) = getTimeout( + instance->serviceName() + ".Election.ElectionTimeout", 10, properties, _traceLevels); + const_cast<IceUtil::Time&>(_mergeTimeout) = getTimeout( + instance->serviceName() + ".Election.ResponseTimeout", 10, properties, _traceLevels); +} + +NodeI::~NodeI() +{ + //cout << "~NodeI" << endl; +} + +void +NodeI::start() +{ + // As an optimization we want the initial election to occur as + // soon as possible. + // + // However, if we have the node trigger the election immediately + // upon startup then we'll have a clash with lower priority nodes + // starting an election denying a higher priority node the + // opportunity to start the election that results in it becoming + // the leader. Of course, things will eventually reach a stable + // state but it will take longer. + // + // As such as we schedule the initial election check inversely + // proportional to our priority. + // + // By setting _checkTask first we stop recovery() from setting it + // to the regular election interval. + // + _checkTask = new CheckTask(this); + _timer->schedule(_checkTask, IceUtil::Time::seconds((_nodes.size() - _id) * 2)); + recovery(); +} + +void +NodeI::check() +{ + { + Lock sync(*this); + if(_destroy) + { + return; + } + assert(!_mergeTask); + + if(_state == NodeStateElection || _state == NodeStateReorganization || _coord != _id) + { + assert(_checkTask); + _timer->schedule(_checkTask, _electionTimeout); + return; + } + + // Next get the set of nodes that were detected as unreachable + // from the replica and remove them from our slave list. + vector<int> dead; + _observers->getReapedSlaves(dead); + if(!dead.empty()) + { + for(vector<int>::const_iterator p = dead.begin(); p != dead.end(); ++p) + { + set<GroupNodeInfo>::iterator q = _up.find(GroupNodeInfo(*p)); + if(q != _up.end()) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": reaping slave " << *p; + } + _up.erase(q); + } + } + + // If we no longer have the majority of the nodes under our + // care then we need to stop our replica. + if(_up.size() < _nodes.size()/2) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": stopping replica"; + } + // Clear _checkTask -- recovery() will reset the + // timer. + assert(_checkTask); + _checkTask = 0; + recovery(); + return; + } + } + } + + // See if other groups exist for possible merge. + set<int> tmpset; + int max = -1; + for(map<int, NodePrx>::const_iterator p = _nodes.begin(); p != _nodes.end(); ++p) + { + if(p->first == _id) + { + continue; + } + try + { + if(p->second->areYouCoordinator()) + { + if(p->first > max) + { + max = p->first; + } + tmpset.insert(p->first); + } + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": call on node " << p->first << " failed: " << ex; + } + } + } + + Lock sync(*this); + + // If the node state has changed while the mutex has been released + // then bail. We don't schedule a re-check since we're either + // destroyed in which case we're going to terminate or the end of + // the election/reorg will re-schedule the check. + if(_destroy || _state == NodeStateElection || _state == NodeStateReorganization || _coord != _id) + { + return; + } + + // If we didn't find any coordinators then we're done. Reschedule + // the next check and terminate. + if(tmpset.empty()) + { + assert(_checkTask); + _timer->schedule(_checkTask, _electionTimeout); + return; + } + + // _checkTask == 0 means that the check isn't scheduled. + _checkTask = 0; + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": highest priority node count: " << max; + } + + IceUtil::Time delay = IceUtil::Time::seconds(0); + if(_id < max) + { + // Reschedule timer proportial to p-i. + delay = _mergeTimeout + _mergeTimeout * (max - _id); + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": scheduling merge in " << delay.toDuration() + << " seconds"; + } + } + + assert(!_mergeTask); + _mergeTask = new MergeTask(this, tmpset); + _timer->schedule(_mergeTask, delay); +} + +// Called if the node has not heard from the coordinator in some time. +void +NodeI::timeout() +{ + int myCoord; + string myGroup; + { + Lock sync(*this); + // If we're destroyed or we are our own coordinator then we're + // done. + if(_destroy || _coord == _id) + { + return; + } + myCoord = _coord; + myGroup = _group; + } + + bool failed = false; + try + { + map<int, NodePrx>::const_iterator p = _nodes.find(myCoord); + assert(p != _nodes.end()); + if(!p->second->areYouThere(myGroup, _id)) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": lost connection to coordinator " << myCoord + << ": areYouThere returned false"; + } + failed = true; + } + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": lost connection to coordinator " << myCoord << ": " << ex; + } + failed = true; + } + if(failed) + { + recovery(); + } +} + +void +NodeI::merge(const set<int>& coordinatorSet) +{ + set<int> invited; + string gp; + { + Lock sync(*this); + _mergeTask = 0; + + // If the node is currently in an election, or reorganizing + // then we're done. + if(_state == NodeStateElection || _state == NodeStateReorganization) + { + return; + } + + // This state change prevents this node from accepting + // invitations while the merge is executing. + setState(NodeStateElection); + + // No more replica changes are permitted. + while(!_destroy && _updateCounter > 0) + { + wait(); + } + if(_destroy) + { + return; + } + + ostringstream os; + os << _id << ":" << IceUtil::generateUUID(); + _group = os.str(); + gp = _group; + + _invitesAccepted.clear(); + _invitesIssued.clear(); + + // Construct a set of node ids to invite. This is the union of + // _up and set of coordinators gathered in the check stage. + invited = coordinatorSet; + for(set<GroupNodeInfo>::const_iterator p = _up.begin(); p != _up.end(); ++p) + { + invited.insert(p->id); + } + + _coord = _id; + _up.clear(); + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": inviting " << toString(invited) << " to group " << _group; + } + } + + set<int>::iterator p = invited.begin(); + while(p != invited.end()) + { + try + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": inviting node " << *p << " to group " << gp; + } + map<int, NodePrx>::const_iterator node = _nodesOneway.find(*p); + assert(node != _nodesOneway.end()); + node->second->invitation(_id, gp); + ++p; + } + catch(const Ice::Exception&) + { + invited.erase(p++); + } + } + + // Now we wait for responses to our invitation. + { + Lock sync(*this); + if(_destroy) + { + return; + } + + // Add each of the invited nodes in the invites issed set. + _invitesIssued.insert(invited.begin(), invited.end()); + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": invites pending: " << toString(_invitesIssued); + } + + // Schedule the mergeContinueTask. + assert(_mergeContinueTask == 0); + _mergeContinueTask = new MergeContinueTask(this); + + // At this point we may have already accepted all of the + // invitations, if so then we want to schedule the + // mergeContinue immediately. + IceUtil::Time timeout = _mergeTimeout; + if(_up.size() == _nodes.size()-1 || _invitesIssued == _invitesAccepted) + { + timeout = IceUtil::Time::seconds(0); + } + _timer->schedule(_mergeContinueTask, timeout); + } +} + +void +NodeI::mergeContinue() +{ + string gp; + set<GroupNodeInfo> tmpSet; + { + Lock sync(*this); + if(_destroy) + { + return; + } + + // Copy variables for thread safety. + gp = _group; + tmpSet = _up; + + assert(_mergeContinueTask); + _mergeContinueTask = 0; + + // The node is now reorganizing. + assert(_state == NodeStateElection); + setState(NodeStateReorganization); + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": coordinator for " << (tmpSet.size() +1) << " nodes (including myself)"; + } + + // Now we need to decide whether we can start serving content. If + // we're on initial startup then we need all nodes to participate + // in the election. If we're running a subsequent election then we + // need a majority of the nodes to be active in order to start + // running. + unsigned int ingroup = tmpSet.size(); + if(_max != _nodes.size() && ingroup != _nodes.size() -1 || ingroup < _nodes.size()/2) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": not enough nodes " << (ingroup+1) << "/" << _nodes.size() + << " for replication to commence"; + if(_max != _nodes.size()) + { + out << " (require full participation for startup)"; + } + } + recovery(); + return; + } + } + + // Find out who has the highest available set of database + // updates. + int maxid = -1; + LogUpdate maxllu = { -1, 0 }; + set<GroupNodeInfo>::const_iterator p; + for(p = tmpSet.begin(); p != tmpSet.end(); ++p) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node id=" << p->id << " llu=" << p->llu.generation << "/" << p->llu.iteration; + } + if(p->llu.generation > maxllu.generation || + (p->llu.generation == maxllu.generation && p->llu.iteration > maxllu.iteration)) + { + maxid = p->id; + maxllu = p->llu; + } + } + + LogUpdate myLlu = _replica->getLastLogUpdate(); + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node id=" << _id << " llu=" << myLlu.generation << "/" << myLlu.iteration; + } + + // If its not us then we have to get the latest database data from + // the replica with the latest set. + //if(maxllu > _replica->getLastLogUpdate()) + if(maxllu > myLlu) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": syncing database state with node " << maxid; + } + try + { + map<int, NodePrx>::const_iterator node = _nodes.find(maxid); + assert(node != _nodes.end()); + _replica->sync(node->second->sync()); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": syncing database state with node " + << maxid << " failed: " << ex; + } + recovery(); + return; + } + } + else + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": I have the latest database state."; + } + } + + // At this point we've ensured that we have the latest database + // state, as such we can set our _max flag. + unsigned int max = tmpSet.size() + 1; + { + Lock sync(*this); + if(max > _max) + { + _max = max; + } + max = _max; + } + + // Prepare the LogUpdate for this generation. + maxllu.generation++; + maxllu.iteration = 0; + + try + { + // Tell the replica that it is now the master with the given + // set of slaves and llu generation. + _replica->initMaster(tmpSet, maxllu); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": initMaster failed: " << ex; + } + recovery(); + return; + } + + // Tell each node to go. + for(p = tmpSet.begin(); p != tmpSet.end(); ++p) + { + try + { + map<int, NodePrx>::const_iterator node = _nodes.find(p->id); + assert(node != _nodes.end()); + node->second->ready(_id, gp, _replicaProxy, max, maxllu.generation); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": error calling ready on " << p->id << " ex: " << ex; + } + recovery(); + return; + } + } + + { + Lock sync(*this); + if(_destroy) + { + return; + } + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": reporting for duty in group " << _group << " as coordinator. "; + out << "replication commencing with " << _up.size()+1 << "/" << _nodes.size() + << " nodes with llu generation: " << maxllu.generation; + } + setState(NodeStateNormal); + _coordinatorProxy = 0; + + _generation = maxllu.generation; + + assert(!_checkTask); + _checkTask = new CheckTask(this); + _timer->schedule(_checkTask, _electionTimeout); + } +} + +void +NodeI::invitation(int j, const string& gn, const Ice::Current&) +{ + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": invitation from " << j << " to group " << gn; + } + + // Verify that j exists in our node set. + if(_nodes.find(j) == _nodes.end()) + { + Ice::Warning warn(_traceLevels->logger); + warn << _traceLevels->electionCat << ": ignoring invitation from unknown node " << j; + return; + } + + int tmpCoord = -1; + int max = -1; + set<GroupNodeInfo> tmpSet; + { + Lock sync(*this); + if(_destroy) + { + return; + } + // If we're in the election or reorg state a merge has already + // started, so ignore the invitation. + if(_state == NodeStateElection || _state == NodeStateReorganization) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": invitation ignored"; + } + return; + } + + // + // Upon receipt of an invitation we cancel any pending merge + // task. + // + if(_mergeTask) + { + // If the timer doesn't cancel it means that the timer has + // fired and the merge is currently in-progress in which + // case we should reject the invitation. + if(!_timer->cancel(_mergeTask)) + { + // The merge task is cleared in the merge. This + // ensures two invitations cannot cause a race with + // the merge. + //_mergeTask = 0; + return; + } + _mergeTask = 0; + } + + // We're now joining with another group. If we are active we + // must stop serving as a master or slave. + setState(NodeStateElection); + while(!_destroy && _updateCounter > 0) + { + wait(); + } + if(_destroy) + { + return; + } + + tmpCoord = _coord; + tmpSet = _up; + + _coord = j; + _group = gn; + max = _max; + } + + Ice::IntSeq forwardedInvites; + if(tmpCoord == _id) // Forward invitation to my old members. + { + for(set<GroupNodeInfo>::const_iterator p = tmpSet.begin(); p != tmpSet.end(); ++p) + { + try + { + map<int, NodePrx>::const_iterator node = _nodesOneway.find(p->id); + assert(node != _nodesOneway.end()); + node->second->invitation(j, gn); + forwardedInvites.push_back(p->id); + } + catch(const Ice::Exception&) + { + } + } + } + + // Set the state and timer before calling accept. This ensures + // that if ready is called directly after accept is called then + // everything is fine. Setting the state *after* calling accept + // can cause a race. + { + Lock sync(*this); + if(_destroy) + { + return; + } + assert(_state == NodeStateElection); + setState(NodeStateReorganization); + if(!_timeoutTask) + { + _timeoutTask = new TimeoutTask(this); + _timer->scheduleRepeated(_timeoutTask, _masterTimeout); + } + } + + try + { + map<int, NodePrx>::const_iterator node = _nodesOneway.find(j); + assert(node != _nodesOneway.end()); + node->second->accept(_id, gn, forwardedInvites, _replica->getObserver(), _replica->getLastLogUpdate(), max); + } + catch(const Ice::Exception&) + { + recovery(); + return; + } +} + +void +NodeI::ready(int j, const string& gn, const Ice::ObjectPrx& coordinator, int max, Ice::Long generation, + const Ice::Current&) +{ + Lock sync(*this); + if(!_destroy && _state == NodeStateReorganization && _group == gn) + { + // The coordinator must be j (this was set in the invitation). + if(_coord != j) + { + Ice::Warning warn(_traceLevels->logger); + warn << _traceLevels->electionCat << ": ignoring ready call from replica node " << j + << " (real coordinator is " << _coord << ")"; + return; + } + + // Here we've already validated j in the invite call + // (otherwise _group != gn). + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": reporting for duty in group " << gn << " with coordinator " << j; + } + + if(static_cast<unsigned int>(max) > _max) + { + _max = max; + } + _generation = generation; + + // Activate the replica here since the replica is now ready + // for duty. + setState(NodeStateNormal); + _coordinatorProxy = coordinator; + + if(!_checkTask) + { + _checkTask = new CheckTask(this); + _timer->schedule(_checkTask, _electionTimeout); + } + } +} + +void +NodeI::accept(int j, const string& gn, const Ice::IntSeq& forwardedInvites, const Ice::ObjectPrx& observer, + const LogUpdate& llu, int max, const Ice::Current&) +{ + // Verify that j exists in our node set. + if(_nodes.find(j) == _nodes.end()) + { + Ice::Warning warn(_traceLevels->logger); + warn << _traceLevels->electionCat << ": ignoring accept from unknown node " << j; + return; + } + + Lock sync(*this); + if(!_destroy && _state == NodeStateElection && _group == gn && _coord == _id) + { + _up.insert(GroupNodeInfo(j, llu, observer)); + + if(static_cast<unsigned int>(max) > _max) + { + _max = max; + } + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": accept " << j << " forward invites ("; + for(Ice::IntSeq::const_iterator p = forwardedInvites.begin(); p != forwardedInvites.end(); ++p) + { + if(p != forwardedInvites.begin()) + { + out << ","; + } + out << *p; + } + out << ") with llu " + << llu.generation << "/" << llu.iteration << " into group " << gn + << " group size " << (_up.size() + 1); + } + + // Add each of the forwarded invites to the list of issued + // invitations. This doesn't use set_union since + // forwardedInvites may not be sorted. + _invitesIssued.insert(forwardedInvites.begin(), forwardedInvites.end()); + // We've accepted the invitation from node j. + _invitesAccepted.insert(j); + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": invites pending: " << toString(_invitesIssued) + << " invites accepted: " << toString(_invitesAccepted); + } + + // If invitations have been accepted from all nodes and the + // merge task has already been scheduled then reschedule the + // merge continue immediately. Otherwise, we let the existing + // merge() schedule continue. + if((_up.size() == _nodes.size()-1 || _invitesIssued == _invitesAccepted) && + _mergeContinueTask && _timer->cancel(_mergeContinueTask)) + { + _timer->schedule(_mergeContinueTask, IceUtil::Time::seconds(0)); + } + } +} + +bool +NodeI::areYouCoordinator(const Ice::Current&) const +{ + Lock sync(*this); + return _state != NodeStateElection && _state != NodeStateReorganization && _coord == _id; +} + +bool +NodeI::areYouThere(const string& gn, int j, const Ice::Current&) const +{ + Lock sync(*this); + return _group == gn && _coord == _id && _up.find(GroupNodeInfo(j)) != _up.end(); +} + +Ice::ObjectPrx +NodeI::sync(const Ice::Current&) const +{ + return _replica->getSync(); +} + +NodeInfoSeq +NodeI::nodes(const Ice::Current&) const +{ + NodeInfoSeq seq; + for(map<int, NodePrx>::const_iterator q = _nodes.begin(); q != _nodes.end(); ++q) + { + NodeInfo ni; + ni.id = q->first; + ni.n = q->second; + seq.push_back(ni); + } + + return seq; +} + +QueryInfo +NodeI::query(const Ice::Current&) const +{ + Lock sync(*this); + QueryInfo info; + info.id = _id; + info.coord = _coord; + info.group = _group; + info.replica = _replicaProxy; + info.state = _state; + info.max = _max; + + for(set<GroupNodeInfo>::const_iterator p = _up.begin(); p != _up.end(); ++p) + { + GroupInfo gi; + gi.id = p->id; + gi.llu = p->llu; + info.up.push_back(gi); + } + + return info; +} + +void +NodeI::recovery(Ice::Long generation) +{ + Lock sync(*this); + + // Ignore the recovery if the node has already advanced a + // generation. + if(generation != -1 && generation != _generation) + { + return; + } + + setState(NodeStateInactive); + while(!_destroy && _updateCounter > 0) + { + wait(); + } + if(_destroy) + { + return; + } + + ostringstream os; + os << _id << ":" << IceUtil::generateUUID(); + _group = os.str(); + + _generation = -1; + _coord = _id; + _up.clear(); + + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": creating new self-coordinated group " << _group; + } + + // Reset the timer states. + if(_mergeTask) + { + _timer->cancel(_mergeTask); + _mergeTask = 0; + } + if(_timeoutTask) + { + _timer->cancel(_timeoutTask); + _timeoutTask = 0; + } + if(!_checkTask) + { + _checkTask = new CheckTask(this); + _timer->schedule(_checkTask, _electionTimeout); + } +} + +void +NodeI::destroy() +{ + Lock sync(*this); + assert(!_destroy); + + while(_updateCounter > 0) + { + wait(); + } + _destroy = true; + notifyAll(); + + // Cancel the timers. + if(_checkTask) + { + _timer->cancel(_checkTask); + _checkTask = 0; + } + + if(_timeoutTask) + { + _timer->cancel(_timeoutTask); + _timeoutTask = 0; + } + + if(_mergeTask) + { + _timer->cancel(_mergeTask); + _mergeTask = 0; + } +} + +// A node should only receive an observer init call if the node is +// reorganizing and its not the coordinator. +void +NodeI::checkObserverInit(Ice::Long generation) +{ + Lock sync(*this); + if(_state != NodeStateReorganization) + { + throw ObserverInconsistencyException("init cannot block when state != NodeStateReorganization"); + } + if(_coord == _id) + { + throw ObserverInconsistencyException("init called on coordinator"); + } +} + +// Notify the node that we're about to start an update. +Ice::ObjectPrx +NodeI::startUpdate(Ice::Long& generation, const char* file, int line) +{ + bool majority = _observers->check(); + + Lock sync(*this); + + // If we've actively replicating & lost the majority of our replicas then recover. + if(!_coordinatorProxy && !_destroy && _state == NodeStateNormal && !majority) + { + recovery(); + } + + while(!_destroy && _state != NodeStateNormal) + { + wait(); + } + if(_destroy) + { + throw Ice::UnknownException(file, line); + } + if(!_coordinatorProxy) + { + ++_updateCounter; + } + generation = _generation; + return _coordinatorProxy; +} + +bool +NodeI::updateMaster(const char* file, int line) +{ + bool majority = _observers->check(); + + Lock sync(*this); + + // If the node is destroyed, or is not a coordinator then we're + // done. + if(_destroy || _coordinatorProxy) + { + return false; + } + + // If we've lost the majority of our replicas then recover. + if(_state == NodeStateNormal && !majority) + { + recovery(); + } + + // If we're not replicating then we're done. + if(_state != NodeStateNormal) + { + return false; + } + + // Otherwise adjust the update counter, and return success. + ++_updateCounter; + return true; +} + +Ice::ObjectPrx +NodeI::startCachedRead(Ice::Long& generation, const char* file, int line) +{ + Lock sync(*this); + while(!_destroy && _state != NodeStateNormal) + { + wait(); + } + if(_destroy) + { + throw Ice::UnknownException(file, line); + } + generation = _generation; + ++_updateCounter; + return _coordinatorProxy; +} + +void +NodeI::startObserverUpdate(Ice::Long generation, const char* file, int line) +{ + Lock sync(*this); + if(_destroy) + { + throw Ice::UnknownException(file, line); + } + if(_state != NodeStateNormal) + { + throw ObserverInconsistencyException("update called on inactive node"); + } + if(!_coordinatorProxy) + { + throw ObserverInconsistencyException("update called on the master"); + } + if(generation != _generation) + { + throw ObserverInconsistencyException("invalid generation"); + } + ++_updateCounter; +} + +void +NodeI::finishUpdate() +{ + Lock sync(*this); + assert(!_destroy); + --_updateCounter; + assert(_updateCounter >= 0); + if(_updateCounter == 0) + { + notifyAll(); + } +} + +namespace +{ +static string +stateToString(NodeState s) +{ + switch(s) + { + case NodeStateInactive: + return "inactive"; + case NodeStateElection: + return "election"; + case NodeStateReorganization: + return "reorganization"; + case NodeStateNormal: + return "normal"; + } + return "unknown"; +} +} + +void +NodeI::setState(NodeState s) +{ + if(s != _state) + { + if(_traceLevels->election > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->electionCat); + out << "node " << _id << ": transition from " << stateToString(_state) << " to " + << stateToString(s); + } + _state = s; + if(_state == NodeStateNormal) + { + notifyAll(); + } + } +} diff --git a/cpp/src/IceStorm/NodeI.h b/cpp/src/IceStorm/NodeI.h new file mode 100644 index 00000000000..524479e4465 --- /dev/null +++ b/cpp/src/IceStorm/NodeI.h @@ -0,0 +1,202 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef ELECTION_I_H +#define ELECTION_I_H + +#include <IceUtil/IceUtil.h> +#include <Ice/Ice.h> +#include <IceStorm/Election.h> +#include <IceStorm/Replica.h> +#include <IceStorm/Instance.h> +#include <IceUtil/Timer.h> +#include <set> + +namespace IceStormElection +{ + +class Observers; +typedef IceUtil::Handle<Observers> ObserversPtr; + +class NodeI : public Node, public IceUtil::Monitor<IceUtil::RecMutex> +{ +public: + + NodeI(const IceStorm::InstancePtr&, const ReplicaPtr&, const Ice::ObjectPrx&, + int, const std::map<int, NodePrx>&); + ~NodeI(); + + void start(); + + void check(); + void timeout(); + void merge(const std::set<int>&); + void mergeContinue(); + virtual void invitation(int, const std::string&, const Ice::Current&); + virtual void ready(int, const std::string&, const Ice::ObjectPrx&, int, Ice::Long, const Ice::Current&); + virtual void accept(int, const std::string&, const Ice::IntSeq&, const Ice::ObjectPrx&, const LogUpdate&, int, + const Ice::Current&); + virtual bool areYouCoordinator(const Ice::Current&) const; + virtual bool areYouThere(const std::string&, int, const Ice::Current&) const; + virtual Ice::ObjectPrx sync(const Ice::Current&) const; + virtual NodeInfoSeq nodes(const Ice::Current&) const; + virtual QueryInfo query(const Ice::Current&) const; + void recovery(Ice::Long = -1); + + void destroy(); + + // Notify the node that we're about to start an update. + void checkObserverInit(Ice::Long); + Ice::ObjectPrx startUpdate(Ice::Long&, const char*, int); + Ice::ObjectPrx startCachedRead(Ice::Long&, const char*, int); + void startObserverUpdate(Ice::Long, const char*, int); + bool updateMaster(const char*, int); + + // The node has completed the update. + void finishUpdate(); + +private: + + void setState(NodeState); + + const IceUtil::TimerPtr _timer; + const IceStorm::TraceLevelsPtr _traceLevels; + const IceStormElection::ObserversPtr _observers; + const ReplicaPtr _replica; // The replica. + const Ice::ObjectPrx _replicaProxy; // A proxy to the individual replica. + + const int _id; // My node id. + const std::map<int, NodePrx> _nodes; // The nodes indexed by their id. + const std::map<int, NodePrx> _nodesOneway; // The nodes indexed by their id (as oneway proxies). + + const IceUtil::Time _masterTimeout; + const IceUtil::Time _electionTimeout; + const IceUtil::Time _mergeTimeout; + + NodeState _state; + int _updateCounter; + + int _coord; // Id of the coordinator. + std::string _group; // My group id. + + std::set<GroupNodeInfo> _up; // Set of nodes in my group. + std::set<int> _invitesIssued; // The issued invitations. + std::set<int> _invitesAccepted; // The accepted invitations. + + unsigned int _max; // The highest group count I've seen. + Ice::Long _generation; // The current generation (or -1 if not set). + + Ice::ObjectPrx _coordinatorProxy; + bool _destroy; + + // Various timers. + IceUtil::TimerTaskPtr _mergeTask; + IceUtil::TimerTaskPtr _timeoutTask; + IceUtil::TimerTaskPtr _checkTask; + IceUtil::TimerTaskPtr _mergeContinueTask; +}; +typedef IceUtil::Handle<NodeI> NodeIPtr; + +class FinishUpdateHelper +{ +public: + + FinishUpdateHelper(const NodeIPtr& node) : + _node(node) + { + } + + ~FinishUpdateHelper() + { + if(_node) + { + _node->finishUpdate(); + } + } + +private: + + const NodeIPtr _node; +}; + +class CachedReadHelper +{ +public: + + CachedReadHelper(const NodeIPtr& node, const char* file, int line) : + _node(node) + { + if(_node) + { + _master = _node->startCachedRead(_generation, file, line); + } + } + + ~CachedReadHelper() + { + if(_node) + { + _node->finishUpdate(); + } + } + + Ice::ObjectPrx + getMaster() const + { + return _master; + } + + Ice::Long + generation() const + { + return _generation; + } + + bool + observerPrecondition(Ice::Long generation) const + { + return generation == _generation && _master; + } + +private: + + const NodeIPtr _node; + Ice::ObjectPrx _master; + Ice::Long _generation; +}; + +class ObserverUpdateHelper +{ +public: + + ObserverUpdateHelper(const NodeIPtr& node, Ice::Long generation, const char* file, int line) : + _node(node) + { + if(_node) + { + _node->startObserverUpdate(generation, file, line); + } + } + + ~ObserverUpdateHelper() + { + if(_node) + { + _node->finishUpdate(); + } + } + +private: + + const NodeIPtr _node; +}; + +} + +#endif // ELECTION_I_H diff --git a/cpp/src/IceStorm/Observers.cpp b/cpp/src/IceStorm/Observers.cpp new file mode 100644 index 00000000000..8240a555c3a --- /dev/null +++ b/cpp/src/IceStorm/Observers.cpp @@ -0,0 +1,274 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceStorm/Observers.h> +#include <IceStorm/Instance.h> +#include <IceStorm/TraceLevels.h> + +using namespace std; +using namespace IceStorm; +using namespace IceStormElection; + +namespace +{ + +class AMI_ReplicaObserver_createTopicI : public AMI_ReplicaObserver_createTopic, public AMICall +{ +public: + + virtual void ice_response() { response(); } + virtual void ice_exception(const Ice::Exception& e) { exception(e); } +}; +typedef IceUtil::Handle<AMI_ReplicaObserver_createTopicI> AMI_ReplicaObserver_createTopicIPtr; + +class AMI_ReplicaObserver_addSubscriberI : public AMI_ReplicaObserver_addSubscriber, public AMICall +{ +public: + + virtual void ice_response() { response(); } + virtual void ice_exception(const Ice::Exception& e) { exception(e); } +}; +typedef IceUtil::Handle<AMI_ReplicaObserver_addSubscriberI> AMI_ReplicaObserver_addSubscriberIPtr; + +class AMI_ReplicaObserver_removeSubscriberI : public AMI_ReplicaObserver_removeSubscriber, public AMICall +{ +public: + + virtual void ice_response() { response(); } + virtual void ice_exception(const Ice::Exception& e) { exception(e); } +}; +typedef IceUtil::Handle<AMI_ReplicaObserver_removeSubscriberI> AMI_ReplicaObserver_removeSubscriberIPtr; + +class AMI_ReplicaObserver_destroyTopicI : public AMI_ReplicaObserver_destroyTopic, public AMICall +{ +public: + + virtual void ice_response() { response(); } + virtual void ice_exception(const Ice::Exception& e) { exception(e); } +}; +typedef IceUtil::Handle<AMI_ReplicaObserver_destroyTopicI> AMI_ReplicaObserver_destroyTopicIPtr; + +} + +AMICall::AMICall() : + _response(false) +{ +} + +void +AMICall::response() +{ + Lock sync(*this); + _response = true; + notify(); +} +void +AMICall::exception(const IceUtil::Exception& e) +{ + Lock sync(*this); + _response = true; + _ex.reset(e.ice_clone()); + notify(); +} + +void +AMICall::waitResponse() +{ + Lock sync(*this); + while(!_response) + { + wait(); + } + if(_ex.get()) + { + _ex->ice_throw(); + } +} + +Observers::Observers(const InstancePtr& instance) : + _traceLevels(instance->traceLevels()), + _majority(0) +{ +} + +void +Observers::setMajority(unsigned int majority) +{ + _majority = majority; +} + +bool +Observers::check() +{ + Lock sync(*this); + if(_observers.size() >= _majority) + { + vector<ObserverInfo>::iterator p = _observers.begin(); + while(p != _observers.end()) + { + try + { + p->observer->ice_ping(); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->replication > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->replicationCat); + out << "ice_ping failed: " << ex; + } + int id = p->id; + p = _observers.erase(p); + IceUtil::Mutex::Lock sync(_reapedMutex); + _reaped.push_back(id); + continue; + } + ++p; + } + } + return _majority == 0 || _observers.size() >= _majority; +} + +void +Observers::clear() +{ + Lock sync(*this); + _observers.clear(); +} + +void +Observers::getReapedSlaves(std::vector<int>& d) +{ + IceUtil::Mutex::Lock sync(_reapedMutex); + d.swap(_reaped); +} + +void +Observers::init(const set<GroupNodeInfo>& slaves, const LogUpdate& llu, const TopicContentSeq& content) +{ + { + IceUtil::Mutex::Lock sync(_reapedMutex); + _reaped.clear(); + } + + Lock sync(*this); + _observers.clear(); + for(set<GroupNodeInfo>::const_iterator p = slaves.begin(); p != slaves.end(); ++p) + { + try + { + assert(p->observer); + //ReplicaObserverPrx observer = ReplicaObserverPrx::uncheckedCast(p->observer); + + // 60s timeout for reliability in the event that a replica + // becomes unresponsive. + ReplicaObserverPrx observer = ReplicaObserverPrx::uncheckedCast(p->observer->ice_timeout(60 * 1000)); + observer->init(llu, content); + _observers.push_back(ObserverInfo(p->id, observer)); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->replication > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->replicationCat); + out << "error calling init on " << p->id << " ex: " << ex; + } + throw; + } + } +} + +void +Observers::createTopic(const LogUpdate& llu, const string& name) +{ + Lock sync(*this); + for(vector<ObserverInfo>::iterator p = _observers.begin(); p != _observers.end(); ++p) + { + AMI_ReplicaObserver_createTopicIPtr cb = new AMI_ReplicaObserver_createTopicI; + p->call = cb; + p->observer->createTopic_async(cb, llu, name); + } + wait("createTopic"); +} + +void +Observers::destroyTopic(const LogUpdate& llu, const string& id) +{ + Lock sync(*this); + for(vector<ObserverInfo>::iterator p = _observers.begin(); p != _observers.end(); ++p) + { + AMI_ReplicaObserver_destroyTopicIPtr cb = new AMI_ReplicaObserver_destroyTopicI; + p->call = cb; + p->observer->destroyTopic_async(cb, llu, id); + } + wait("destroyTopic"); +} + + +void +Observers::addSubscriber(const LogUpdate& llu, const string& name, const SubscriberRecord& rec) +{ + Lock sync(*this); + for(vector<ObserverInfo>::iterator p = _observers.begin(); p != _observers.end(); ++p) + { + AMI_ReplicaObserver_addSubscriberIPtr cb = new AMI_ReplicaObserver_addSubscriberI; + p->call = cb; + p->observer->addSubscriber_async(cb, llu, name, rec); + } + wait("addSubscriber"); +} + +void +Observers::removeSubscriber(const LogUpdate& llu, const string& name, const Ice::IdentitySeq& id) +{ + Lock sync(*this); + for(vector<ObserverInfo>::iterator p = _observers.begin(); p != _observers.end(); ++p) + { + AMI_ReplicaObserver_removeSubscriberIPtr cb = new AMI_ReplicaObserver_removeSubscriberI; + p->call = cb; + p->observer->removeSubscriber_async(cb, llu, name, id); + } + wait("removeSubscriber"); +} + +void +Observers::wait(const string& op) +{ + vector<ObserverInfo>::iterator p = _observers.begin(); + while(p != _observers.end()) + { + try + { + p->call->waitResponse(); + } + catch(const Ice::Exception& ex) + { + if(_traceLevels->replication > 0) + { + Ice::Trace out(_traceLevels->logger, _traceLevels->replicationCat); + out << op << ": " << ex; + } + int id = p->id; + p = _observers.erase(p); + IceUtil::Mutex::Lock sync(_reapedMutex); + _reaped.push_back(id); + continue; + } + ++p; + } + // If we now no longer have the majority of observers we raise. + if(_observers.size() < _majority) + { + // TODO: Trace here? + //Ice::Trace out(_traceLevels->logger, _traceLevels->replicationCat); + //out << op; + throw Ice::UnknownException(__FILE__, __LINE__); + } +} + diff --git a/cpp/src/IceStorm/Observers.h b/cpp/src/IceStorm/Observers.h new file mode 100644 index 00000000000..96b8754adf2 --- /dev/null +++ b/cpp/src/IceStorm/Observers.h @@ -0,0 +1,86 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef OBSERVERS_H +#define OBSERVERS_H + +#include <Ice/Ice.h> +#include <IceUtil/IceUtil.h> +#include <IceStorm/Election.h> +#include <IceStorm/Replica.h> + +namespace IceStorm +{ +class Instance; +typedef IceUtil::Handle<Instance> InstancePtr; +class TraceLevels; +typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr; +} + +namespace IceStormElection +{ + +class AMICall : virtual public IceUtil::Shared, + virtual public IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + AMICall(); + + void response(); + void exception(const IceUtil::Exception& e); + void waitResponse(); + +private: + bool _response; + std::auto_ptr<IceUtil::Exception> _ex; +}; +typedef IceUtil::Handle<AMICall> AMICallPtr; + +class Observers : public IceUtil::Shared, public IceUtil::Mutex +{ +public: + Observers(const IceStorm::InstancePtr&); + + void setMajority(unsigned int); + + // Check that we have enough nodes for replication. + bool check(); + void clear(); + + void init(const std::set<IceStormElection::GroupNodeInfo>&, const LogUpdate&, const TopicContentSeq&); + void createTopic(const LogUpdate&, const std::string&); + void destroyTopic(const LogUpdate&, const std::string&); + void addSubscriber(const LogUpdate&, const std::string&, const IceStorm::SubscriberRecord&); + void removeSubscriber(const LogUpdate&, const std::string&, const Ice::IdentitySeq&); + void getReapedSlaves(std::vector<int>&); + +private: + + void wait(const std::string&); + + const IceStorm::TraceLevelsPtr _traceLevels; + unsigned int _majority; + struct ObserverInfo + { + ObserverInfo(int i, const ReplicaObserverPrx& o) : + id(i), observer(o) {} + int id; + ReplicaObserverPrx observer; + AMICallPtr call; + }; + std::vector<ObserverInfo> _observers; + IceUtil::Mutex _reapedMutex; + std::vector<int> _reaped; +}; +typedef IceUtil::Handle<Observers> ObserversPtr; + +} + +#endif // OBSERVERS_H diff --git a/cpp/src/IceStorm/Parser.cpp b/cpp/src/IceStorm/Parser.cpp index 58c8d6c0976..74cb847255b 100644 --- a/cpp/src/IceStorm/Parser.cpp +++ b/cpp/src/IceStorm/Parser.cpp @@ -10,6 +10,7 @@ #include <IceUtil/DisableWarnings.h> #include <Ice/Ice.h> #include <IceStorm/Parser.h> +#include <IceStorm/IceStormInternal.h> #include <algorithm> #ifdef HAVE_READLINE @@ -94,6 +95,7 @@ Parser::usage() " manager, or in the given INSTANCE-NAME.\n" "current [INSTANCE-NAME] Display the current topic manager, or change it to\n" " INSTANCE-NAME.\n" + "replica [INSTANCE-NAME] Display replication information for the given INSTANCE-NAME.\n" ; } @@ -263,6 +265,85 @@ Parser::topics(const list<string>& args) } void +Parser::replica(const list<string>& args) +{ + if(args.size() > 1) + { + error("`replica' requires at most one argument (type `help' for more info)"); + return; + } + + try + { + TopicManagerPrx m; + if(args.size() == 0) + { + m = _defaultManager; + } + else + { + m = findManagerByCategory(args.front()); + } + TopicManagerInternalPrx manager = TopicManagerInternalPrx::uncheckedCast(m); + IceStormElection::NodePrx node = manager->getReplicaNode(); + if(!node) + { + error("This topic is not replicated"); + } + IceStormElection::NodeInfoSeq nodes = node->nodes(); + cout << "replica count: " << nodes.size() << endl; + for(IceStormElection::NodeInfoSeq::const_iterator p = nodes.begin(); p != nodes.end(); ++p) + { + try + { + IceStormElection::QueryInfo info = p->n->query(); + cout << p->id << ": id: " << info.id << endl; + cout << p->id << ": coord: " << info.coord << endl; + cout << p->id << ": group name: " << info.group << endl; + cout << p->id << ": state: "; + switch(info.state) + { + case IceStormElection::NodeStateInactive: + cout << "inactive"; + break; + case IceStormElection::NodeStateElection: + cout << "election"; + break; + case IceStormElection::NodeStateReorganization: + cout << "reorganization"; + break; + case IceStormElection::NodeStateNormal: + cout << "normal"; + break; + default: + cout << "unknown"; + } + cout << endl; + cout << p->id << ": group: "; + for(IceStormElection::GroupInfoSeq::const_iterator q = info.up.begin(); q != info.up.end(); ++q) + { + if(q != info.up.begin()) + { + cout << ","; + } + cout << q->id; + } + cout << endl; + cout << p->id << ": max: " << info.max << endl; + } + catch(const Exception& ex) + { + cout << p->id << ": " << ex.ice_name() << endl; + } + } + } + catch(const Exception& ex) + { + exception(ex); + } +} + +void Parser::current(const list<string>& args) { if(args.empty()) diff --git a/cpp/src/IceStorm/Parser.h b/cpp/src/IceStorm/Parser.h index 68ae0c9b1b9..c5d6b61f122 100644 --- a/cpp/src/IceStorm/Parser.h +++ b/cpp/src/IceStorm/Parser.h @@ -64,6 +64,7 @@ public: void unlink(const std::list<std::string>&); void links(const std::list<std::string>&); void topics(const std::list<std::string>&); + void replica(const std::list<std::string>&); void current(const std::list<std::string>&); void showBanner(); diff --git a/cpp/src/IceStorm/Replica.h b/cpp/src/IceStorm/Replica.h new file mode 100644 index 00000000000..25febb1ac58 --- /dev/null +++ b/cpp/src/IceStorm/Replica.h @@ -0,0 +1,47 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef REPLICA_H +#define REPLICA_H + +#include <Ice/Ice.h> +#include <IceStorm/Election.h> +#include <set> + +namespace IceStormElection +{ + +struct GroupNodeInfo +{ + GroupNodeInfo(int i); + GroupNodeInfo(int i, LogUpdate l, const Ice::ObjectPrx& o = Ice::ObjectPrx()); + bool operator<(const GroupNodeInfo& rhs) const; + bool operator==(const GroupNodeInfo& rhs) const; + const int id; + const LogUpdate llu; + const Ice::ObjectPrx observer; +}; + +class Replica : virtual public IceUtil::Shared +{ +public: + + ~Replica(); + + virtual LogUpdate getLastLogUpdate() const = 0; + virtual void sync(const Ice::ObjectPrx&) = 0; + virtual void initMaster(const std::set<IceStormElection::GroupNodeInfo>&, const LogUpdate&) = 0; + virtual Ice::ObjectPrx getObserver() const = 0; + virtual Ice::ObjectPrx getSync() const = 0; +}; +typedef IceUtil::Handle<Replica> ReplicaPtr; + +} + +#endif // RELICA_H diff --git a/cpp/src/IceStorm/Scanner.l b/cpp/src/IceStorm/Scanner.l index 421b95cadcc..3b922de2332 100644 --- a/cpp/src/IceStorm/Scanner.l +++ b/cpp/src/IceStorm/Scanner.l @@ -246,6 +246,7 @@ initScanner() keywordMap["unlink"] = ICE_STORM_UNLINK; keywordMap["links"] = ICE_STORM_LINKS; keywordMap["topics"] = ICE_STORM_TOPICS; + keywordMap["replica"] = ICE_STORM_REPLICA; } } diff --git a/cpp/src/IceStorm/Service.cpp b/cpp/src/IceStorm/Service.cpp index d224f1ef0a9..c147a8d8e00 100644 --- a/cpp/src/IceStorm/Service.cpp +++ b/cpp/src/IceStorm/Service.cpp @@ -10,16 +10,24 @@ #include <IceUtil/DisableWarnings.h> #include <IceStorm/TopicI.h> #include <IceStorm/TopicManagerI.h> +#include <IceStorm/TransientTopicManagerI.h> #include <IceStorm/Instance.h> -#include <IceStorm/TraceLevels.h> -#include <IceStorm/BatchFlusher.h> -#include <IceStorm/SubscriberPool.h> #include <IceStorm/Service.h> +#include <IceStorm/Observers.h> +#include <IceStorm/TraceLevels.h> +#include <IceStorm/LoggerI.h> +#include <IceUtil/StringUtil.h> + +#include <IceStorm/NodeI.h> + +#include <IceGrid/Locator.h> +#include <IceGrid/Query.h> using namespace std; using namespace Ice; -using namespace IceStorm; using namespace Freeze; +using namespace IceStorm; +using namespace IceStormElection; namespace IceStorm { @@ -48,11 +56,12 @@ public: private: - TopicManagerIPtr _manager; + void validateProperties(const string&, const PropertiesPtr&, const LoggerPtr&); + + TopicManagerImplPtr _manager; + TransientTopicManagerImplPtr _transientManager; TopicManagerPrx _managerProxy; InstancePtr _instance; - ObjectAdapterPtr _topicAdapter; - ObjectAdapterPtr _publishAdapter; }; } @@ -98,8 +107,22 @@ IceStorm::ServiceI::start( { PropertiesPtr properties = communicator->getProperties(); - _topicAdapter = communicator->createObjectAdapter(name + ".TopicManager"); - _publishAdapter = communicator->createObjectAdapter(name + ".Publish"); + validateProperties(name, properties, communicator->getLogger()); + + int id = properties->getPropertyAsIntWithDefault(name + ".NodeId", -1); + + // If we are using a replicated deployment and if the topic + // manager thread pool max size is not set then ensure it is set + // to some suitably high number. This ensures no deadlocks in the + // replicated case due to call forwarding from replicas to + // coordinators. + if(id != -1 && properties->getProperty(name + ".TopicManager.ThreadPool.SizeMax").empty()) + { + properties->setProperty(name + ".TopicManager.ThreadPool.SizeMax", "100"); + } + + Ice::ObjectAdapterPtr topicAdapter = communicator->createObjectAdapter(name + ".TopicManager"); + Ice::ObjectAdapterPtr publishAdapter = communicator->createObjectAdapter(name + ".Publish"); // // We use the name of the service for the name of the database environment. @@ -109,21 +132,221 @@ IceStorm::ServiceI::start( topicManagerId.category = instanceName; topicManagerId.name = "TopicManager"; - _instance = new Instance(instanceName, name, communicator, _publishAdapter); - - try + if(properties->getPropertyAsIntWithDefault(name+ ".Transient", 0)) { - _manager = new TopicManagerI(_instance, _topicAdapter, name, "topics"); - _managerProxy = TopicManagerPrx::uncheckedCast(_topicAdapter->add(_manager, topicManagerId)); + _instance = new Instance(instanceName, name, communicator, publishAdapter, topicAdapter); + try + { + TransientTopicManagerImplPtr manager = new TransientTopicManagerImpl(_instance); + _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(manager, topicManagerId)); + } + catch(const Ice::Exception&) + { + _instance = 0; + throw; + } + topicAdapter->activate(); + publishAdapter->activate(); + return; } - catch(const Ice::Exception&) + + if(id == -1) // No replication. { - _instance = 0; - throw; + _instance = new Instance(instanceName, name, communicator, publishAdapter, topicAdapter); + + try + { + _manager = new TopicManagerImpl(_instance); + _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(_manager->getServant(), topicManagerId)); + } + catch(const Ice::Exception&) + { + _instance = 0; + throw; + } + } + else + { + // Add a instance/node prefix to the IceStorm logger if so + // installed. + IceStorm::LoggerIPtr logger = IceStorm::LoggerIPtr::dynamicCast( + communicator->getLogger()); + if(logger) + { + ostringstream os; + os << id << "/" << instanceName; + logger->setPrefix(os.str()); + } + + // Here we want to create a map of id -> election node + // proxies. + map<int, NodePrx> nodes; + + bool iceGridDeployment = true; + + // We support two possible deployments. The first is a manual + // deployment, the second is IceGrid. + // + // Here we check for the manual deployment + const string prefix = name + ".Nodes."; + Ice::PropertyDict props = properties->getPropertiesForPrefix(prefix); + if(!props.empty()) + { + iceGridDeployment = false; + for(Ice::PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) + { + int nodeid = atoi(p->first.substr(prefix.size()).c_str()); + nodes[nodeid] = NodePrx::uncheckedCast(communicator->propertyToProxy(p->first)); + } + } + else + { + // If adapter id's are defined for the topic manager or node + // adapters then we consider this an IceGrid based deployment. + string adapterid = properties->getProperty(name + ".TopicManager.AdapterId"); + string nodeid = properties->getProperty(name + ".Node.AdapterId"); + + // Here I must validate first that the adapter ids match + // for the node and the topic manager otherwise some other + // deployment is being used. + const string suffix = ".TopicManager"; + if(adapterid.empty() || nodeid.empty() || + adapterid.replace(adapterid.find(suffix), suffix.size(), ".Node") != nodeid) + { + Ice::Error error(communicator->getLogger()); + error << "IceGrid deployment is incorrect"; + throw "IceGrid deployment is incorrect"; + } + + // This is a deployment using IceGrid. + // + // In this case we first locate all replicas for the topic + // manager. The topic manager adapter ids will be + // something like: + // "Inst1-1.IceStorm.IceStorm.TopicManager". This is + // <instance>-<node-id>.<name>.<endpoint>. From this we + // can extract node id and create the correct adapter id + // for the election node. + IceGrid::LocatorPrx locator = IceGrid::LocatorPrx::checkedCast(communicator->getDefaultLocator()); + assert(locator); + IceGrid::QueryPrx query = locator->getLocalQuery(); + Ice::ObjectProxySeq replicas = query->findAllReplicas( + communicator->stringToProxy(instanceName + "/TopicManager")); + for(Ice::ObjectProxySeq::const_iterator p = replicas.begin(); p != replicas.end(); ++p) + { + adapterid = (*p)->ice_getAdapterId(); + + // Replace TopicManager with the node endpoint. + adapterid = adapterid.replace(adapterid.find(suffix), suffix.size(), ".Node"); + + // Now look for the node identity. This will be + // <prefix>-<id>.<name>.<name>.Node... For example, if + // the service name is IceStorm it will be + // ".IceStorm.IceStorm.Node" + string::size_type end = adapterid.find( "." + name + "." + name + ".Node"); + if(end == string::npos) + { + Ice::Error error(communicator->getLogger()); + error << "IceGrid deployment is incorrect: " << adapterid; + throw "IceGrid deployment is incorrect"; + } + + string::size_type start = adapterid.rfind("-", end); + if(start == string::npos) + { + Ice::Error error(communicator->getLogger()); + error << "IceGrid deployment is incorrect: " << adapterid; + throw "IceGrid deployment is incorrect"; + } + ++start; + + int nodeid = atoi(adapterid.substr(start, end-start).c_str()); + ostringstream os; + os << "node" << nodeid; + Ice::Identity id; + id.category = instanceName; + id.name = os.str(); + + nodes[nodeid] = NodePrx::uncheckedCast((*p)->ice_adapterId(adapterid)->ice_identity(id)); + } + } + + if(nodes.size() < 3) + { + Ice::Error error(communicator->getLogger()); + error << "Replication requires at least 3 Nodes"; + throw "error"; + } + + try + { + // If the node thread pool size is not set then initialize + // to the number of nodes + 1 and disable thread pool size + // warnings. + if(properties->getProperty(name + ".Node.ThreadPool.Size").empty()) + { + ostringstream os; + os << nodes.size() + 1; + properties->setProperty(name + ".Node.ThreadPool.Size", os.str()); + properties->setProperty(name + ".Node.ThreadPool.SizeWarn", "0"); + } + Ice::ObjectAdapterPtr nodeAdapter = communicator->createObjectAdapter(name + ".Node"); + + _instance = new Instance(instanceName, name, communicator, publishAdapter, topicAdapter, iceGridDeployment, + nodeAdapter, nodes[id]); + _instance->observers()->setMajority(nodes.size()/2); + + // Trace replication information. + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->election > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->electionCat); + out << "I am node " << id << "\n"; + for(map<int, NodePrx>::const_iterator p = nodes.begin(); p != nodes.end(); ++p) + { + out << "\tnode: " << p->first << " proxy: " << p->second->ice_toString() << "\n"; + } + } + + if(!iceGridDeployment) + { + // We're not using an IceGrid deployment. Here we need + // a proxy which is used to create proxies to the + // replicas later. + _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->createProxy(topicManagerId)); + } + else + { + // If we're using IceGrid deployment we need to create + // indirect proxies. + _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->createIndirectProxy(topicManagerId)); + } + + _manager = new TopicManagerImpl(_instance); + topicAdapter->add(_manager->getServant(), topicManagerId); + + ostringstream os; // The node object identity. + os << "node" << id; + Ice::Identity nodeid; + nodeid.category = instanceName; + nodeid.name = os.str(); + + NodeIPtr node = new NodeI(_instance, _manager, _managerProxy, id, nodes); + _instance->setNode(node); + nodeAdapter->add(node, nodeid); + nodeAdapter->activate(); + + node->start(); + } + catch(const Ice::Exception&) + { + _instance = 0; + throw; + } } - _topicAdapter->activate(); - _publishAdapter->activate(); + topicAdapter->activate(); + publishAdapter->activate(); } void @@ -134,16 +357,21 @@ IceStorm::ServiceI::start(const CommunicatorPtr& communicator, const Ice::Identity& id, const string& dbEnv) { - string instanceName = communicator->getProperties()->getPropertyWithDefault(name + ".InstanceName", "IceStorm"); - _instance = new Instance(instanceName, name, communicator, publishAdapter); - // - // We use the name of the service for the name of the database environment. + // For IceGrid we don't validate the properties as all sorts of + // non-IceStorm properties are included in the prefix. // + //validateProperties(name, communicator->getProperties(), communicator->getLogger()); + + // This is for IceGrid only and as such we use a transient + // implementation of IceStorm. + string instanceName = communicator->getProperties()->getPropertyWithDefault(name + ".InstanceName", "IceStorm"); + _instance = new Instance(instanceName, name, communicator, publishAdapter, topicAdapter); + try { - _manager = new TopicManagerI(_instance, topicAdapter, dbEnv, "topics"); - _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(_manager, id)); + TransientTopicManagerImplPtr manager = new TransientTopicManagerImpl(_instance); + _managerProxy = TopicManagerPrx::uncheckedCast(topicAdapter->add(manager, id)); } catch(const Ice::Exception&) { @@ -161,22 +389,128 @@ IceStorm::ServiceI::getTopicManager() const void IceStorm::ServiceI::stop() { - if(_topicAdapter) + // Shutdown the instance. This deactivates all OAs. + _instance->shutdown(); + + // + // It's necessary to reap all destroyed topics on shutdown. + // + if(_manager) { - _topicAdapter->destroy(); + _manager->shutdown(); } - if(_publishAdapter) + if(_transientManager) { - _publishAdapter->destroy(); + _transientManager->shutdown(); } // - // Shutdown the instance. + // Destroy the instance. This step must occur last. // - _instance->shutdown(); + _instance->destroy(); +} - // - // It's necessary to reap all destroyed topics on shutdown. - // - _manager->shutdown(); +void +IceStorm::ServiceI::validateProperties(const string& name, const PropertiesPtr& properties, const LoggerPtr& logger) +{ + static const string suffixes[] = + { + "ReplicatedTopicManagerEndpoints", + "ReplicatedPublishEndpoints", + "Nodes.*", + "Transient", + "NodeId", + "Flush.Timeout", + "InstanceName", + "Election.MasterTimeout", + "Election.ElectionTimeout", + "Election.ResponseTimeout", + "Publish.AdapterId", + "Publish.Endpoints", + "Publish.Locator", + "Publish.PublishedEndpoints", + "Publish.RegisterProcess", + "Publish.ReplicaGroupId", + "Publish.Router", + "Publish.ThreadPerConnection", + "Publish.ThreadPerConnection.StackSize", + "Publish.ThreadPool.Size", + "Publish.ThreadPool.SizeMax", + "Publish.ThreadPool.SizeWarn", + "Publish.ThreadPool.StackSize", + "Node.AdapterId", + "Node.Endpoints", + "Node.Locator", + "Node.PublishedEndpoints", + "Node.RegisterProcess", + "Node.ReplicaGroupId", + "Node.Router", + "Node.ThreadPerConnection", + "Node.ThreadPerConnection.StackSize", + "Node.ThreadPool.Size", + "Node.ThreadPool.SizeMax", + "Node.ThreadPool.SizeWarn", + "Node.ThreadPool.StackSize", + "TopicManager.AdapterId", + "TopicManager.Endpoints", + "TopicManager.Locator", + "TopicManager.Proxy", + "TopicManager.Proxy.EndpointSelection", + "TopicManager.Proxy.ConnectionCached", + "TopicManager.Proxy.PreferSecure", + "TopicManager.Proxy.LocatorCacheTimeout", + "TopicManager.Proxy.Locator", + "TopicManager.Proxy.Router", + "TopicManager.Proxy.CollocationOptimization", + "TopicManager.Proxy.ThreadPerConnection", + "TopicManager.PublishedEndpoints", + "TopicManager.RegisterProcess", + "TopicManager.ReplicaGroupId", + "TopicManager.Router", + "TopicManager.ThreadPerConnection", + "TopicManager.ThreadPerConnection.StackSize", + "TopicManager.ThreadPool.Size", + "TopicManager.ThreadPool.SizeMax", + "TopicManager.ThreadPool.SizeWarn", + "TopicManager.ThreadPool.StackSize", + "Trace.Election", + "Trace.Replication", + "Trace.Subscriber", + "Trace.Topic", + "Trace.TopicManager", + "Send.Timeout", + "Discard.Interval", + }; + + vector<string> unknownProps; + string prefix = name + "."; + PropertyDict props = properties->getPropertiesForPrefix(prefix); + for(PropertyDict::const_iterator p = props.begin(); p != props.end(); ++p) + { + bool valid = false; + for(unsigned int i = 0; i < sizeof(suffixes)/sizeof(*suffixes); ++i) + { + string prop = prefix + suffixes[i]; + if(IceUtilInternal::match(p->first, prop)) + { + valid = true; + break; + } + } + if(!valid) + { + unknownProps.push_back(p->first); + } + } + + if(!unknownProps.empty()) + { + Warning out(logger); + out << "found unknown properties for IceStorm service '" << name << "':"; + for(vector<string>::const_iterator p = unknownProps.begin(); p != unknownProps.end(); ++p) + { + out << "\n " << *p; + } + } } + diff --git a/cpp/src/IceStorm/Subscriber.cpp b/cpp/src/IceStorm/Subscriber.cpp index 546f98b624c..0b7338c321f 100644 --- a/cpp/src/IceStorm/Subscriber.cpp +++ b/cpp/src/IceStorm/Subscriber.cpp @@ -10,14 +10,9 @@ #include <IceStorm/Subscriber.h> #include <IceStorm/Instance.h> #include <IceStorm/TraceLevels.h> -#include <IceStorm/BatchFlusher.h> -#include <IceStorm/SubscriberPool.h> +#include <IceStorm/NodeI.h> -#include <Ice/ObjectAdapter.h> #include <Ice/LoggerUtil.h> -#include <Ice/Communicator.h> -#include <Ice/LocalException.h> -#include <Ice/Connection.h> #ifdef __BCPLUSPLUS__ #include <iterator> @@ -25,6 +20,7 @@ using namespace std; using namespace IceStorm; +using namespace IceStormElection; // // Per Subscriber object. @@ -56,6 +52,9 @@ public: vector<Ice::Byte>&, const Ice::Current& current) { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + EventDataPtr event = new EventData( current.operation, current.mode, @@ -71,12 +70,7 @@ public: EventDataSeq e; e.push_back(event); - Subscriber::QueueState state = _subscriber->queue(false, e); - - if(state == Subscriber::QueueStateFlush) - { - _instance->subscriberPool()->flush(_subscriber); - } + _subscriber->queue(false, e); return true; } @@ -88,441 +82,368 @@ private: typedef IceUtil::Handle<PerSubscriberPublisherI> PerSubscriberPublisherIPtr; } + // Each of the various Subscriber types. namespace { -class SubscriberOneway : public Subscriber +class SubscriberBatch : public Subscriber { public: - SubscriberOneway(const InstancePtr&, const Ice::ObjectPrx&, const Ice::ObjectPrx&); - // - // Oneway - // - virtual bool flush(); - virtual void destroy(); + SubscriberBatch(const InstancePtr&, const SubscriberRecord&, const Ice::ObjectPrx&, int, const Ice::ObjectPrx&); + ~SubscriberBatch(); + + virtual void flush(); + + void doFlush(); private: - const bool _batch; const Ice::ObjectPrx _obj; - /*const*/ Ice::ObjectPrx _objBatch; + const IceUtil::Time _interval; }; +typedef IceUtil::Handle<SubscriberBatch> SubscriberBatchPtr; -class SubscriberTwoway : public Subscriber +class SubscriberOneway : public Subscriber { public: - SubscriberTwoway(const InstancePtr&, const Ice::ObjectPrx&, const Ice::ObjectPrx&); + SubscriberOneway(const InstancePtr&, const SubscriberRecord&, const Ice::ObjectPrx&, int, const Ice::ObjectPrx&); + ~SubscriberOneway(); - virtual bool flush(); - void response(); + virtual void flush(); + + void sent(); private: const Ice::ObjectPrx _obj; - const int _maxOutstanding; - int _outstanding; }; -typedef IceUtil::Handle<SubscriberTwoway> SubscriberTwowayPtr; +typedef IceUtil::Handle<SubscriberOneway> SubscriberOnewayPtr; -// -// Twoway Ordered -// -class SubscriberTwowayOrdered : public Subscriber +class SubscriberTwoway : public Subscriber { public: - SubscriberTwowayOrdered(const InstancePtr&, const Ice::ObjectPrx&, const Ice::ObjectPrx&); + SubscriberTwoway(const InstancePtr&, const SubscriberRecord&, const Ice::ObjectPrx&, int, int, + const Ice::ObjectPrx&); - virtual bool flush(); - void response(); + virtual void flush(); private: const Ice::ObjectPrx _obj; }; -typedef IceUtil::Handle<SubscriberTwowayOrdered> SubscriberTwowayOrderedPtr; class SubscriberLink : public Subscriber { public: - SubscriberLink(const InstancePtr&, const TopicLinkPrx&, int); + SubscriberLink(const InstancePtr&, const SubscriberRecord&); - virtual QueueState queue(bool, const std::vector<EventDataPtr>&); - virtual bool flush(); - void response(); - - void offline(const Ice::Exception&); + virtual void flush(); private: const TopicLinkPrx _obj; - const int _cost; - - // The next to try sending a new event if we're offline. - IceUtil::Time _next; - bool _warn; }; -typedef IceUtil::Handle<SubscriberLink> SubscriberLinkPtr; - -} -SubscriberOneway::SubscriberOneway( - const InstancePtr& instance, - const Ice::ObjectPrx& proxy, - const Ice::ObjectPrx& obj) : - Subscriber(instance, proxy, false, obj->ice_getIdentity()), - _batch(obj->ice_isBatchDatagram() || obj->ice_isBatchOneway()), - _obj(obj) +class ResponseTimerTask : public IceUtil::TimerTask { - // - // COMPILERFIX: Initialized this way for Borland to compile. - // - if(obj->ice_isDatagram()) +public: + ResponseTimerTask(const SubscriberPtr& subscriber) : + _subscriber(subscriber) { - _objBatch = obj->ice_batchDatagram(); } - else + + virtual void + runTimerTask() { - _objBatch = obj->ice_batchOneway(); + _subscriber->flush(); } - if(_batch) +private: + + const SubscriberPtr _subscriber; +}; + +class OnewayIceInvokeI : public Ice::AMI_Object_ice_invoke +{ +public: + + OnewayIceInvokeI(const SubscriberOnewayPtr& subscriber) : + _subscriber(subscriber) { - _instance->batchFlusher()->add(_obj); } -} -bool -SubscriberOneway::flush() -{ - IceUtil::Mutex::Lock sync(_mutex); - - // - // If the subscriber errored out then we're done. - // - if(_state == SubscriberStateError) + virtual void + ice_response(bool, const std::vector<Ice::Byte>&) { - return false; + assert(false); } - assert(_state == SubscriberStateFlushPending); - assert(!_events.empty()); - try + virtual void __sent(Ice::ConnectionI* c) { - // - // Get the current set of events, but release the lock before - // attempting to deliver the events. This allows other threads - // to add events in case we block (such as during connection - // establishment). - // - EventDataSeq v; - v.swap(_events); - sync.release(); + AMI_Object_ice_invoke::__sent(c); + _subscriber->sent(); + } - // - // Deliver the events without holding the lock. - // - // If there are more than one event queued and we are not in - // batch sending mode then send the events as a batch and then - // flush immediately, otherwise send one at a time. - // - vector<Ice::Byte> dummy; - if(v.size() > 1 && !_batch) - { - Ice::ConnectionPtr conn = _objBatch->ice_getConnection(); - for(EventDataSeq::const_iterator p = v.begin(); p != v.end(); ++p) - { - _objBatch->ice_invoke((*p)->op, (*p)->mode, (*p)->data, dummy, (*p)->context); - } - conn->flushBatchRequests(); - } - else - { - for(EventDataSeq::const_iterator p = v.begin(); p != v.end(); ++p) - { - _obj->ice_invoke((*p)->op, (*p)->mode, (*p)->data, dummy, (*p)->context); - } - } - - // - // Reacquire the lock before we check the queue again. - // - sync.acquire(); + virtual void + ice_exception(const Ice::Exception& e) + { + _subscriber->error(true, e); } - catch(const Ice::LocalException& ex) + +private: + + const SubscriberOnewayPtr _subscriber; +}; + +class IceInvokeI : public Ice::AMI_Object_ice_invoke +{ +public: + + IceInvokeI(const SubscriberPtr& subscriber) : + _subscriber(subscriber) { - assert(!sync.acquired()); - // error will re-acquire and release the lock. - error(ex); - return false; } - if(!_events.empty()) + virtual void + ice_response(bool, const std::vector<Ice::Byte>&) { - assert(_state == SubscriberStateFlushPending); - return true; + _subscriber->response(); } - _state = SubscriberStateOnline; - return false; -} -void -SubscriberOneway::destroy() -{ - if(_batch) + virtual void + ice_exception(const Ice::Exception& e) { - _instance->batchFlusher()->remove(_obj); + _subscriber->error(true, e); } - Subscriber::destroy(); -} -namespace -{ +private: -class TwowayInvokeI : public Ice::AMI_Object_ice_invoke + const SubscriberPtr _subscriber; +}; + +class FlushBatchI : public Ice::AMI_Object_ice_flushBatchRequests { public: - TwowayInvokeI(const SubscriberTwowayPtr& subscriber) : + FlushBatchI(const SubscriberPtr& subscriber) : _subscriber(subscriber) { } virtual void - ice_response(bool, const std::vector<Ice::Byte>&) + ice_exception(const Ice::Exception& e) + { + _subscriber->error(false, e); + } + +private: + + const SubscriberPtr _subscriber; +}; + +class FlushTimerTask : public IceUtil::TimerTask +{ +public: + + FlushTimerTask(const SubscriberBatchPtr& subscriber) : + _subscriber(subscriber) { - _subscriber->response(); } virtual void - ice_exception(const Ice::Exception& e) + runTimerTask() { - _subscriber->error(e); + _subscriber->doFlush(); } private: - const SubscriberTwowayPtr _subscriber; + const SubscriberBatchPtr _subscriber; }; } -SubscriberTwoway::SubscriberTwoway( +SubscriberBatch::SubscriberBatch( const InstancePtr& instance, + const SubscriberRecord& rec, const Ice::ObjectPrx& proxy, + int retryCount, const Ice::ObjectPrx& obj) : - Subscriber(instance, proxy, false, obj->ice_getIdentity()), + Subscriber(instance, rec, proxy, retryCount, 1), _obj(obj), - _maxOutstanding(10), - _outstanding(0) + _interval(instance->flushInterval()) { + assert(retryCount == 0); } -bool -SubscriberTwoway::flush() +SubscriberBatch::~SubscriberBatch() { - EventDataPtr e; - { - IceUtil::Mutex::Lock sync(_mutex); - - // - // If the subscriber errored out then we're done. - // - if(_state == SubscriberStateError) - { - return false; - } - assert(_state == SubscriberStateFlushPending); - assert(!_events.empty()); +} - // - // If there are more than _maxOutstanding unanswered AMI - // events we're also done. In this case the response to the - // pending AMI requests will trigger another event to be sent. - // - if(_outstanding >= _maxOutstanding) - { - _state = SubscriberStateSending; - return false; - } - - // - // Dequeue the head event, count one more outstanding AMI - // request. - // - e = _events.front(); - _events.erase(_events.begin()); - _state = SubscriberStateSending; +void +SubscriberBatch::flush() +{ + if(_outstanding == 0) + { ++_outstanding; + _instance->batchFlusher()->schedule(new FlushTimerTask(this), _interval); } +} - _obj->ice_invoke_async(new TwowayInvokeI(this), e->op, e->mode, e->data, e->context); - - // - // We process the subscriber state after the event send and not - // before to prevent the subscriber from being requeued - // concurrently. - // +void +SubscriberBatch::doFlush() +{ + EventDataSeq v; { - IceUtil::Mutex::Lock sync(_mutex); - // - // If the subscriber has already been requeued for a flush or - // the subscriber errored out then we're done. - // - if(_state == SubscriberStateFlushPending || _state == SubscriberStateError) + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + --_outstanding; + assert(_outstanding == 0); + + if(_shutdown) { - return false; + _lock.notify(); } + v.swap(_events); + assert(!v.empty()); + } - // - // If there are no events left in the queue transition back to - // the online state, and return false to indicate to the - // worker not to requeue. - // - if(_events.empty()) - { - _state = SubscriberStateOnline; - return false; - } + vector<Ice::Byte> dummy; + for(EventDataSeq::const_iterator p = v.begin(); p != v.end(); ++p) + { + _obj->ice_invoke((*p)->op, (*p)->mode, (*p)->data, dummy, (*p)->context); + } - // - // We must still be in sending state. - // - assert(_state == SubscriberStateSending); + _obj->ice_flushBatchRequests_async(new FlushBatchI(this)); - // - // If we're below the outstanding limit then requeue, - // otherwise the response callback will do so. - // - if(_outstanding < _maxOutstanding) - { - _state = SubscriberStateFlushPending; - } + // This is significantly faster than the async version, but it can + // block the calling thread. Bad news! - return _state == SubscriberStateFlushPending; - } + //_obj->ice_flushBatchRequests(); } -void -SubscriberTwoway::response() +SubscriberOneway::SubscriberOneway( + const InstancePtr& instance, + const SubscriberRecord& rec, + const Ice::ObjectPrx& proxy, + int retryCount, + const Ice::ObjectPrx& obj) : + Subscriber(instance, rec, proxy, retryCount, 5), + _obj(obj) { - IceUtil::Mutex::Lock sync(_mutex); + assert(retryCount == 0); +} - --_outstanding; +SubscriberOneway::~SubscriberOneway() +{ +} +void +SubscriberOneway::flush() +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + // - // Note that its possible for the _state to be error if there are - // mutliple threads in the client side thread pool and response - // and exception are called out of order. + // If the subscriber isn't online we're done. // - assert(_outstanding >= 0 && _outstanding < _maxOutstanding); + if(_state != SubscriberStateOnline || _events.empty()) + { + return; + } - // - // Unless we're in the sending state we do nothing. - // - if(_state == SubscriberStateSending) + // Send up to _maxOutstanding pending events. + while(_outstanding < _maxOutstanding && !_events.empty()) { // - // If there are no more events then we transition back to - // online. + // Dequeue the head event, count one more outstanding AMI + // request. // - if(_events.empty()) + EventDataPtr e = _events.front(); + _events.erase(_events.begin()); + ++_outstanding; + + try { - _state = SubscriberStateOnline; + _obj->ice_invoke_async(new OnewayIceInvokeI(this), e->op, e->mode, e->data, e->context); } - // - // Otherwise we re-add for a flush. - // - else + catch(const Ice::Exception& ex) { - _state = SubscriberStateFlushPending; - _instance->subscriberPool()->flush(this); + error(true, ex); + return; } } } -namespace -{ - -class TwowayOrderedInvokeI : public Ice::AMI_Object_ice_invoke +void +SubscriberOneway::sent() { -public: - - TwowayOrderedInvokeI(const SubscriberTwowayOrderedPtr& subscriber) : - _subscriber(subscriber) - { - } + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + // Decrement the _outstanding count. + --_outstanding; + assert(_outstanding >= 0 && _outstanding < _maxOutstanding); - virtual void - ice_response(bool, const std::vector<Ice::Byte>&) + if(_events.empty() && _outstanding == 0 && _shutdown) { - _subscriber->response(); + _lock.notify(); } - - virtual void - ice_exception(const Ice::Exception& ex) + else if(_outstanding == 0 && !_events.empty()) { - _subscriber->error(ex); + _instance->batchFlusher()->schedule(new ResponseTimerTask(this), IceUtil::Time::seconds(0)); } - -private: - - const SubscriberTwowayOrderedPtr _subscriber; -}; - } -SubscriberTwowayOrdered::SubscriberTwowayOrdered( +SubscriberTwoway::SubscriberTwoway( const InstancePtr& instance, + const SubscriberRecord& rec, const Ice::ObjectPrx& proxy, + int retryCount, + int maxOutstanding, const Ice::ObjectPrx& obj) : - Subscriber(instance, proxy, false, obj->ice_getIdentity()), + Subscriber(instance, rec, proxy, retryCount, maxOutstanding), _obj(obj) { } -bool -SubscriberTwowayOrdered::flush() +void +SubscriberTwoway::flush() { - EventDataPtr e; + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + // + // If the subscriber isn't online we're done. + // + if(_state != SubscriberStateOnline || _events.empty()) + { + return; + } + + // Send up to _maxOutstanding pending events. + while(_outstanding < _maxOutstanding && !_events.empty()) { - IceUtil::Mutex::Lock sync(_mutex); - // - // If the subscriber errored out then we're done. + // Dequeue the head event, count one more outstanding AMI + // request. // - if(_state == SubscriberStateError) + EventDataPtr e = _events.front(); + _events.erase(_events.begin()); + ++_outstanding; + + try { - return false; + _obj->ice_invoke_async(new IceInvokeI(this), e->op, e->mode, e->data, e->context); + } + catch(const Ice::Exception& ex) + { + error(true, ex); + return; } - assert(_state == SubscriberStateFlushPending); - assert(!_events.empty()); - - e = _events.front(); - _events.erase(_events.begin()); - } - - _obj->ice_invoke_async(new TwowayOrderedInvokeI(this), e->op, e->mode, e->data, e->context); - - return false; -} - -void -SubscriberTwowayOrdered::response() -{ - IceUtil::Mutex::Lock sync(_mutex); - - assert(_state != SubscriberStateError); - if(_events.empty()) - { - _state = SubscriberStateOnline; - return; } - _instance->subscriberPool()->flush(this); } namespace @@ -532,7 +453,7 @@ class Topiclink_forwardI : public IceStorm::AMI_TopicLink_forward { public: - Topiclink_forwardI(const SubscriberLinkPtr& subscriber) : + Topiclink_forwardI(const SubscriberPtr& subscriber) : _subscriber(subscriber) { } @@ -544,328 +465,266 @@ public: } virtual void - ice_exception(const Ice::Exception& ex) + ice_exception(const Ice::Exception& e) { - try - { - ex.ice_throw(); - } - catch(const Ice::ObjectNotExistException& ex) - { - _subscriber->error(ex); - } - catch(const Ice::LocalException& ex) - { - _subscriber->offline(ex); - } + _subscriber->error(true, e); } private: - const SubscriberLinkPtr _subscriber; + const SubscriberPtr _subscriber; }; } SubscriberLink::SubscriberLink( const InstancePtr& instance, - const TopicLinkPrx& obj, - int cost) : - Subscriber(instance, 0, true, obj->ice_getIdentity()), - _obj(TopicLinkPrx::uncheckedCast(obj->ice_collocationOptimized(false))), - _cost(cost), - _warn(true) + const SubscriberRecord& rec) : + Subscriber(instance, rec, 0, -1, 1), + _obj(TopicLinkPrx::uncheckedCast(rec.obj->ice_collocationOptimized(false)->ice_timeout(instance->sendTimeout()))) { } -Subscriber::QueueState -SubscriberLink::queue(bool forwarded, const EventDataSeq& events) +void +SubscriberLink::flush() { - if(forwarded) + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + if(_state != SubscriberStateOnline || _outstanding > 0) { - return QueueStateNoFlush; + return; } - // - // Don't propagate a message that has already been forwarded. - // Also, if this link has a non-zero cost, then don't propagate a - // message whose cost exceeds the link cost. - // - - IceUtil::Mutex::Lock sync(_mutex); - - if(_state == SubscriberStateError) - { - return QueueStateError; - } + EventDataSeq v; + v.swap(_events); - // - // If the proxy is offline and its time to send another event then - // put us into retry state. - // - if(_state == SubscriberStateOffline) + EventDataSeq::iterator p = v.begin(); + while(p != v.end()) { - // - // If there are alot of subscribers offline then we will call - // Time::now() alot, which could be costly. This could be - // optimized to only one per event-batch by making the - // forwarded argument an EventInfo thing where the queue-time - // is lazy initialized. - // - if(IceUtil::Time::now(IceUtil::Time::Monotonic) < _next) + if(_rec.cost != 0) { - return QueueStateNoFlush; - } - - // - // State transition to online. - // - _state = SubscriberStateOnline; - } - - int queued = 0; - for(EventDataSeq::const_iterator p = events.begin(); p != events.end(); ++p) - { - if(_cost != 0) - { - // - // Note that we could calculate this cost once and cache - // it in a private form of the event to avoid this if this - // really is a performance problem (this could use the - // EventInfo thing discussed above). - // int cost = 0; Ice::Context::const_iterator q = (*p)->context.find("cost"); if(q != (*p)->context.end()) { cost = atoi(q->second.c_str()); } - if(cost > _cost) + if(cost > _rec.cost) { + p = v.erase(p); continue; } } - ++queued; - _events.push_back(*p); + ++p; } - if(_state == SubscriberStateFlushPending || queued == 0) + if(!v.empty()) { - return QueueStateNoFlush; - } - _state = SubscriberStateFlushPending; - return QueueStateFlush; -} - -bool -SubscriberLink::flush() -{ - EventDataSeq v; - { - IceUtil::Mutex::Lock sync(_mutex); - - // - // If the subscriber errored out then we're done. - // - if(_state == SubscriberStateError) + try { - return false; + ++_outstanding; + _obj->forward_async(new Topiclink_forwardI(this), v); } - - assert(_state == SubscriberStateFlushPending); - assert(!_events.empty()); - - v.swap(_events); - } - - _obj->forward_async(new Topiclink_forwardI(this), v); - return false; -} - -void -SubscriberLink::response() -{ - IceUtil::Mutex::Lock sync(_mutex); - - assert(_state != SubscriberStateError); - - // - // A successful response means we're no longer retrying, we're - // back active. - // - _warn = true; - - // - // No more events, no need to requeue this subscriber. - // - if(_events.empty()) - { - _state = SubscriberStateOnline; - return; - } - _instance->subscriberPool()->flush(this); -} - -void -SubscriberLink::offline(const Ice::Exception& e) -{ - IceUtil::Mutex::Lock sync(_mutex); - assert(_state != SubscriberStateOffline); - - _next = IceUtil::Time::now(IceUtil::Time::Monotonic) + _instance->discardInterval(); - - TraceLevelsPtr traceLevels = _instance->traceLevels(); - if(_warn) - { - Ice::Warning warn(traceLevels->logger); - warn << traceLevels->subscriberCat << ":" << _instance->communicator()->identityToString(_id) - << ": link offline: " << e; - } - else - { - if(traceLevels->subscriber > 0) + catch(const Ice::Exception& ex) { - Ice::Trace out(traceLevels->logger, traceLevels->subscriberCat); - out << _instance->communicator()->identityToString(_id) << ": link offline: " << e - << " discarding events: " << _instance->discardInterval() << "s"; + error(true, ex); } } - - _state = SubscriberStateOffline; - _warn = false; - - // - // Clear all queued events. - // - _events.clear(); } SubscriberPtr Subscriber::create( const InstancePtr& instance, - const string& topicName, - const Ice::ObjectPrx& obj, - const IceStorm::QoS& qos) -{ - PerSubscriberPublisherIPtr per = new PerSubscriberPublisherI(instance); - Ice::Identity perId; - perId.category = instance->instanceName(); - perId.name = "topic." + topicName + ".publish." + - instance->communicator()->identityToString(obj->ice_getIdentity()); - Ice::ObjectPrx proxy = instance->objectAdapter()->add(per, perId); - TraceLevelsPtr traceLevels = instance->traceLevels(); - SubscriberPtr subscriber; - - try - { - string reliability; - QoS::const_iterator p = qos.find("reliability"); - if(p != qos.end()) - { - reliability = p->second; - } - if(!reliability.empty() && reliability != "ordered") - { - throw BadQoS("invalid reliability: " + reliability); - } + const SubscriberRecord& rec) +{ + if(rec.link) + { + return new SubscriberLink(instance, rec); + } + else + { + PerSubscriberPublisherIPtr per = new PerSubscriberPublisherI(instance); + Ice::Identity perId; + perId.category = instance->instanceName(); + perId.name = "topic." + rec.topicName + ".publish." + + instance->communicator()->identityToString(rec.obj->ice_getIdentity()); + Ice::ObjectPrx proxy = instance->publishAdapter()->add(per, perId); + TraceLevelsPtr traceLevels = instance->traceLevels(); + SubscriberPtr subscriber; - // - // Override the timeout. - // - Ice::ObjectPrx newObj; try { - newObj = obj->ice_timeout(instance->sendTimeout()); - } - catch(const Ice::FixedProxyException&) - { + int retryCount = 0; + QoS::const_iterator p = rec.theQoS.find("retryCount"); + if(p != rec.theQoS.end()) + { + retryCount = atoi(p->second.c_str()); + } + + string reliability; + p = rec.theQoS.find("reliability"); + if(p != rec.theQoS.end()) + { + reliability = p->second; + } + if(!reliability.empty() && reliability != "ordered") + { + throw BadQoS("invalid reliability: " + reliability); + } + // - // In the event IceStorm is collocated this could be a - // fixed proxy in which case its not possible to set the - // timeout. + // Override the timeout. // - newObj = obj; - } - if(reliability == "ordered") - { - if(!newObj->ice_isTwoway()) + Ice::ObjectPrx newObj; + try { - throw BadQoS("ordered reliability requires a twoway proxy"); + newObj = rec.obj->ice_timeout(instance->sendTimeout()); } - subscriber = new SubscriberTwowayOrdered(instance, proxy, newObj); - } - else if(newObj->ice_isOneway() || newObj->ice_isDatagram() || - newObj->ice_isBatchOneway() || newObj->ice_isBatchDatagram()) - { - subscriber = new SubscriberOneway(instance, proxy, newObj); + catch(const Ice::FixedProxyException&) + { + // + // In the event IceStorm is collocated this could be a + // fixed proxy in which case its not possible to set the + // timeout. + // + newObj = rec.obj; + } + if(reliability == "ordered") + { + if(!newObj->ice_isTwoway()) + { + throw BadQoS("ordered reliability requires a twoway proxy"); + } + subscriber = new SubscriberTwoway(instance, rec, proxy, retryCount, 1, newObj); + } + else if(newObj->ice_isOneway() || newObj->ice_isDatagram()) + { + if(retryCount > 0) + { + throw BadQoS("non-zero retryCount QoS requires a twoway proxy"); + } + subscriber = new SubscriberOneway(instance, rec, proxy, retryCount, newObj); + } + else if(newObj->ice_isBatchOneway() || newObj->ice_isBatchDatagram()) + { + if(retryCount > 0) + { + throw BadQoS("non-zero retryCount QoS requires a twoway proxy"); + } + subscriber = new SubscriberBatch(instance, rec, proxy, retryCount, newObj); + } + else //if(newObj->ice_isTwoway()) + { + assert(newObj->ice_isTwoway()); + subscriber = new SubscriberTwoway(instance, rec, proxy, retryCount, 5, newObj); + } + per->setSubscriber(subscriber); } - else if(newObj->ice_isTwoway()) + catch(const Ice::Exception&) { - subscriber = new SubscriberTwoway(instance, proxy, newObj); + instance->publishAdapter()->remove(proxy->ice_getIdentity()); + throw; } - per->setSubscriber(subscriber); - } - catch(const Ice::Exception&) - { - instance->objectAdapter()->remove(proxy->ice_getIdentity()); - throw; - } - - return subscriber; -} -SubscriberPtr -Subscriber::create( - const InstancePtr& instance, - const TopicLinkPrx& link, - int cost) -{ - return new SubscriberLink( - instance, - TopicLinkPrx::uncheckedCast(link->ice_timeout(instance->sendTimeout())), - cost); + return subscriber; + } } Subscriber::~Subscriber() { + //cout << "~Subscriber" << endl; } Ice::ObjectPrx Subscriber::proxy() const { - return _proxy; + return _proxyReplica; } Ice::Identity Subscriber::id() const { - return _id; + return _rec.id; } -bool -Subscriber::persistent() const +SubscriberRecord +Subscriber::record() const { - return _persistent; + return _rec; } -Subscriber::QueueState -Subscriber::queue(bool, const EventDataSeq& events) +bool +Subscriber::queue(bool forwarded, const EventDataSeq& events) { - IceUtil::Mutex::Lock sync(_mutex); + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + // If this is a link subscriber if the set of events were + // forwarded from another IceStorm instance then do not queue the + // events. + if(forwarded && _rec.link) + { + return true; + } + + switch(_state) + { + case SubscriberStateOffline: + { + if(IceUtil::Time::now(IceUtil::Time::Monotonic) < _next) + { + break; + } + + // + // State transition to online. + // + setState(SubscriberStateOnline); + // fall through + } + case SubscriberStateOnline: + copy(events.begin(), events.end(), back_inserter(_events)); + flush(); + break; + + case SubscriberStateError: + return false; + + case SubscriberStateReaped: + break; + } + + return true; +} + +bool +Subscriber::reap() +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + assert(_state >= SubscriberStateError); if(_state == SubscriberStateError) { - return QueueStateError; + setState(SubscriberStateReaped); + return true; } + return false; +} - copy(events.begin(), events.end(), back_inserter(_events)); - if(_state == SubscriberStateSending || _state == SubscriberStateFlushPending) +void +Subscriber::resetIfReaped() +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + if(_state == SubscriberStateReaped) { - return QueueStateNoFlush; + setState(SubscriberStateError); } +} - _state = SubscriberStateFlushPending; - return QueueStateFlush; +bool +Subscriber::errored() const +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + return _state >= SubscriberStateError; } void @@ -878,7 +737,7 @@ Subscriber::destroy() { try { - _instance->objectAdapter()->remove(_proxy->ice_getIdentity()); + _instance->publishAdapter()->remove(_proxy->ice_getIdentity()); } catch(const Ice::NotRegisteredException&) { @@ -892,60 +751,189 @@ Subscriber::destroy() } void -Subscriber::flushTime(const IceUtil::Time& interval) +Subscriber::error(bool dec, const Ice::Exception& e) { - if(_resetMax || interval > _maxSend) + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + if(dec) { - // - // If is possible for the flush interval to be zero if the - // timer resolution is sufficiently big. See - // http://bugzilla.zeroc.com/bugzilla/show_bug.cgi?id=1739 - // - //assert(interval != IceUtil::Time()); - _resetMax = false; - _maxSend = interval; + // Decrement the _outstanding count. + --_outstanding; + assert(_outstanding >= 0 && _outstanding < _maxOutstanding); } -} -IceUtil::Time -Subscriber::pollMaxFlushTime(const IceUtil::Time& now) -{ - // The next call to flushTime can reset the max time. - _resetMax = true; - return _maxSend; -} + // A hard error is an ObjectNotExistException or + // NotRegisteredException. + bool hardError = dynamic_cast<const Ice::ObjectNotExistException*>(&e) || + dynamic_cast<const Ice::NotRegisteredException*>(&e); -void -Subscriber::error(const Ice::Exception& e) -{ - IceUtil::Mutex::Lock sync(_mutex); - if(_state != SubscriberStateError) + // + // A twoway subscriber can queue multiple send events and + // therefore its possible to get multiple error'd replies. Ignore + // replies if we're retrying and its not yet time to process the + // next request. + // + IceUtil::Time now = IceUtil::Time::now(IceUtil::Time::Monotonic); + if(!hardError && _state == SubscriberStateOffline && now < _next) + { + return; + } + + // + // If we're in our retry limits and the error isn't a hard failure + // (that is ObjectNotExistException or NotRegisteredException) + // then we transition to an offline state. + // + if(!hardError && (_retryCount == -1 || _currentRetry < _retryCount)) + { + assert(_state < SubscriberStateError); + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(_currentRetry == 0) + { + Ice::Warning warn(traceLevels->logger); + warn << traceLevels->subscriberCat << ":" << _instance->communicator()->identityToString(_rec.id) + << ": subscriber offline: " << e + << " discarding events: " << _instance->discardInterval() << "s retryCount: " << _retryCount; + } + else + { + if(traceLevels->subscriber > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->subscriberCat); + out << this << " "; + out << _instance->communicator()->identityToString(_rec.id) << ": subscriber offline: " << e + << " discarding events: " << _instance->discardInterval() << "s retry: " + << _currentRetry << "/" << _retryCount; + } + } + + // Transition to offline state, increment the retry count and + // clear all queued events. + _next = now + _instance->discardInterval(); + ++_currentRetry; + _events.clear(); + setState(SubscriberStateOffline); + } + // Errored out. + else if(_state < SubscriberStateError) { - _state = SubscriberStateError; _events.clear(); + setState(SubscriberStateError); TraceLevelsPtr traceLevels = _instance->traceLevels(); if(traceLevels->subscriber > 0) { Ice::Trace out(traceLevels->logger, traceLevels->subscriberCat); - out << _instance->communicator()->identityToString(_id) << ": topic publish failed: " << e; + out << this << " "; + out << _instance->communicator()->identityToString(_rec.id) << ": subscriber errored out: " << e + << " retry: " << _currentRetry << "/" << _retryCount; } } + + if(_shutdown && _events.empty()) + { + _lock.notify(); + } +} + +void +Subscriber::response() +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + // Decrement the _outstanding count. + --_outstanding; + assert(_outstanding >= 0 && _outstanding < _maxOutstanding); + + // + // A successful response means we're no longer retrying, we're + // back active. + // + _currentRetry = 0; + + if(_events.empty() && _outstanding == 0 && _shutdown) + { + _lock.notify(); + } + else + { + flush(); + } +} + +void +Subscriber::shutdown() +{ + IceUtil::Monitor<IceUtil::RecMutex>::Lock sync(_lock); + + _shutdown = true; + while(_outstanding > 0 && !_events.empty()) + { + _lock.wait(); + } } Subscriber::Subscriber( const InstancePtr& instance, + const SubscriberRecord& rec, const Ice::ObjectPrx& proxy, - bool persistent, - const Ice::Identity& id) : + int retryCount, + int maxOutstanding) : _instance(instance), - _id(id), - _persistent(persistent), + _rec(rec), + _retryCount(retryCount), + _maxOutstanding(maxOutstanding), _proxy(proxy), + _proxyReplica(proxy), + _shutdown(false), _state(SubscriberStateOnline), - _resetMax(true), - _maxSend(IceUtil::Time::seconds(60*24)) // A long time + _outstanding(0), + _currentRetry(0) +{ + if(_proxy && _instance->publisherReplicaProxy()) + { + const_cast<Ice::ObjectPrx&>(_proxyReplica) = + _instance->publisherReplicaProxy()->ice_identity(_proxy->ice_getIdentity()); + } +} + +namespace +{ + +string +stateToString(Subscriber::SubscriberState state) { + switch(state) + { + case Subscriber::SubscriberStateOnline: + return "online"; + case Subscriber::SubscriberStateOffline: + return "offline"; + case Subscriber::SubscriberStateError: + return "error"; + case Subscriber::SubscriberStateReaped: + return "reaped"; + default: + return "???"; + } +} + +} + +void +Subscriber::setState(Subscriber::SubscriberState state) +{ + if(state != _state) + { + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->subscriber > 1) + { + Ice::Trace out(traceLevels->logger, traceLevels->subscriberCat); + out << this << " transition from " << stateToString(_state) << " to " << stateToString(state); + } + _state = state; + } } bool diff --git a/cpp/src/IceStorm/Subscriber.h b/cpp/src/IceStorm/Subscriber.h index 787ec81ce84..14e4a8efd4d 100644 --- a/cpp/src/IceStorm/Subscriber.h +++ b/cpp/src/IceStorm/Subscriber.h @@ -7,10 +7,12 @@ // // ********************************************************************** -#ifndef SUBSCRIBERS_H -#define SUBSCRIBERS_H +#ifndef SUBSCRIBER_H +#define SUBSCRIBER_H -#include <IceStorm/IceStormInternal.h> // F +#include <IceStorm/IceStormInternal.h> +#include <IceStorm/SubscriberRecord.h> +#include <IceUtil/RecMutex.h> namespace IceStorm { @@ -25,66 +27,64 @@ class Subscriber : public IceUtil::Shared { public: - static SubscriberPtr create(const InstancePtr&, const std::string&, const Ice::ObjectPrx&, const IceStorm::QoS&); - static SubscriberPtr create(const InstancePtr&, const TopicLinkPrx&, int); + static SubscriberPtr create(const InstancePtr&, const IceStorm::SubscriberRecord&); ~Subscriber(); - Ice::ObjectPrx proxy() const; - Ice::Identity id() const; - bool persistent() const; + Ice::ObjectPrx proxy() const; // Get the per subscriber object. + Ice::Identity id() const; // Return the id of the subscriber. + IceStorm::SubscriberRecord record() const; // Get the subscriber record. - enum QueueState + // Returns false if the subscriber should be reaped. + bool queue(bool, const EventDataSeq&); + bool reap(); + void resetIfReaped(); + bool errored() const; + + void destroy(); + + // To be called by the AMI callbacks only. + void error(bool, const Ice::Exception&); + void response(); + + void shutdown(); + + enum SubscriberState { - QueueStateError, - QueueStateFlush, - QueueStateNoFlush + SubscriberStateOnline, // Online waiting to send events. + SubscriberStateOffline, // Offline, retrying. + SubscriberStateError, // Error state, awaiting reaping. + SubscriberStateReaped // Reaped. }; - virtual QueueState queue(bool, const std::vector<EventDataPtr>&); - // - // Return true if flush() must be called again, false otherwise. - // - virtual bool flush() = 0; - virtual void destroy(); - - // - // These methods must only be called by the SubscriberPool they - // are not internally mutex protected. - // - void flushTime(const IceUtil::Time&); - IceUtil::Time pollMaxFlushTime(const IceUtil::Time&); - - void error(const Ice::Exception&); + + virtual void flush() = 0; protected: - Subscriber(const InstancePtr&, const Ice::ObjectPrx&, bool, const Ice::Identity&); + void setState(SubscriberState); + + Subscriber(const InstancePtr&, const IceStorm::SubscriberRecord&, const Ice::ObjectPrx&, int, int); // Immutable const InstancePtr _instance; - const Ice::Identity _id; - const bool _persistent; - const Ice::ObjectPrx _proxy; + const IceStorm::SubscriberRecord _rec; // The subscriber record. + const int _retryCount; // The retryCount. + const int _maxOutstanding; // The maximum number of oustanding events. + const Ice::ObjectPrx _proxy; // The per subscriber object proxy, if any. + const Ice::ObjectPrx _proxyReplica; // The replicated per subscriber object proxy, if any. - IceUtil::Mutex _mutex; + IceUtil::Monitor<IceUtil::RecMutex> _lock; + + bool _shutdown; - enum SubscriberState - { - SubscriberStateOnline, - SubscriberStateFlushPending, - SubscriberStateSending, - SubscriberStateOffline, - SubscriberStateError - }; SubscriberState _state; // The subscriber state. + + int _outstanding; // The current number of outstanding responses. EventDataSeq _events; // The queue of events to send. - // - // Not protected by _mutex. These members are protected by the - // SubscriberPool mutex. - // - bool _resetMax; - IceUtil::Time _maxSend; + // The next to try sending a new event if we're offline. + IceUtil::Time _next; + int _currentRetry; }; bool operator==(const IceStorm::SubscriberPtr&, const Ice::Identity&); @@ -94,4 +94,4 @@ bool operator<(const IceStorm::Subscriber&, const IceStorm::Subscriber&); } -#endif // SUBSCRIBERS_H +#endif // SUBSCRIBER_H diff --git a/cpp/src/IceStorm/SubscriberPool.cpp b/cpp/src/IceStorm/SubscriberPool.cpp deleted file mode 100644 index 8f71d971657..00000000000 --- a/cpp/src/IceStorm/SubscriberPool.cpp +++ /dev/null @@ -1,531 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#include <IceStorm/SubscriberPool.h> -#include <IceStorm/Instance.h> -#include <IceStorm/TraceLevels.h> -#include <IceStorm/Subscriber.h> - -#include <Ice/Communicator.h> -#include <Ice/Properties.h> -#include <Ice/LoggerUtil.h> - -using namespace IceStorm; -using namespace std; - -namespace -{ - -class SubscriberPoolWorker : public IceUtil::Thread -{ -public: - - SubscriberPoolWorker(const SubscriberPoolPtr& manager) : - _manager(manager) - { - start(); - } - - ~SubscriberPoolWorker() - { - } - - virtual void - run() - { - IceUtil::Time interval = IceUtil::Time::seconds(24 * 60); // A long time. - SubscriberPtr sub; - bool requeue = false; - bool computeInterval = false; - while(true) - { - _manager->dequeue(sub, requeue, interval, computeInterval); - if(!sub) - { - return; - } - - // - // If flush returns true then the subscriber needs to be - // flushed again, so therefore we will re-enqueue the - // subscriber in the call to dequeue. - // - if(computeInterval) - { - IceUtil::Time start = IceUtil::Time::now(IceUtil::Time::Monotonic); - requeue = sub->flush(); - interval = IceUtil::Time::now(IceUtil::Time::Monotonic) - start; - } - else - { - requeue = sub->flush(); - interval = IceUtil::Time::seconds(24 * 60); // A long time. - } - } - } - -private: - - const SubscriberPoolPtr _manager; -}; - -} - -SubscriberPoolMonitor::SubscriberPoolMonitor(const SubscriberPoolPtr& manager, const IceUtil::Time& timeout) : - _manager(manager), - _timeout(timeout), - _needCheck(false), - _destroyed(false) -{ - start(); -} - -SubscriberPoolMonitor::~SubscriberPoolMonitor() -{ -} - -void -SubscriberPoolMonitor::run() -{ - for(;;) - { - { - Lock sync(*this); - if(_destroyed) - { - return; - } - - if(_needCheck) - { - timedWait(_timeout); - // - // Monitoring was stopped. - // - if(!_needCheck) - { - continue; - } - if(_destroyed) - { - return; - } - } - else - { - wait(); - continue; - } - } - // - // Call outside of the lock to prevent any deadlocks. - // - _manager->check(); - } -} - -void -SubscriberPoolMonitor::startMonitor() -{ - Lock sync(*this); - if(!_needCheck) - { - _needCheck = true; - notify(); - } -} - -void -SubscriberPoolMonitor::stopMonitor() -{ - Lock sync(*this); - _needCheck = false; -} - -void -SubscriberPoolMonitor::destroy() -{ - Lock sync(*this); - _destroyed = true; - notify(); -} - -SubscriberPool::SubscriberPool(const InstancePtr& instance) : - _traceLevels(instance->traceLevels()), - _sizeMax(instance->properties()->getPropertyAsIntWithDefault("IceStorm.SubscriberPool.SizeMax", 0)), - _sizeWarn(instance->properties()->getPropertyAsIntWithDefault("IceStorm.SubscriberPool.SizeWarn", 0)), - _size(instance->properties()->getPropertyAsIntWithDefault("IceStorm.SubscriberPool.Size", 1)), - // minimum 50ms, default 1s. - _timeout(IceUtil::Time::milliSeconds(max(instance->properties()->getPropertyAsIntWithDefault( - "IceStorm.SubscriberPool.Timeout", 1000), 50))), - // 10 * the stall timeout. - _stallCheck(_timeout * 10), - _destroyed(false), - _reap(0), - _inUse(0) -{ - try - { - __setNoDelete(true); - _subscriberPoolMonitor = new SubscriberPoolMonitor(this, _timeout); - for(unsigned int i = 0; i < _size; ++i) - { - ++_inUse; - _workers.push_back(new SubscriberPoolWorker(this)); - } - } - catch(const IceUtil::Exception& ex) - { - { - Ice::Error out(_traceLevels->logger); - out << "SubscriberPool: " << ex; - } - destroy(); - __setNoDelete(false); - throw; - } - - __setNoDelete(false); -} - -SubscriberPool::~SubscriberPool() -{ -} - -void -SubscriberPool::flush(list<SubscriberPtr>& subscribers) -{ - Lock sync(*this); - if(_destroyed) - { - return; - } - // - // Splice on the new set of subscribers to SubscriberPool. - // - _pending.splice(_pending.end(), subscribers); - assert(invariants()); - notifyAll(); -} - -void -SubscriberPool::flush(const SubscriberPtr& subscriber) -{ - Lock sync(*this); - if(_destroyed) - { - return; - } - _pending.push_back(subscriber); - assert(invariants()); - notify(); -} - -void -SubscriberPool::add(const SubscriberPtr& subscriber) -{ - Lock sync(*this); - if(_destroyed) - { - return; - } - _subscribers.push_back(subscriber); - assert(invariants()); -} - -void -SubscriberPool::remove(const SubscriberPtr& subscriber) -{ - Lock sync(*this); - if(_destroyed) - { - return; - } - // - // Note that this cannot remove based on the subscriber id because - // the pool is TopicManager scoped and not topic scoped therefore - // its quite possible to have two subscribers with the same id in - // the list. - // - list<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), subscriber); - assert(p != _subscribers.end()); - _subscribers.erase(p); -} - -// -// The passed subscriber need to be enqueued again. -// -void -SubscriberPool::dequeue(SubscriberPtr& subscriber, bool requeue, const IceUtil::Time& interval, bool& computeInterval) -{ - Lock sync(*this); - - if(_destroyed) - { - subscriber = 0; - return; - } - - if(subscriber) - { - if(requeue) - { - _pending.push_back(subscriber); - // - // Its necessary to notify here since this thread might go - // on and kill itself in which case if another worker is - // in wait() it will not wake up and process the subscriber. - // - notify(); - assert(invariants()); - } - subscriber->flushTime(interval); - } - // - // Clear the reference. - // - subscriber = 0; - - // - // The worker is no longer in use. - // - --_inUse; - - // - // If _sizeMax is 1 we never spawn up new threads if a stall is - // detected. - // - if(_sizeMax != 1) - { - // - // Reap dead workers, if necessary. - // - if(_reap > 0) - { - if(_traceLevels->subscriberPool > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberPoolCat); - out << "reaping: " << _reap << " workers"; - } - list<IceUtil::ThreadPtr>::iterator p = _workers.begin(); - while(p != _workers.end() && _reap > 0) - { - if(!(*p)->isAlive()) - { - (*p)->getThreadControl().join(); - p = _workers.erase(p); - --_reap; - } - else - { - ++p; - } - } - } - - // - // If we have extra workers every _stallCheck period we run - // through the complete set of subscribers and determine how - // many have stalled since the last check. If this number is - // less than the number of extra threads then we terminate the - // calling worker. - // - // - The flush time is protected by the subscriber pool mutex. - // - The flush time is only computed if we have extra threads, - // otherwise it is set to some large value. - // - The max flush time is reset to the next sending interval - // after after _stallCheck period. - // - Every subscriber is considered to be stalled iff it has - // never sent an event or we have just created the first - // additional worker. The first handles the case where a - // subscriber stalls for a long time on the first message - // send. The second means that we can disable computation of - // the flush latency if there are no additional threads. - // - if(_workers.size() > _size) - { - IceUtil::Time now = IceUtil::Time::now(IceUtil::Time::Monotonic); - if(now - _lastStallCheck > _stallCheck) - { - _lastStallCheck = now; - unsigned int stalls = 0; - for(list<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) - { - if((*p)->pollMaxFlushTime(now) > _timeout) - { - ++stalls; - } - } - - if(_traceLevels->subscriberPool > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberPoolCat); - out << "checking stalls. extra workers: " << _workers.size() - _size - << " subscribers: " << _subscribers.size() << " stalls: " << stalls; - } - - if((_workers.size() - _size) > stalls) - { - if(_traceLevels->subscriberPool > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberPoolCat); - out << "destroying workers"; - } - ++_reap; - return; - } - } - } - } - - while(_pending.empty() && !_destroyed) - { - // - // If we wait then there is no need to monitor anymore. - // - _subscriberPoolMonitor->stopMonitor(); - wait(); - } - - if(_destroyed) - { - return; - } - - _lastDequeue = IceUtil::Time::now(IceUtil::Time::Monotonic); - - subscriber = _pending.front(); - _pending.pop_front(); - - ++_inUse; - - // - // If all threads are now in use then we need to start the - // monitoring, otherwise we don't need to monitor. - // - if(_inUse == _workers.size() && (_workers.size() < _sizeMax || _sizeMax != 1)) - { - _subscriberPoolMonitor->startMonitor(); - } - else - { - _subscriberPoolMonitor->stopMonitor(); - } - // - // We only need to compute the push interval if we've created - // stall threads. - // - computeInterval = (_workers.size() - _size) > 0; -} - -void -SubscriberPool::destroy() -{ - // - // First mark the pool as destroyed. This causes all of the worker - // threads to unblock and terminate. We also clear the set of - // subscribers here since there is a cycle (instance -> pool -> - // subscribers -> instance). No new subscribers can be added once - // _destroyed is set. - // - { - Lock sync(*this); - _destroyed = true; - notifyAll(); - if(_subscriberPoolMonitor) - { - _subscriberPoolMonitor->destroy(); - } - _subscribers.clear(); - _pending.clear(); - } - // - // Next join with each worker. - // - for(list<IceUtil::ThreadPtr>::const_iterator p = _workers.begin(); p != _workers.end(); ++p) - { - (*p)->getThreadControl().join(); - } - _workers.clear(); - - // - // Once all of the workers have gone then we'll no longer have - // concurrent access to the pool monitor, so we can join with it - // and then clear to remove the circular reference count. - // - if(_subscriberPoolMonitor) - { - _subscriberPoolMonitor->getThreadControl().join(); - _subscriberPoolMonitor = 0; - } -} - -void -SubscriberPool::check() -{ - Lock sync(*this); - if(_destroyed) - { - return; - } - - IceUtil::Time now = IceUtil::Time::now(IceUtil::Time::Monotonic); - IceUtil::Time interval = now - _lastDequeue; -/* - if(_traceLevels->subscriberPool > 1) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberPoolCat); - out << "check called: interval: " << interval << " timeout: " << _timeout - << " pending: " << _pending.size() << " running: " << _workers.size() - << " sizeMax: " << _sizeMax; - } -*/ - - if(interval > _timeout && _pending.size() > 0 && (_workers.size() < _sizeMax || _sizeMax == 0)) - { - if(_traceLevels->subscriberPool > 0) - { - Ice::Trace out(_traceLevels->logger, _traceLevels->subscriberPoolCat); - out << "detected stall: creating thread: threads: " << _workers.size(); - } - - // - // We'll now start stall checking at regular intervals if this - // is the first newly created worker. Here we need to - // initially set the stall check and the number of requests at - // this point. - // - if(_workers.size() == _size) - { - _lastStallCheck = now; - } - - ++_inUse; - _workers.push_back(new SubscriberPoolWorker(this)); - } -} - -bool -SubscriberPool::invariants() -{ - set<SubscriberPtr> subs; - list<SubscriberPtr>::const_iterator p; - for(p = _subscribers.begin(); p != _subscribers.end(); ++p) - { - assert(subs.find(*p) == subs.end()); - subs.insert(*p); - } - subs.clear(); - for(p = _pending.begin(); p != _pending.end(); ++p) - { - assert(subs.find(*p) == subs.end()); - subs.insert(*p); - } - return true; -} diff --git a/cpp/src/IceStorm/SubscriberPool.h b/cpp/src/IceStorm/SubscriberPool.h deleted file mode 100644 index 4e1354602f4..00000000000 --- a/cpp/src/IceStorm/SubscriberPool.h +++ /dev/null @@ -1,109 +0,0 @@ -// ********************************************************************** -// -// Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. -// -// This copy of Ice is licensed to you under the terms described in the -// ICE_LICENSE file included in this distribution. -// -// ********************************************************************** - -#ifndef SUBSCRIBER_POOL_H -#define SUBSCRIBER_POOL_H - -#include <IceStorm/Subscriber.h> - -#include <IceUtil/Mutex.h> -#include <IceUtil/Monitor.h> -#include <IceUtil/Time.h> -#include <IceUtil/Thread.h> -#include <Ice/Identity.h> -#include <list> -#include <set> - -namespace IceStorm -{ - -// -// Forward declarations. -// -class TraceLevels; -typedef IceUtil::Handle<TraceLevels> TraceLevelsPtr; - -class Instance; -typedef IceUtil::Handle<Instance> InstancePtr; - -class SubscriberPool; -typedef IceUtil::Handle<SubscriberPool> SubscriberPoolPtr; - -class SubscriberPoolMonitor : public IceUtil::Thread, public IceUtil::Monitor<IceUtil::Mutex> -{ -public: - - SubscriberPoolMonitor(const SubscriberPoolPtr&, const IceUtil::Time&); - ~SubscriberPoolMonitor(); - - virtual void run(); - - void startMonitor(); - void stopMonitor(); - void destroy(); - -private: - - const SubscriberPoolPtr _manager; - const IceUtil::Time _timeout; - bool _needCheck; - bool _destroyed; -}; - -typedef IceUtil::Handle<SubscriberPoolMonitor> SubscriberPoolMonitorPtr; - -class SubscriberPool : public IceUtil::Shared, public IceUtil::Monitor<IceUtil::Mutex> -{ -public: - - SubscriberPool(const InstancePtr&); - ~SubscriberPool(); - - void flush(std::list<SubscriberPtr>&); - void flush(const SubscriberPtr&); - void add(const SubscriberPtr&); - void remove(const SubscriberPtr&); - void destroy(); - - // - // For use by the subscriber worker. - // - void dequeue(SubscriberPtr&, bool, const IceUtil::Time&, bool&); - // - // For use by the monitor. - // - void check(); - -private: - - bool invariants(); - - const TraceLevelsPtr _traceLevels; - const unsigned int _sizeMax; - const unsigned int _sizeWarn; - const unsigned int _size; - const IceUtil::Time _timeout; - const IceUtil::Time _stallCheck; - SubscriberPoolMonitorPtr _subscriberPoolMonitor; - - std::list<SubscriberPtr> _pending; - std::list<SubscriberPtr> _subscribers; - bool _destroyed; - std::list<IceUtil::ThreadPtr> _workers; - - int _reap; - unsigned int _inUse; - - IceUtil::Time _lastStallCheck; - IceUtil::Time _lastDequeue; -}; - -} // End namespace IceStorm - -#endif diff --git a/cpp/src/IceStorm/SubscriberRecord.ice b/cpp/src/IceStorm/SubscriberRecord.ice new file mode 100644 index 00000000000..cac2e3cfa97 --- /dev/null +++ b/cpp/src/IceStorm/SubscriberRecord.ice @@ -0,0 +1,69 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef SUBSCRIBER_RECORD_ICE +#define SUBSCRIBER_RECORD_ICE + +#include <Ice/Identity.ice> +#include <IceStorm/IceStorm.ice> + +module IceStorm +{ + + +/** + * + * The key for persistent subscribers, or topics. + * + * If the subscriber identity is empty then the record is used as a + * place holder for the creation of a topic, otherwise the record + * holds a subscription record. + * + **/ +struct SubscriberRecordKey +{ + // The topic identity. + Ice::Identity topic; + + // The identity of the subscriber. If this is empty then the key + // is a placeholder for a topic. + Ice::Identity id; +}; + +/** + * + * Used to store persistent information for persistent subscribers. + * + **/ +struct SubscriberRecord +{ + string topicName; // The name of the topic. + + Ice::Identity id; // The subscriber identity. + + // Is this a link record, or a subscriber record? + bool link; + + Object* obj; // The subscriber object. + + // We could simulate a union here with a class object. + + // Persistent subscriber data. + QoS theQoS; // The QoS. + + // Link subscriber data. + int cost; // The cost. + Topic* theTopic; // The linked topic. +}; + +sequence<SubscriberRecord> SubscriberRecordSeq; + +}; // End module IceStorm + +#endif diff --git a/cpp/src/IceStorm/TopicI.cpp b/cpp/src/IceStorm/TopicI.cpp index 1f3ea907310..a391ab306de 100644 --- a/cpp/src/IceStorm/TopicI.cpp +++ b/cpp/src/IceStorm/TopicI.cpp @@ -12,20 +12,33 @@ #include <IceStorm/Instance.h> #include <IceStorm/Subscriber.h> #include <IceStorm/TraceLevels.h> -#include <IceStorm/SubscriberPool.h> +#include <IceStorm/NodeI.h> +#include <IceStorm/Observers.h> #include <Ice/LoggerUtil.h> -#include <Freeze/Initialize.h> +#include <Freeze/Freeze.h> #include <algorithm> -using namespace IceStorm; using namespace std; +using namespace IceStorm; +using namespace IceStormElection; namespace { +void +halt(const Ice::CommunicatorPtr& com, const Freeze::DatabaseException& ex) +{ + { + Ice::Error error(com->getLogger()); + error << "fatal exception: " << ex << "\n*** Aborting application ***"; + } + + abort(); +} + // // The servant has a 1-1 association with a topic. It is used to // receive events from Publishers. @@ -34,16 +47,22 @@ class PublisherI : public Ice::BlobjectArray { public: - PublisherI(const TopicIPtr& topic) : - _topic(topic) + PublisherI(const TopicImplPtr& topic, const InstancePtr& instance) : + _topic(topic), _instance(instance) { } + ~PublisherI() + { + //cout << "~PublisherI" << endl; + } + virtual bool ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inParams, Ice::ByteSeq&, const Ice::Current& current) { + // The publish call does a cached read. EventDataPtr event = new EventData( current.operation, current.mode, @@ -66,7 +85,8 @@ public: private: - const TopicIPtr _topic; + const TopicImplPtr _topic; + const InstancePtr _instance; }; // @@ -77,118 +97,440 @@ class TopicLinkI : public TopicLink { public: - TopicLinkI(const TopicIPtr& topic) : - _topic(topic) + TopicLinkI(const TopicImplPtr& impl, const InstancePtr& instance) : + _impl(impl), _instance(instance) { } + ~TopicLinkI() + { + //cout << "~TopicLinkI" << endl; + } + virtual void forward(const EventDataSeq& v, const Ice::Current& current) { - _topic->publish(true, v); + // The publish call does a cached read. + _impl->publish(true, v); + } + +private: + + const TopicImplPtr _impl; + const InstancePtr _instance; +}; + +class TopicI : public TopicInternal +{ +public: + + TopicI(const TopicImplPtr& impl, const InstancePtr& instance) : + _impl(impl), _instance(instance) + { + } + + ~TopicI() + { + //cout << "~TopicI" << endl; + } + + virtual string getName(const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->getName(); + } + + virtual Ice::ObjectPrx getPublisher(const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->getPublisher(); + } + + virtual Ice::ObjectPrx getNonReplicatedPublisher(const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->getNonReplicatedPublisher(); + } + + virtual void subscribe(const QoS& qos, const Ice::ObjectPrx& obj, const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + master->subscribe(qos, obj); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + _impl->subscribe(qos, obj); + } + break; + } + } + + virtual Ice::ObjectPrx subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj, + const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + return master->subscribeAndGetPublisher(qos, obj); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + return _impl->subscribeAndGetPublisher(qos, obj); + } + } + } + + virtual void unsubscribe(const Ice::ObjectPrx& subscriber, const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + master->unsubscribe(subscriber); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + _impl->unsubscribe(subscriber); + } + break; + } + } + + virtual TopicLinkPrx getLinkProxy(const Ice::Current&) + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->getLinkProxy(); + } + + virtual void reap(const Ice::IdentitySeq& ids, const Ice::Current& current) + { + NodeIPtr node = _instance->node(); + if(!node->updateMaster(__FILE__, __LINE__)) + { + throw ReapWouldBlock(); + } + FinishUpdateHelper unlock(node); + _impl->reap(ids); + } + + virtual void link(const TopicPrx& topic, Ice::Int cost, const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + master->link(topic, cost); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + _impl->link(topic, cost); + } + break; + } + } + + virtual void unlink(const TopicPrx& topic, const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + master->unlink(topic); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + _impl->unlink(topic); + } + break; + } + } + + virtual LinkInfoSeq getLinkInfoSeq(const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->getLinkInfoSeq(); + } + + virtual void destroy(const Ice::Current& current) + { + while(true) + { + Ice::Long generation = -1; + TopicPrx master = getMasterFor(current, generation, __FILE__, __LINE__); + if(master) + { + try + { + master->destroy(); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + _impl->destroy(); + } + break; + } } private: - const TopicIPtr _topic; + TopicPrx getMasterFor(const Ice::Current& cur, Ice::Long& generation, const char* file, int line) const + { + NodeIPtr node = _instance->node(); + Ice::ObjectPrx master; + if(node) + { + master = _instance->node()->startUpdate(generation, file, line); + } + return (master) ? TopicPrx::uncheckedCast(master->ice_identity(cur.id)) : TopicPrx(); + } + + const TopicImplPtr _impl; + const InstancePtr _instance; }; } + namespace IceStorm { extern string identityToTopicName(const Ice::Identity& id); } -TopicI::TopicI( +TopicImpl::TopicImpl( const InstancePtr& instance, const string& name, const Ice::Identity& id, - const LinkRecordSeq& topicRecord, - const string& envName, - const string& dbName) : + const SubscriberRecordSeq& subscribers) : _instance(instance), _name(name), _id(id), - _connection(Freeze::createConnection(instance->communicator(), envName)), - _topics(_connection, dbName, false), - _topicRecord(topicRecord), + _connection(Freeze::createConnection(instance->communicator(), instance->serviceName())), + _subscriberMap(_connection, "subscribers"), + _llumap(_connection, "llu"), _destroyed(false) { - // - // Create a servant per topic to receive event data. If the - // category is empty then we are in backwards compatibility - // mode. In this case the servant's identity is - // category=<topicname>, name=publish, otherwise the name is - // <instancename>/publisher.<topicname>. The same applies to the - // link proxy. - // - // Activate the object and save a reference to give to publishers. - // - Ice::Identity pubid; - Ice::Identity linkid; - if(id.category.empty()) - { - pubid.category = _name; - pubid.name = "publish"; - linkid.category = _name; - linkid.name = "link"; - } - else + try { - pubid.category = id.category; - pubid.name = _name + ".publish"; - linkid.category = id.category; - linkid.name = _name + ".link"; - } - - _publisherPrx = _instance->objectAdapter()->add(new PublisherI(this), pubid); - _linkPrx = TopicLinkPrx::uncheckedCast(_instance->objectAdapter()->add(new TopicLinkI(this), linkid)); + __setNoDelete(true); + // TODO: If we want to improve the performance of the + // non-replicated case we could allocate a null-topic impl here. + _servant = new TopicI(this, instance); - // - // Re-establish linked subscribers. - // - for(LinkRecordSeq::const_iterator p = _topicRecord.begin(); p != _topicRecord.end(); ++p) - { - TraceLevelsPtr traceLevels = _instance->traceLevels(); - if(traceLevels->topic > 0) + // + // Create a servant per topic to receive event data. If the + // category is empty then we are in backwards compatibility + // mode. In this case the servant's identity is + // category=<topicname>, name=publish, otherwise the name is + // <instancename>/<topicname>.publish. The same applies to the + // link proxy. + // + // Activate the object and save a reference to give to publishers. + // + Ice::Identity pubid; + Ice::Identity linkid; + if(id.category.empty()) { - Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << _name << " relink " << _instance->communicator()->identityToString(p->theTopic->ice_getIdentity()); + pubid.category = _name; + pubid.name = "publish"; + linkid.category = _name; + linkid.name = "link"; + } + else + { + pubid.category = id.category; + pubid.name = _name + ".publish"; + linkid.category = id.category; + linkid.name = _name + ".link"; } + _publisherPrx = _instance->publishAdapter()->add(new PublisherI(this, instance), pubid); + _linkPrx = TopicLinkPrx::uncheckedCast( + _instance->publishAdapter()->add(new TopicLinkI(this, instance), linkid)); + // - // Create the subscriber object add it to the set of - // subscribers. + // Re-establish subscribers. // - SubscriberPtr subscriber = Subscriber::create(_instance, p->obj, p->cost); - _subscribers.push_back(subscriber); - _instance->subscriberPool()->add(subscriber); + for(SubscriberRecordSeq::const_iterator p = subscribers.begin(); p != subscribers.end(); ++p) + { + Ice::Identity id = p->obj->ice_getIdentity(); + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << " recreate " << _instance->communicator()->identityToString(id); + } + + try + { + // + // Create the subscriber object add it to the set of + // subscribers. + // + SubscriberPtr subscriber = Subscriber::create(_instance, *p); + _subscribers.push_back(subscriber); + } + catch(const Ice::Exception& ex) + { + Ice::Warning out(traceLevels->logger); + out << _name << " recreate " << _instance->communicator()->identityToString(id) << " failed: " << ex; + continue; + } + } } + catch(...) + { + shutdown(); + __setNoDelete(false); + throw; + } + __setNoDelete(false); } -TopicI::~TopicI() +TopicImpl::~TopicImpl() { + //cout << "~TopicImpl" << endl; } string -TopicI::getName(const Ice::Current&) const +TopicImpl::getName() const { // Immutable return _name; } Ice::ObjectPrx -TopicI::getPublisher(const Ice::Current&) const +TopicImpl::getPublisher() const { // Immutable + if(_instance->publisherReplicaProxy()) + { + return _instance->publisherReplicaProxy()->ice_identity(_publisherPrx->ice_getIdentity()); + } return _publisherPrx; } +Ice::ObjectPrx +TopicImpl::getNonReplicatedPublisher() const +{ + // If there is an adapter id configured then we're using icegrid + // so create an indirect proxy, otherwise create a direct proxy. + if(!_publisherPrx->ice_getAdapterId().empty()) + { + return _instance->publishAdapter()->createIndirectProxy(_publisherPrx->ice_getIdentity()); + } + else + { + return _instance->publishAdapter()->createDirectProxy(_publisherPrx->ice_getIdentity()); + } +} + // // COMPILERFIX: For some reason with VC6 find reports an error. // #if defined(_MSC_VER) && (_MSC_VER < 1300) -vector<SubscriberPtr>::iterator +namespace +{ +static vector<SubscriberPtr>::iterator find(vector<SubscriberPtr>::iterator start, vector<SubscriberPtr>::iterator end, const Ice::Identity& ident) { while(start != end) @@ -201,10 +543,29 @@ find(vector<SubscriberPtr>::iterator start, vector<SubscriberPtr>::iterator end, } return end; } +} #endif +namespace +{ +static void +trace(Ice::Trace& out, const InstancePtr& instance, const vector<SubscriberPtr>& s) +{ + out << '['; + for(vector<SubscriberPtr>::const_iterator p = s.begin(); p != s.end(); ++p) + { + if(p != s.begin()) + { + out << ","; + } + out << instance->communicator()->identityToString((*p)->id()); + } + out << "]"; +} +} + void -TopicI::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj, const Ice::Current&) +TopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj) { Ice::Identity id = obj->ice_getIdentity(); TraceLevelsPtr traceLevels = _instance->traceLevels(); @@ -212,7 +573,7 @@ TopicI::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj, const Ice::Curr if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << "Subscribe: " << _instance->communicator()->identityToString(id); + out << _name << ": subscribe: " << _instance->communicator()->identityToString(id); if(traceLevels->topic > 1) { out << " QoS: "; @@ -224,10 +585,11 @@ TopicI::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj, const Ice::Curr } out << '[' << p->first << "," << p->second << ']'; } + out << " subscriptions: "; + trace(out, _instance, _subscribers); } } - string reliability = "oneway"; { QoS::iterator p = qos.find("reliability"); @@ -273,28 +635,103 @@ TopicI::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj, const Ice::Curr } IceUtil::Mutex::Lock sync(_subscribersMutex); - vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), id); + SubscriberRecord record; + record.id = id; + record.obj = newObj; + record.theQoS = qos; + record.topicName = _name; + record.link = false; + record.cost = 0; + + LogUpdate llu; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); if(p != _subscribers.end()) { + // If we already have this subscriber remove it from our + // subscriber list and remove it from the database. (*p)->destroy(); - _instance->subscriberPool()->remove(*p); _subscribers.erase(p); + + for(;;) + { + try + { + Freeze::TransactionHolder txn(_connection); + SubscriberRecordKey key; + key.topic = _id; + key.id = record.id; + SubscriberMap::iterator e = _subscriberMap.find(key); + if(e != _subscriberMap.end()) + { + _subscriberMap.erase(e); + } + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + Ice::IdentitySeq ids; + ids.push_back(id); + _instance->observers()->removeSubscriber(llu, _name, ids); + } + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + for(;;) + { + try + { + Freeze::TransactionHolder txn(_connection); + SubscriberRecordKey key; + key.topic = _id; + key.id = subscriber->id(); + _subscriberMap.put(SubscriberMap::value_type(key, record)); + // Update the LLU. + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } } - SubscriberPtr subscriber = Subscriber::create(_instance, _name, newObj, qos); _subscribers.push_back(subscriber); - _instance->subscriberPool()->add(subscriber); + + _instance->observers()->addSubscriber(llu, _name, record); } Ice::ObjectPrx -TopicI::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj, const Ice::Current&) +TopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj) { Ice::Identity id = obj->ice_getIdentity(); + TraceLevelsPtr traceLevels = _instance->traceLevels(); if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << "Subscribe: " << _instance->communicator()->identityToString(id); + out << _name << ": subscribeAndGetPublisher: " << _instance->communicator()->identityToString(id); if(traceLevels->topic > 1) { out << " QoS: "; @@ -304,27 +741,70 @@ TopicI::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj, cons { out << ','; } - out << '[' << p->first << "," << p->second << ']'; + } + out << " subscriptions: "; + trace(out, _instance, _subscribers); } } IceUtil::Mutex::Lock sync(_subscribersMutex); - vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), id); + + SubscriberRecord record; + record.id = id; + record.obj = obj; + record.theQoS = qos; + record.topicName = _name; + record.link = false; + record.cost = 0; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); if(p != _subscribers.end()) { throw AlreadySubscribed(); } - SubscriberPtr subscriber = Subscriber::create(_instance, _name, obj, qos); + LogUpdate llu; + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + for(;;) + { + try + { + Freeze::TransactionHolder txn(_connection); + + SubscriberRecordKey key; + key.topic = _id; + key.id = subscriber->id(); + _subscriberMap.put(SubscriberMap::value_type(key, record)); + + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + _subscribers.push_back(subscriber); - _instance->subscriberPool()->add(subscriber); + + _instance->observers()->addSubscriber(llu, _name, record); return subscriber->proxy(); } void -TopicI::unsubscribe(const Ice::ObjectPrx& subscriber, const Ice::Current&) +TopicImpl::unsubscribe(const Ice::ObjectPrx& subscriber) { TraceLevelsPtr traceLevels = _instance->traceLevels(); if(!subscriber) @@ -342,110 +822,124 @@ TopicI::unsubscribe(const Ice::ObjectPrx& subscriber, const Ice::Current&) if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << "Unsubscribe: " << _instance->communicator()->identityToString(id); + out << _name << ": unsubscribe: " << _instance->communicator()->identityToString(id); + if(traceLevels->topic > 1) + { + trace(out, _instance, _subscribers); + } } - // - // Unsubscribe the subscriber with this identity. - // - removeSubscriber(subscriber); + IceUtil::Mutex::Lock sync(_subscribersMutex); + Ice::IdentitySeq ids; + ids.push_back(id); + removeSubscribers(ids); } TopicLinkPrx -TopicI::getLinkProxy(const Ice::Current&) +TopicImpl::getLinkProxy() { // immutable + if(_instance->publisherReplicaProxy()) + { + return TopicLinkPrx::uncheckedCast(_instance->publisherReplicaProxy()->ice_identity( + _linkPrx->ice_getIdentity())); + } return _linkPrx; } void -TopicI::link(const TopicPrx& topic, Ice::Int cost, const Ice::Current&) +TopicImpl::link(const TopicPrx& topic, Ice::Int cost) { TopicInternalPrx internal = TopicInternalPrx::uncheckedCast(topic); TopicLinkPrx link = internal->getLinkProxy(); - IceUtil::RecMutex::Lock topicSync(_topicRecordMutex); - if(_destroyed) + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) { - throw Ice::ObjectNotExistException(__FILE__, __LINE__); + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": link " << _instance->communicator()->identityToString(topic->ice_getIdentity()) + << " cost " << cost; } - reap(); + IceUtil::Mutex::Lock sync(_subscribersMutex); Ice::Identity id = topic->ice_getIdentity(); - string name = identityToTopicName(id); - // Validate that this topic doesn't already have an established - // link. - for(LinkRecordSeq::const_iterator p = _topicRecord.begin(); p != _topicRecord.end(); ++p) + SubscriberRecord record; + record.id = id; + record.obj = link; + record.theTopic = topic; + record.topicName = _name; + record.link = true; + record.cost = cost; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); + if(p != _subscribers.end()) { - if(p->theTopic->ice_getIdentity() == topic->ice_getIdentity()) - { - LinkExists ex; - ex.name = name; - throw ex; - } + string name = identityToTopicName(id); + LinkExists ex; + ex.name = name; + throw ex; } - - TraceLevelsPtr traceLevels = _instance->traceLevels(); - if(traceLevels->topic > 0) + + LogUpdate llu; + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + + for(;;) { - Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << _name << " link " << _instance->communicator()->identityToString(id) - << " cost " << cost; + try + { + Freeze::TransactionHolder txn(_connection); + + SubscriberRecordKey key; + key.topic = _id; + key.id = id; + _subscriberMap.put(SubscriberMap::value_type(key, record)); + + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } } - SubscriberPtr subscriber = Subscriber::create(_instance, link, cost); - - // - // Create the LinkRecord - // - LinkRecord record; - record.obj = link; - record.cost = cost; - record.theTopic = topic; - - // - // Save - // - _topicRecord.push_back(record); - _topics.put(PersistentTopicMap::value_type(_id, _topicRecord)); - - IceUtil::Mutex::Lock subscriberSync(_subscribersMutex); _subscribers.push_back(subscriber); - _instance->subscriberPool()->add(subscriber); + + _instance->observers()->addSubscriber(llu, _name, record); } void -TopicI::unlink(const TopicPrx& topic, const Ice::Current& current) +TopicImpl::unlink(const TopicPrx& topic) { - IceUtil::RecMutex::Lock topicSync(_topicRecordMutex); + IceUtil::Mutex::Lock sync(_subscribersMutex); if(_destroyed) { throw Ice::ObjectNotExistException(__FILE__, __LINE__); } - reap(); - Ice::Identity id = topic->ice_getIdentity(); - string name = identityToTopicName(id); - LinkRecordSeq::iterator p = _topicRecord.begin(); - while(p != _topicRecord.end()) - { - if(p->theTopic->ice_getIdentity() == topic->ice_getIdentity()) - { - break; - } - ++p; - } - if(p == _topicRecord.end()) + vector<SubscriberPtr>::const_iterator p = find(_subscribers.begin(), _subscribers.end(), id); + if(p == _subscribers.end()) { + string name = identityToTopicName(id); TraceLevelsPtr traceLevels = _instance->traceLevels(); if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << _name << " unlink " << name << " failed - not linked"; + out << _name << ": unlink " << name << " failed - not linked"; } NoSuchLink ex; @@ -453,48 +947,79 @@ TopicI::unlink(const TopicPrx& topic, const Ice::Current& current) throw ex; } - Ice::ObjectPrx subscriber = p->obj; - _topicRecord.erase(p); + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << " unlink " << _instance->communicator()->identityToString(id); + } + + Ice::IdentitySeq ids; + ids.push_back(id); + removeSubscribers(ids); +} - // - // Save - // - _topics.put(PersistentTopicMap::value_type(_id, _topicRecord)); +void +TopicImpl::reap(const Ice::IdentitySeq& ids) +{ + IceUtil::Mutex::Lock sync(_subscribersMutex); TraceLevelsPtr traceLevels = _instance->traceLevels(); if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << _name << " unlink " << _instance->communicator()->identityToString(id); + out << _name << ": reap "; + for(Ice::IdentitySeq::const_iterator p = ids.begin(); p != ids.end() ; ++p) + { + if(p != ids.begin()) + { + out << ","; + } + out << _instance->communicator()->identityToString(*p); + } + } + + removeSubscribers(ids); +} + +void +TopicImpl::shutdown() +{ + IceUtil::Mutex::Lock sync(_subscribersMutex); + _servant = 0; + + // Shutdown each subscriber. This waits for the event queues to drain. + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + (*p)->shutdown(); } - removeSubscriber(subscriber); } LinkInfoSeq -TopicI::getLinkInfoSeq(const Ice::Current&) const +TopicImpl::getLinkInfoSeq() const { - IceUtil::RecMutex::Lock topicSync(_topicRecordMutex); - TopicI* This = const_cast<TopicI*>(this); - This->reap(); - + IceUtil::Mutex::Lock sync(_subscribersMutex); + LinkInfoSeq seq; - - for(LinkRecordSeq::const_iterator q = _topicRecord.begin(); q != _topicRecord.end(); ++q) + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) { - LinkInfo info; - info.name = identityToTopicName(q->theTopic->ice_getIdentity()); - info.cost = q->cost; - info.theTopic = q->theTopic; - seq.push_back(info); + SubscriberRecord record = (*p)->record(); + if(record.link && !(*p)->errored()) + { + LinkInfo info; + info.name = identityToTopicName(record.theTopic->ice_getIdentity()); + info.cost = record.cost; + info.theTopic = record.theTopic; + seq.push_back(info); + } } - return seq; } void -TopicI::destroy(const Ice::Current&) +TopicImpl::destroy() { - IceUtil::RecMutex::Lock sync(_topicRecordMutex); + IceUtil::Mutex::Lock sync(_subscribersMutex); if(_destroyed) { @@ -502,208 +1027,514 @@ TopicI::destroy(const Ice::Current&) } _destroyed = true; - try + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": destroy"; + } + + // destroyInternal clears out the topic content. + LogUpdate llu = {0,0}; + _instance->observers()->destroyTopic(destroyInternal(llu, true), _name); +} + +TopicContent +TopicImpl::getContent() const +{ + IceUtil::Mutex::Lock sync(_subscribersMutex); + + TopicContent content; + content.id = _id; + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + // Don't return errored subscribers (subscribers that have + // errored out, but not reaped due to a failure with the + // master). This means we can avoid the reaping step later. + if(!(*p)->errored()) + { + content.records.push_back((*p)->record()); + } + } + return content; +} + +void +TopicImpl::update(const SubscriberRecordSeq& records) +{ + IceUtil::Mutex::Lock sync(_subscribersMutex); + + // We do this with two scans. The first runs through the subscribers + // that we have and removes those not in the init list. The second + // runs through the init list and add the ones that don't + // exist. + { - _instance->objectAdapter()->remove(_linkPrx->ice_getIdentity()); - _instance->objectAdapter()->remove(_publisherPrx->ice_getIdentity()); + vector<SubscriberPtr>::iterator p = _subscribers.begin(); + while(p != _subscribers.end()) + { + SubscriberRecordSeq::const_iterator q; + for(q = records.begin(); q != records.end(); ++q) + { + if((*p)->id() == q->id) + { + break; + } + } + // The subscriber doesn't exist in the incoming subscriber + // set so destroy it. + if(q == records.end()) + { + (*p)->destroy(); + p = _subscribers.erase(p); + } + else + { + // Otherwise reset the reaped status if necessary. + (*p)->resetIfReaped(); + ++p; + } + } } - catch(const Ice::ObjectAdapterDeactivatedException&) + + for(SubscriberRecordSeq::const_iterator p = records.begin(); p != records.end(); ++p) { - // Ignore -- this could occur on shutdown. + vector<SubscriberPtr>::iterator q; + for(q = _subscribers.begin(); q != _subscribers.end(); ++q) + { + if((*q)->id() == p->id) + { + break; + } + } + if(q == _subscribers.end()) + { + SubscriberPtr subscriber = Subscriber::create(_instance, *p); + _subscribers.push_back(subscriber); + } } } bool -TopicI::destroyed() const +TopicImpl::destroyed() const { - IceUtil::RecMutex::Lock sync(_topicRecordMutex); + IceUtil::Mutex::Lock sync(_subscribersMutex); return _destroyed; } Ice::Identity -TopicI::id() const +TopicImpl::id() const { // immutable return _id; } -void -TopicI::reap() +TopicPrx +TopicImpl::proxy() const { - IceUtil::RecMutex::Lock topicSync(_topicRecordMutex); - if(_destroyed) + // immutable + Ice::ObjectPrx prx; + if(_instance->topicReplicaProxy()) { - return; + prx = _instance->topicReplicaProxy()->ice_identity(_id); + } + else + { + prx = _instance->topicAdapter()->createProxy(_id); } - bool updated = false; + return TopicPrx::uncheckedCast(prx); +} - // - // Run through all invalid subscribers and remove them from the - // database. - // - list<SubscriberPtr> error; +namespace +{ + +class TopicInternal_reapI : public AMI_TopicInternal_reap +{ +public: + + TopicInternal_reapI(const InstancePtr& instance, Ice::Long generation) : + _instance(instance), _generation(generation) { - IceUtil::Mutex::Lock errorSync(_errorMutex); - _error.swap(error); } - TraceLevelsPtr traceLevels = _instance->traceLevels(); - for(list<SubscriberPtr>::const_iterator p = error.begin(); p != error.end(); ++p) + virtual void ice_response() + { + } + + virtual void ice_exception(const Ice::Exception& ex) + { + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << "exception when calling `reap' on the master replica: " << ex; + } + _instance->node()->recovery(_generation); + } + +private: + + const InstancePtr _instance; + const Ice::Long _generation; +}; + +} + +void +TopicImpl::publish(bool forwarded, const EventDataSeq& events) +{ + TopicInternalPrx masterInternal; + Ice::Long generation = -1; + Ice::IdentitySeq reap; { - SubscriberPtr subscriber = *p; - assert(subscriber->persistent()); // Only persistent subscribers need to be reaped. + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); - bool found = false; // - // If this turns out to be a performance problem then we - // can create an in memory map cache. + // Copy of the subscriber list so that event publishing can occur + // in parallel. // - LinkRecordSeq::iterator q = _topicRecord.begin(); - while(q != _topicRecord.end()) + vector<SubscriberPtr> copy; { - if(q->obj->ice_getIdentity() == subscriber->id()) - { - _topicRecord.erase(q); - updated = true; - found = true; - break; - } - ++q; + IceUtil::Mutex::Lock sync(_subscribersMutex); + copy = _subscribers; } - if(traceLevels->topic > 0) + + // + // Queue each event, gathering a list of those subscribers that + // must be reaped. + // + for(vector<SubscriberPtr>::const_iterator p = copy.begin(); p != copy.end(); ++p) { - Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << "reaping " << _instance->communicator()->identityToString(subscriber->id()); - if(!found) + if(!(*p)->queue(forwarded, events) && (*p)->reap()) { - out << ": failed - not in database"; + reap.push_back((*p)->id()); } } + + // If there are no subscribers in error then we're done. + if(reap.empty()) + { + return; + } + if(!unlock.getMaster()) + { + IceUtil::Mutex::Lock sync(_subscribersMutex); + removeSubscribers(reap); + return; + } + masterInternal = TopicInternalPrx::uncheckedCast(unlock.getMaster()->ice_identity(_id)); + generation = unlock.generation(); } - if(updated) - { - _topics.put(PersistentTopicMap::value_type(_id, _topicRecord)); - } + + + // Tell the master to reap this set of subscribers. This is an + // AMI invocation so it shouldn't block the caller (in the + // typical case) we do it outside of the mutex lock for + // performance reasons. + // + // We must release the cached lock before calling this as the AMI + // call may raise an exception in the caller (that is directly + // call ice_exception) which calls recover() on the node which + // would result in a deadlock since the node is locked. + masterInternal->reap_async(new TopicInternal_reapI(_instance, generation), reap); } void -TopicI::publish(bool forwarded, const EventDataSeq& events) +TopicImpl::observerAddSubscriber(const LogUpdate& llu, const SubscriberRecord& record) { - // - // Copy of the subscriber list so that event publishing can occur - // in parallel. - // - vector<SubscriberPtr> copy; + IceUtil::Mutex::Lock sync(_subscribersMutex); + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) { - IceUtil::Mutex::Lock sync(_subscribersMutex); - copy = _subscribers; + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": add replica observer: " << _instance->communicator()->identityToString(record.id); + if(traceLevels->topic > 1) + { + out << " QoS: "; + for(QoS::const_iterator p = record.theQoS.begin(); p != record.theQoS.end() ; ++p) + { + if(p != record.theQoS.begin()) + { + out << ','; + } + out << '[' << p->first << "," << p->second << ']'; + } + } + out << " llu: " << llu.generation << "/" << llu.iteration; } - // - // Queue each event. This results in two lists -- one the list of - // subscribers in error and the second a list of subscribers that - // need to be flushed. - // - vector<Ice::Identity> e; - list<SubscriberPtr> flush; - for(vector<SubscriberPtr>::const_iterator p = copy.begin(); p != copy.end(); ++p) + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); + if(p != _subscribers.end()) { - Subscriber::QueueState state = (*p)->queue(forwarded, events); - switch(state) + // If the subscriber is already in the database display a + // diagnostic. + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) { - case Subscriber::QueueStateError: - e.push_back((*p)->id()); - break; - case Subscriber::QueueStateFlush: - flush.push_back(*p); - break; - case Subscriber::QueueStateNoFlush: - break; + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _instance->communicator()->identityToString(record.id) << ": already subscribed"; } + return; } - // - // Now we add each subscriber to be flushed to the flush manager. - // - if(!flush.empty()) + SubscriberPtr subscriber = Subscriber::create(_instance, record); + for(;;) { - _instance->subscriberPool()->flush(flush); + try + { + Freeze::TransactionHolder txn(_connection); + + SubscriberRecordKey key; + key.topic = _id; + key.id = subscriber->id(); + _subscriberMap.put(SubscriberMap::value_type(key, record)); + + // Update the LLU. + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } } - // - // Run through the error list removing those subscribers that are - // in error from the subscriber list. - // - list<SubscriberPtr> reap; - if(!e.empty()) - { - IceUtil::Mutex::Lock sync(_subscribersMutex); - for(vector<Ice::Identity>::const_iterator ep = e.begin(); ep != e.end(); ++ep) - { - // - // Its possible for the subscriber to already have been - // removed since the copy is iterated over outside of - // mutex protection. - // - // Note that although this could be quicker if we used a - // map, the most optimal case should be pushing around - // events not searching for a particular subscriber. - // - // The subscriber is immediately destroyed & removed from - // the _subscribers list. If the subscriber is persistent - // its added to an list of error'd subscribers and removed - // from the database on the next reap. - // - vector<SubscriberPtr>::iterator q = find(_subscribers.begin(), _subscribers.end(), *ep); - if(q != _subscribers.end()) + _subscribers.push_back(subscriber); +} + +void +TopicImpl::observerRemoveSubscriber(const LogUpdate& llu, const Ice::IdentitySeq& ids) +{ + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": remove replica observer: "; + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) + { + if(id != ids.begin()) { - // - // Destroy the subscriber in any case. - // - (*q)->destroy(); - if((*q)->persistent()) - { - reap.push_back(*q); - } - _instance->subscriberPool()->remove(*q); - _subscribers.erase(q); + out << ","; } + out << _instance->communicator()->identityToString(*id); + } + out << " llu: " << llu.generation << "/" << llu.iteration; + } + + IceUtil::Mutex::Lock sync(_subscribersMutex); + + // Remove the subscriber from the subscribers list. If the + // subscriber had a local failure and was removed from the + // subscriber list it could already be gone. That's not a problem. + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) + { + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), *id); + if(p != _subscribers.end()) + { + (*p)->destroy(); + _subscribers.erase(p); } } - if(!reap.empty()) + // Next remove from the database. + for(;;) { - // - // This is why _error is a list, so we can splice on the - // reaped subscribers. - // - IceUtil::Mutex::Lock errorSync(_errorMutex); - _error.splice(_error.begin(), reap); + try + { + Freeze::TransactionHolder txn(_connection); + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) + { + SubscriberRecordKey key; + key.topic = _id; + key.id = *id; + SubscriberMap::iterator e = _subscriberMap.find(key); + if(e != _subscriberMap.end()) + { + _subscriberMap.erase(e); + } + } + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } } } void -TopicI::removeSubscriber(const Ice::ObjectPrx& obj) +TopicImpl::observerDestroyTopic(const LogUpdate& llu) { - Ice::Identity id = obj->ice_getIdentity(); - IceUtil::Mutex::Lock sync(_subscribersMutex); - vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), id); - if(p != _subscribers.end()) + + if(_destroyed) { - (*p)->destroy(); - _instance->subscriberPool()->remove(*p); - _subscribers.erase(p); return; } - - // - // If the subscriber was not found then display a diagnostic. - // + _destroyed = true; + TraceLevelsPtr traceLevels = _instance->traceLevels(); if(traceLevels->topic > 0) { Ice::Trace out(traceLevels->logger, traceLevels->topicCat); - out << _instance->communicator()->identityToString(id) << ": not subscribed."; + out << _name << ": destroyed"; + out << " llu: " << llu.generation << "/" << llu.iteration; + } + destroyInternal(llu, false); +} + +Ice::ObjectPtr +TopicImpl::getServant() const +{ + return _servant; +} + +LogUpdate +TopicImpl::destroyInternal(const LogUpdate& origLLU, bool master) +{ + _instance->publishAdapter()->remove(_linkPrx->ice_getIdentity()); + _instance->publishAdapter()->remove(_publisherPrx->ice_getIdentity()); + + // Destroy each of the subscribers. + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + (*p)->destroy(); } + _subscribers.clear(); + + // Clear out the database records related to this topic. + LogUpdate llu; + for(;;) + { + try + { + SubscriberRecordKey key; + key.topic = _id; + + Freeze::TransactionHolder txn(_connection); + // Erase all subscriber records and the topic record. + SubscriberMap::iterator p = _subscriberMap.find(key); + while(p != _subscriberMap.end() && p->first.topic == key.topic) + { + _subscriberMap.erase(p++); + } + + // Update the LLU. + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + if(master) + { + llu = ci->second; + llu.iteration++; + } + else + { + llu = origLLU; + } + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + + _instance->topicAdapter()->remove(_id); + + _servant = 0; + + return llu; +} + +void +TopicImpl::removeSubscribers(const Ice::IdentitySeq& ids) +{ + Ice::IdentitySeq removed; + + // First remove the subscriber from the subscribers list. Its + // possible that some of these subscribers have already been + // removed (consider, for example, a concurrent reap call from two + // replicas on the same subscriber). To avoid sending unnecessary + // observer updates keep track of the observers that are actually + // removed. + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) + { + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), *id); + if(p != _subscribers.end()) + { + (*p)->destroy(); + _subscribers.erase(p); + removed.push_back(*id); + } + } + + // If there is no further work to do we are done. + if(removed.empty()) + { + return; + } + + // Next update the database and send the notification to any + // slaves. + LogUpdate llu; + for(;;) + { + try + { + Freeze::TransactionHolder txn(_connection); + + for(Ice::IdentitySeq::const_iterator id = ids.begin(); id != ids.end(); ++id) + { + SubscriberRecordKey key; + key.topic = _id; + key.id = *id; + SubscriberMap::iterator e = _subscriberMap.find(key); + if(e != _subscriberMap.end()) + { + _subscriberMap.erase(e); + } + } + + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + + _instance->observers()->removeSubscriber(llu, _name, ids); } diff --git a/cpp/src/IceStorm/TopicI.h b/cpp/src/IceStorm/TopicI.h index 150a9cb4f8c..471b5613fcd 100644 --- a/cpp/src/IceStorm/TopicI.h +++ b/cpp/src/IceStorm/TopicI.h @@ -10,60 +10,80 @@ #ifndef TOPIC_I_H #define TOPIC_I_H -#include <IceUtil/RecMutex.h> #include <IceStorm/IceStormInternal.h> -#include <IceStorm/PersistentTopicMap.h> +#include <IceStorm/SubscriberMap.h> +#include <IceStorm/Election.h> +#include <IceStorm/LLUMap.h> #include <list> namespace IceStorm { +// Forward declarations class Instance; typedef IceUtil::Handle<Instance> InstancePtr; class Subscriber; typedef IceUtil::Handle<Subscriber> SubscriberPtr; -class TopicI : public TopicInternal +class TopicImpl : public IceUtil::Shared { public: - TopicI(const InstancePtr&, const std::string&, const Ice::Identity&, const LinkRecordSeq&, const std::string&, - const std::string&); - ~TopicI(); + TopicImpl(const InstancePtr&, const std::string&, const Ice::Identity&, const SubscriberRecordSeq&); + ~TopicImpl(); - virtual std::string getName(const Ice::Current&) const; - virtual Ice::ObjectPrx getPublisher(const Ice::Current&) const; - virtual void subscribe(const QoS&, const Ice::ObjectPrx&, const Ice::Current&); - virtual Ice::ObjectPrx subscribeAndGetPublisher(const QoS&, const Ice::ObjectPrx&, const Ice::Current&); - virtual void unsubscribe(const Ice::ObjectPrx&, const Ice::Current&); - virtual TopicLinkPrx getLinkProxy(const Ice::Current&); - virtual void link(const TopicPrx&, Ice::Int, const Ice::Current&); - virtual void unlink(const TopicPrx&, const Ice::Current&); - virtual LinkInfoSeq getLinkInfoSeq(const Ice::Current&) const; - virtual void destroy(const Ice::Current&); + std::string getName() const; + Ice::ObjectPrx getPublisher() const; + Ice::ObjectPrx getNonReplicatedPublisher() const; + void subscribe(const QoS&, const Ice::ObjectPrx&); + Ice::ObjectPrx subscribeAndGetPublisher(const QoS&, const Ice::ObjectPrx&); + void unsubscribe(const Ice::ObjectPrx&); + TopicLinkPrx getLinkProxy(); + void link(const TopicPrx&, Ice::Int); + void unlink(const TopicPrx&); + LinkInfoSeq getLinkInfoSeq() const; + void reap(const Ice::IdentitySeq&); + void destroy(); + IceStormElection::TopicContent getContent() const; + + void update(const SubscriberRecordSeq&); // Internal methods bool destroyed() const; Ice::Identity id() const; - void reap(); + TopicPrx proxy() const; + void shutdown(); void publish(bool, const EventDataSeq&); + // Observer methods. + void observerAddSubscriber(const IceStormElection::LogUpdate&, const SubscriberRecord&); + void observerRemoveSubscriber(const IceStormElection::LogUpdate&, const Ice::IdentitySeq&); + void observerDestroyTopic(const IceStormElection::LogUpdate&); + + Ice::ObjectPtr getServant() const; + private: - void removeSubscriber(const Ice::ObjectPrx&); + IceStormElection::LogUpdate destroyInternal(const IceStormElection::LogUpdate&, bool); + void removeSubscribers(const Ice::IdentitySeq&); + // // Immutable members. // + const Ice::ObjectPrx _publisherReplicaProxy; const InstancePtr _instance; const std::string _name; // The topic name const Ice::Identity _id; // The topic identity + const std::string _envName; + + /*const*/ Ice::ObjectPrx _publisherPrx; // The actual publisher proxy. + /*const*/ TopicLinkPrx _linkPrx; // The link proxy. - /*const*/ Ice::ObjectPrx _publisherPrx; - /*const*/ TopicLinkPrx _linkPrx; + Ice::ObjectPtr _servant; // The topic implementation servant. - // Set of subscribers. + // Mutex protecting the subscribers. IceUtil::Mutex _subscribersMutex; // @@ -75,21 +95,15 @@ private: // std::vector<SubscriberPtr> _subscribers; - // Set of subscribers that have encountered an error. - IceUtil::Mutex _errorMutex; - std::list<SubscriberPtr> _error; - - const Freeze::ConnectionPtr _connection; + const Freeze::ConnectionPtr _connection; // The database connection. - // The set of downstream topics. - IceUtil::RecMutex _topicRecordMutex; - PersistentTopicMap _topics; - IceStorm::LinkRecordSeq _topicRecord; + SubscriberMap _subscriberMap; // The subscribers. + LLUMap _llumap; // The LLU map. bool _destroyed; // Has this Topic been destroyed? }; -typedef IceUtil::Handle<TopicI> TopicIPtr; +typedef IceUtil::Handle<TopicImpl> TopicImplPtr; } // End namespace IceStorm diff --git a/cpp/src/IceStorm/TopicManagerI.cpp b/cpp/src/IceStorm/TopicManagerI.cpp index f5bc398b5d3..077a77e0f2a 100644 --- a/cpp/src/IceStorm/TopicManagerI.cpp +++ b/cpp/src/IceStorm/TopicManagerI.cpp @@ -10,19 +10,248 @@ #include <IceUtil/DisableWarnings.h> #include <IceStorm/TopicManagerI.h> #include <IceStorm/TopicI.h> -#include <IceStorm/SubscriberPool.h> -#include <IceStorm/BatchFlusher.h> #include <IceStorm/TraceLevels.h> #include <IceStorm/Instance.h> -#include <Freeze/Initialize.h> +#include <Freeze/Freeze.h> + +#include <IceStorm/NodeI.h> +#include <IceStorm/Observers.h> #include <Ice/SliceChecksums.h> #include <functional> -#include <ctype.h> -using namespace IceStorm; using namespace std; +using namespace IceStorm; +using namespace IceStormElection; + +namespace +{ + +void +halt(const Ice::CommunicatorPtr& com, const Freeze::DatabaseException& ex) +{ + { + Ice::Error error(com->getLogger()); + error << "fatal exception: " << ex << "\n*** Aborting application ***"; + } + + abort(); +} + +class TopicManagerI : public TopicManagerInternal +{ +public: + + TopicManagerI(const InstancePtr& instance, const TopicManagerImplPtr& impl) : + _instance(instance), _impl(impl) + { + } + + ~TopicManagerI() + { + //cout << "~TopicManagerI" << endl; + } + + virtual TopicPrx create(const string& id, const Ice::Current&) + { + while(true) + { + Ice::Long generation; + TopicManagerPrx master = getMaster(generation, __FILE__, __LINE__); + if(master) + { + try + { + return master->create(id); + } + catch(const Ice::ConnectFailedException&) + { + _instance->node()->recovery(generation); + continue; + } + catch(const Ice::TimeoutException&) + { + _instance->node()->recovery(generation); + continue; + } + } + else + { + FinishUpdateHelper unlock(_instance->node()); + return _impl->create(id); + } + } + } + + virtual TopicPrx retrieve(const string& id, const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->retrieve(id); + } + + virtual TopicDict retrieveAll(const Ice::Current&) const + { + // Use cached reads. + CachedReadHelper unlock(_instance->node(), __FILE__, __LINE__); + return _impl->retrieveAll(); + } + + virtual Ice::SliceChecksumDict getSliceChecksums(const Ice::Current&) const + { + // This doesn't require the replication to be running. + return Ice::sliceChecksums(); + } + + virtual NodePrx getReplicaNode(const Ice::Current&) const + { + // This doesn't require the replication to be running. + return _instance->nodeProxy(); + } + +private: + + TopicManagerPrx getMaster(Ice::Long& generation, const char* file, int line) const + { + NodeIPtr node = _instance->node(); + if(node) + { + return TopicManagerPrx::uncheckedCast(node->startUpdate(generation, file, line)); + } + else + { + return TopicManagerPrx(); + } + } + + const InstancePtr _instance; + const TopicManagerImplPtr _impl; +}; + +class ReplicaObserverI : public ReplicaObserver +{ +public: + + ReplicaObserverI(const InstancePtr& instance, const TopicManagerImplPtr& impl) : + _instance(instance), + _impl(impl) + { + } + + ~ReplicaObserverI() + { + //cout << "~ReplicaObserverI" << endl; + } + + virtual void init(const LogUpdate& llu, const TopicContentSeq& content, const Ice::Current&) + { + NodeIPtr node = _instance->node(); + if(node) + { + node->checkObserverInit(llu.generation); + } + _impl->observerInit(llu, content); + } + + virtual void createTopic(const LogUpdate& llu, const string& name, const Ice::Current&) + { + try + { + ObserverUpdateHelper unlock(_instance->node(), llu.generation, __FILE__, __LINE__); + //cout << "createTopic: " << llu.generation << " node generation: " << unlock.generation() << endl; + _impl->observerCreateTopic(llu, name); + } + catch(const ObserverInconsistencyException& e) + { + Ice::Warning warn(_instance->traceLevels()->logger); + warn << "ReplicaObserverI::create: ObserverInconsistencyException: " << e.reason; + _instance->node()->recovery(llu.generation); + throw; + } + } + + virtual void destroyTopic(const LogUpdate& llu, const string& name, const Ice::Current&) + { + try + { + ObserverUpdateHelper unlock(_instance->node(), llu.generation, __FILE__, __LINE__); + _impl->observerDestroyTopic(llu, name); + } + catch(const ObserverInconsistencyException& e) + { + Ice::Warning warn(_instance->traceLevels()->logger); + warn << "ReplicaObserverI::destroy: ObserverInconsistencyException: " << e.reason; + _instance->node()->recovery(llu.generation); + throw; + } + } + + virtual void addSubscriber(const LogUpdate& llu, const string& name, const SubscriberRecord& rec, + const Ice::Current&) + { + try + { + ObserverUpdateHelper unlock(_instance->node(), llu.generation, __FILE__, __LINE__); + _impl->observerAddSubscriber(llu, name, rec); + } + catch(const ObserverInconsistencyException& e) + { + Ice::Warning warn(_instance->traceLevels()->logger); + warn << "ReplicaObserverI::add: ObserverInconsistencyException: " << e.reason; + _instance->node()->recovery(llu.generation); + throw; + } + } + + virtual void removeSubscriber(const LogUpdate& llu, const string& name, const Ice::IdentitySeq& id, + const Ice::Current&) + { + try + { + ObserverUpdateHelper unlock(_instance->node(), llu.generation, __FILE__, __LINE__); + _impl->observerRemoveSubscriber(llu, name, id); + } + catch(const ObserverInconsistencyException& e) + { + Ice::Warning warn(_instance->traceLevels()->logger); + warn << "ReplicaObserverI::remove: ObserverInconsistencyException: " << e.reason; + _instance->node()->recovery(llu.generation); + throw; + } + } + +private: + + const InstancePtr _instance; + const TopicManagerImplPtr _impl; +}; + +class TopicManagerSyncI : public TopicManagerSync +{ +public: + + TopicManagerSyncI(const TopicManagerImplPtr& impl) : + _impl(impl) + { + } + + ~TopicManagerSyncI() + { + //cout << "~TopicManagerSyncI" << endl; + } + + virtual void getContent(LogUpdate& llu, TopicContentSeq& content, const Ice::Current&) + { + _impl->getContent(llu, content); + } + +private: + + const TopicManagerImplPtr _impl; +}; + +} namespace IceStorm { @@ -44,40 +273,99 @@ identityToTopicName(const Ice::Identity& id) return id.name.substr(6); } +Ice::Identity +nameToIdentity(const InstancePtr& instance, const string& name) +{ + // Identity is instanceName>/topic.<topicname> + Ice::Identity id; + id.category = instance->instanceName(); + id.name = "topic." + name; + + return id; +} + } -TopicManagerI::TopicManagerI( - const InstancePtr& instance, - const Ice::ObjectAdapterPtr& topicAdapter, - const string& envName, - const string& dbName) : +TopicManagerImpl::TopicManagerImpl(const InstancePtr& instance) : + _instance(instance), - _topicAdapter(topicAdapter), - _envName(envName), - _dbName(dbName), - _connection(Freeze::createConnection(instance->communicator(), envName)), - _topics(_connection, dbName) + _connection(Freeze::createConnection(instance->communicator(), instance->serviceName())), + _llumap(_connection, "llu"), + _subscriberMap(_connection, "subscribers") { - // - // Recreate each of the topics in the persistent map - // - for(PersistentTopicMap::const_iterator p = _topics.begin(); p != _topics.end(); ++p) + try + { + __setNoDelete(true); + + // TODO: If we want to improve the performance of the + // non-replicated case we could allocate a null-topic manager impl + // here. + _managerImpl = new TopicManagerI(instance, this); + + Ice::PropertiesPtr properties = _instance->communicator()->getProperties(); + // If there is no node adapter we don't need to start the + // observer, nor sync since we're not replicating. + if(_instance->nodeAdapter()) + { + _observerImpl = new ReplicaObserverI(instance, this); + _observer = _instance->nodeAdapter()->addWithUUID(_observerImpl); + _syncImpl = new TopicManagerSyncI(this); + _sync = _instance->nodeAdapter()->addWithUUID(_syncImpl); + } + + // Ensure that the llu counter is present in the log. + LLUMap::const_iterator ci = _llumap.find("_manager"); + if(ci == _llumap.end()) + { + LogUpdate empty = {0, 0}; + _llumap.put(LLUMap::value_type("_manager", empty)); + } + + // Recreate each of the topics. + SubscriberMap::const_iterator p = _subscriberMap.begin(); + while(p != _subscriberMap.end()) + { + // This record has to be a place holder record, otherwise + // there is a database bug. + assert(p->first.id.name.empty() && p->first.id.category.empty()); + + Ice::Identity topic = p->first.topic; + + // Skip the place holder. + ++p; + + SubscriberRecordSeq content; + while(p != _subscriberMap.end() && p->first.topic == topic) + { + content.push_back(p->second); + ++p; + } + + string name = identityToTopicName(topic); + installTopic(name, topic, false, content); + } + } + catch(...) { - installTopic(identityToTopicName(p->first), p->first, p->second, false); + shutdown(); + __setNoDelete(false); + throw; } + __setNoDelete(false); } -TopicManagerI::~TopicManagerI() +TopicManagerImpl::~TopicManagerImpl() { + //cout << "~TopicManagerImpl" << endl; } TopicPrx -TopicManagerI::create(const string& name, const Ice::Current&) +TopicManagerImpl::create(const string& name) { - IceUtil::Mutex::Lock sync(*this); + Lock sync(*this); reap(); - if(_topicIMap.find(name) != _topicIMap.end()) + if(_topics.find(name) != _topics.end()) { TopicExists ex; ex.name = name; @@ -85,122 +373,479 @@ TopicManagerI::create(const string& name, const Ice::Current&) } // Identity is instanceName>/topic.<topicname> - Ice::Identity id; - id.category = _instance->instanceName(); - id.name = "topic." + name; + Ice::Identity id = nameToIdentity(_instance, name); + LogUpdate llu; - _topics.put(PersistentTopicMap::value_type(id, LinkRecordSeq())); + for(;;) + { + try + { - return installTopic(name, id, LinkRecordSeq(), true); + Freeze::TransactionHolder txn(_connection); + SubscriberRecordKey key; + key.topic = id; + SubscriberRecord rec; + rec.link = false; + rec.cost = 0; + _subscriberMap.put(SubscriberMap::value_type(key, rec)); + LLUMap::iterator ci = _llumap.find("_manager"); + assert(ci != _llumap.end()); + llu = ci->second; + llu.iteration++; + ci.set(llu); + + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + + _instance->observers()->createTopic(llu, name); + + return installTopic(name, id, true); } TopicPrx -TopicManagerI::retrieve(const string& name, const Ice::Current&) const +TopicManagerImpl::retrieve(const string& name) const { - IceUtil::Mutex::Lock sync(*this); + Lock sync(*this); - TopicManagerI* This = const_cast<TopicManagerI*>(this); + TopicManagerImpl* This = const_cast<TopicManagerImpl*>(this); This->reap(); - TopicIMap::const_iterator p = _topicIMap.find(name); - if(p == _topicIMap.end()) + map<string, TopicImplPtr>::const_iterator p = _topics.find(name); + if(p == _topics.end()) { NoSuchTopic ex; ex.name = name; throw ex; } - // Here we cannot just reconstruct the identity since the - // identity could be either instanceName/topic name, or if - // created with pre-3.2 IceStorm / topic name. - return TopicPrx::uncheckedCast(_topicAdapter->createProxy(p->second->id())); + return p->second->proxy(); } TopicDict -TopicManagerI::retrieveAll(const Ice::Current&) const +TopicManagerImpl::retrieveAll() const { - IceUtil::Mutex::Lock sync(*this); + Lock sync(*this); - TopicManagerI* This = const_cast<TopicManagerI*>(this); + TopicManagerImpl* This = const_cast<TopicManagerImpl*>(this); This->reap(); TopicDict all; - for(TopicIMap::const_iterator p = _topicIMap.begin(); p != _topicIMap.end(); ++p) + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { - // - // Here we cannot just reconstruct the identity since the - // identity could be either "<instanceName>/topic.<topicname>" - // name, or if created with pre-3.2 IceStorm "/<topicname>". - // - all.insert(TopicDict::value_type( - p->first, TopicPrx::uncheckedCast(_topicAdapter->createProxy(p->second->id())))); + all.insert(TopicDict::value_type(p->first, p->second->proxy())); } return all; } -Ice::SliceChecksumDict -TopicManagerI::getSliceChecksums(const Ice::Current&) const +void +TopicManagerImpl::observerInit(const LogUpdate& llu, const TopicContentSeq& content) { - return Ice::sliceChecksums(); + Lock sync(*this); + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topicMgr > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicMgrCat); + out << "init"; + for(TopicContentSeq::const_iterator p = content.begin(); p != content.end(); ++p) + { + out << " topic: " << _instance->communicator()->identityToString(p->id) << " subscribers: "; + for(SubscriberRecordSeq::const_iterator q = p->records.begin(); q != p->records.end(); ++q) + { + if(q != p->records.begin()) + { + out << ","; + } + out << _instance->communicator()->identityToString(q->id); + } + } + } + + // First we update the database state, and then we update our + // internal state. + for(;;) + { + try + { + Freeze::TransactionHolder txn(_connection); + _subscriberMap.clear(); + + _llumap.put(LLUMap::value_type("_manager", llu)); + + for(TopicContentSeq::const_iterator p = content.begin(); p != content.end(); ++p) + { + SubscriberRecordKey key; + key.topic = p->id; + SubscriberRecord rec; + rec.link = false; + rec.cost = 0; + _subscriberMap.put(SubscriberMap::value_type(key, rec)); + for(SubscriberRecordSeq::const_iterator q = p->records.begin(); q != p->records.end(); ++q) + { + SubscriberRecordKey key; + key.topic = p->id; + key.id = q->id; + _subscriberMap.put(SubscriberMap::value_type(key, *q)); + } + } + + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + + // We do this with two scans. The first runs through the topics + // that we have and removes those not in the init list. The second + // runs through the init list and either adds the ones that don't + // exist, or updates those that do. + + map<string, TopicImplPtr>::iterator p = _topics.begin(); + while(p != _topics.end()) + { + TopicContentSeq::const_iterator q; + for(q = content.begin(); q != content.end(); ++q) + { + if(q->id == p->second->id()) + { + break; + } + } + + if(q == content.end()) + { + // Note that this destroy should not remove anything from + // the database since we've already synced up the db + // state. + // + // TODO: We could short circuit the database operations in + // the topic by calling a third form of destroy. + p->second->observerDestroyTopic(llu); + _topics.erase(p++); + } + else + { + ++p; + } + } + + // Now run through the contents updating the topics that do exist, + // and creating those that do not. + for(TopicContentSeq::const_iterator q = content.begin(); q != content.end(); ++q) + { + string name = identityToTopicName(q->id); + map<string, TopicImplPtr>::const_iterator p = _topics.find(name); + if(p == _topics.end()) + { + installTopic(name, q->id, true, q->records); + } + else + { + p->second->update(q->records); + } + } + // Clear the set of observers. + _instance->observers()->clear(); } void -TopicManagerI::reap() +TopicManagerImpl::observerCreateTopic(const LogUpdate& llu, const string& name) { - // - // Always called with mutex locked. - // - // IceUtil::Mutex::Lock sync(*this); - // - TopicIMap::iterator i = _topicIMap.begin(); - while(i != _topicIMap.end()) + Lock sync(*this); + Ice::Identity id = nameToIdentity(_instance, name); + + for(;;) { - if(i->second->destroyed()) + try { - Ice::Identity id = i->second->id(); - TraceLevelsPtr traceLevels = _instance->traceLevels(); - if(traceLevels->topicMgr > 0) + Freeze::TransactionHolder txn(_connection); + SubscriberRecordKey key; + key.topic = id; + SubscriberRecord rec; + rec.link = false; + rec.cost = 0; + SubscriberMap::const_iterator q = _subscriberMap.find(key); + if(q != _subscriberMap.end()) { - Ice::Trace out(traceLevels->logger, traceLevels->topicMgrCat); - out << "Reaping " << i->first; + throw ObserverInconsistencyException("topic exists: " + name); } + _subscriberMap.put(SubscriberMap::value_type(key, rec)); + _llumap.put(LLUMap::value_type("_manager", llu)); + txn.commit(); + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } + installTopic(name, id, true); +} + +void +TopicManagerImpl::observerDestroyTopic(const LogUpdate& llu, const string& name) +{ + Lock sync(*this); + + map<string, TopicImplPtr>::iterator q = _topics.find(name); + if(q == _topics.end()) + { + throw ObserverInconsistencyException("no topic: " + name); + } + q->second->observerDestroyTopic(llu); + + _topics.erase(q); +} - _topics.erase(id); +void +TopicManagerImpl::observerAddSubscriber(const LogUpdate& llu, const string& name, const SubscriberRecord& record) +{ + TopicImplPtr topic; + { + Lock sync(*this); + + map<string, TopicImplPtr>::iterator q = _topics.find(name); + if(q == _topics.end()) + { + throw ObserverInconsistencyException("no topic: " + name); + } + assert(q != _topics.end()); + topic = q->second; + } + topic->observerAddSubscriber(llu, record); +} - try +void +TopicManagerImpl::observerRemoveSubscriber(const LogUpdate& llu, const string& name, const Ice::IdentitySeq& id) +{ + TopicImplPtr topic; + { + Lock sync(*this); + + map<string, TopicImplPtr>::iterator q = _topics.find(name); + if(q == _topics.end()) + { + throw ObserverInconsistencyException("no topic: " + name); + } + assert(q != _topics.end()); + topic = q->second; + } + topic->observerRemoveSubscriber(llu, id); +} + +void +TopicManagerImpl::getContent(LogUpdate& llu, TopicContentSeq& content) +{ + { + Lock sync(*this); + reap(); + } + + // Reads are not synchronized and therefore must use a separate + // connection. + const Freeze::ConnectionPtr connection = Freeze::createConnection(_instance->communicator(), + _instance->serviceName()); + const LLUMap llumap(connection, "llu"); + + for(;;) + { + try + { + content.clear(); + Freeze::TransactionHolder txn(connection); + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { - _topicAdapter->remove(id); + TopicContent rec = p->second->getContent(); + content.push_back(rec); } - catch(const Ice::ObjectAdapterDeactivatedException&) + + LLUMap::const_iterator ci = llumap.find("_manager"); + assert(ci != llumap.end()); + llu = ci->second; + break; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } +} + +LogUpdate +TopicManagerImpl::getLastLogUpdate() const +{ + const Freeze::ConnectionPtr connection = Freeze::createConnection( + _instance->communicator(), _instance->serviceName()); + const LLUMap llumap(connection, "llu"); + + for(;;) + { + try + { + LLUMap::const_iterator ci = llumap.find("_manager"); + return ci->second; + } + catch(const Freeze::DeadlockException&) + { + continue; + } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } + } +} + +void +TopicManagerImpl::sync(const Ice::ObjectPrx& master) +{ + TopicManagerSyncPrx sync = TopicManagerSyncPrx::uncheckedCast(master); + + LogUpdate llu; + TopicContentSeq content; + sync->getContent(llu, content); + + observerInit(llu, content); +} + +void +TopicManagerImpl::initMaster(const set<GroupNodeInfo>& slaves, const LogUpdate& llu) +{ + Lock sync(*this); + + reap(); + + TopicContentSeq content; + + // Update the database llu. This prevents the following case: + // + // Three replicas 1, 2, 3. 3 is the master. It accepts a change + // (say A=10, old value 9), writes to disk and then crashes. Now 2 + // becomes the master. The client can ask this master for A and it + // returns 9. Now 3 comes back online, it has the last database + // state, so it syncs this state with 1, 2. The client will now + // magically get A==10. The solution here is when a new master is + // elected and gets the latest database state it immediately + // updates the llu stamp. + // + for(;;) + { + try + { + content.clear(); + + Freeze::TransactionHolder txn(_connection); + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { - // Ignore + TopicContent rec = p->second->getContent(); + content.push_back(rec); } - _topicIMap.erase(i++); + LLUMap::iterator ci = _llumap.find("_manager"); + ci.set(llu); + + txn.commit(); + break; } - else + catch(const Freeze::DeadlockException&) { - ++i; + continue; } + catch(const Freeze::DatabaseException& ex) + { + halt(_instance->communicator(), ex); + } } + + // Now initialize the observers. + _instance->observers()->init(slaves, llu, content); +} + +Ice::ObjectPrx +TopicManagerImpl::getObserver() const +{ + return _observer; +} + +Ice::ObjectPrx +TopicManagerImpl::getSync() const +{ + return _sync; } void -TopicManagerI::shutdown() +TopicManagerImpl::reap() { - IceUtil::Mutex::Lock sync(*this); + // + // Always called with mutex locked. + // + // Lock sync(*this); + // + map<string, TopicImplPtr>::iterator p = _topics.begin(); + while(p != _topics.end()) + { + if(p->second->destroyed()) + { + _topics.erase(p++); + } + else + { + ++p; + } + } +} - reap(); +void +TopicManagerImpl::shutdown() +{ + Lock sync(*this); - for(TopicIMap::const_iterator p = _topicIMap.begin(); p != _topicIMap.end(); ++p) + for(map<string, TopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) { - p->second->reap(); + p->second->shutdown(); } + _topics.clear(); + + _observerImpl = 0; + _syncImpl = 0; + _managerImpl = 0; +} + +Ice::ObjectPtr +TopicManagerImpl::getServant() const +{ + return _managerImpl; } TopicPrx -TopicManagerI::installTopic(const string& name, const Ice::Identity& id, const LinkRecordSeq& rec, bool create) +TopicManagerImpl::installTopic(const string& name, const Ice::Identity& id, bool create, + const IceStorm::SubscriberRecordSeq& subscribers) { // // Called by constructor or with 'this' mutex locked. @@ -221,15 +866,11 @@ TopicManagerI::installTopic(const string& name, const Ice::Identity& id, const L } } - // // Create topic implementation - // - TopicIPtr topicI = new TopicI(_instance, name, id, rec, _envName, _dbName); + TopicImplPtr topicImpl = new TopicImpl(_instance, name, id, subscribers); - // // The identity is the name of the Topic. - // - TopicPrx prx = TopicPrx::uncheckedCast(_topicAdapter->add(topicI, id)); - _topicIMap.insert(TopicIMap::value_type(name, topicI)); - return prx; + _topics.insert(map<string, TopicImplPtr>::value_type(name, topicImpl)); + _instance->topicAdapter()->add(topicImpl->getServant(), id); + return topicImpl->proxy(); } diff --git a/cpp/src/IceStorm/TopicManagerI.h b/cpp/src/IceStorm/TopicManagerI.h index 2d817efd339..4e1619284ff 100644 --- a/cpp/src/IceStorm/TopicManagerI.h +++ b/cpp/src/IceStorm/TopicManagerI.h @@ -11,7 +11,13 @@ #define TOPIC_MANAGER_I_H #include <IceStorm/IceStorm.h> -#include <IceStorm/PersistentTopicMap.h> +#include <IceStorm/LLUMap.h> +#include <IceStorm/SubscriberMap.h> + +#include <IceStorm/Replica.h> +#include <IceStorm/Election.h> + +#include <IceUtil/RecMutex.h> namespace IceStorm { @@ -22,52 +28,70 @@ namespace IceStorm class Instance; typedef IceUtil::Handle<Instance> InstancePtr; -// -// Map of TopicI objects. -// -class TopicI; -typedef IceUtil::Handle<TopicI> TopicIPtr; - -typedef std::map<std::string, TopicIPtr> TopicIMap; +class TopicImpl; +typedef IceUtil::Handle<TopicImpl> TopicImplPtr; // // TopicManager implementation. // -class TopicManagerI : public TopicManager, public IceUtil::Mutex +class TopicManagerImpl : public IceStormElection::Replica, public IceUtil::RecMutex { public: - TopicManagerI(const InstancePtr&, - const Ice::ObjectAdapterPtr&, - const std::string&, - const std::string&); - ~TopicManagerI(); + TopicManagerImpl(const InstancePtr&); + ~TopicManagerImpl(); + + // TopicManager methods. + TopicPrx create(const std::string&); + TopicPrx retrieve(const std::string&) const; + TopicDict retrieveAll() const; + + // Observer methods. + void observerInit(const IceStormElection::LogUpdate&, const IceStormElection::TopicContentSeq&); + void observerCreateTopic(const IceStormElection::LogUpdate&, const std::string&); + void observerDestroyTopic(const IceStormElection::LogUpdate&, const std::string&); + void observerAddSubscriber(const IceStormElection::LogUpdate&, const std::string&, + const IceStorm::SubscriberRecord&); + void observerRemoveSubscriber(const IceStormElection::LogUpdate&, const std::string&, const Ice::IdentitySeq&); - virtual TopicPrx create(const std::string&, const Ice::Current&); - virtual TopicPrx retrieve(const std::string&, const Ice::Current&) const; - virtual TopicDict retrieveAll(const Ice::Current&) const; + // Sync methods. + void getContent(IceStormElection::LogUpdate&, IceStormElection::TopicContentSeq&); - virtual Ice::SliceChecksumDict getSliceChecksums(const Ice::Current&) const; + // Replica methods. + virtual IceStormElection::LogUpdate getLastLogUpdate() const; + virtual void sync(const Ice::ObjectPrx&); + virtual void initMaster(const std::set<IceStormElection::GroupNodeInfo>&, const IceStormElection::LogUpdate&); + virtual Ice::ObjectPrx getObserver() const; + virtual Ice::ObjectPrx getSync() const; void reap(); void shutdown(); + Ice::ObjectPtr getServant() const; + private: - TopicPrx installTopic(const std::string&, const Ice::Identity&, const LinkRecordSeq&, bool); - + TopicPrx installTopic(const std::string&, const Ice::Identity&, bool, + const IceStorm::SubscriberRecordSeq& = IceStorm::SubscriberRecordSeq()); + const InstancePtr _instance; - const Ice::ObjectAdapterPtr _topicAdapter; - const std::string _envName; - const std::string _dbName; + + // The connection and freeze maps. const Freeze::ConnectionPtr _connection; - PersistentTopicMap _topics; + LLUMap _llumap; + SubscriberMap _subscriberMap; - TopicIMap _topicIMap; -}; + std::map<std::string, TopicImplPtr> _topics; + + Ice::ObjectPtr _managerImpl; + Ice::ObjectPtr _observerImpl; + Ice::ObjectPrx _observer; + Ice::ObjectPtr _syncImpl; + Ice::ObjectPrx _sync; -typedef IceUtil::Handle<TopicManagerI> TopicManagerIPtr; +}; +typedef IceUtil::Handle<TopicManagerImpl> TopicManagerImplPtr; } // End namespace IceStorm diff --git a/cpp/src/IceStorm/TraceLevels.cpp b/cpp/src/IceStorm/TraceLevels.cpp index 653ab63686a..6f244504349 100644 --- a/cpp/src/IceStorm/TraceLevels.cpp +++ b/cpp/src/IceStorm/TraceLevels.cpp @@ -19,20 +19,19 @@ TraceLevels::TraceLevels(const string name, const Ice::PropertiesPtr& properties topicMgrCat("TopicManager"), topic(0), topicCat("Topic"), - flush(0), - flushCat("Flush"), - subscriberPool(0), - subscriberPoolCat("SubscriberPool"), subscriber(0), subscriberCat("Subscriber"), + election(0), + electionCat("Election"), + replication(0), + replicationCat("Replication"), logger(theLogger) { const string keyBase = name + ".Trace."; const_cast<int&>(topicMgr) = properties->getPropertyAsInt(keyBase + topicMgrCat); const_cast<int&>(topic) = properties->getPropertyAsInt(keyBase + topicCat); - const_cast<int&>(flush) = properties->getPropertyAsInt(keyBase + flushCat); - const_cast<int&>(subscriberPool) = properties->getPropertyAsInt(keyBase + subscriberPoolCat); const_cast<int&>(subscriber) = properties->getPropertyAsInt(keyBase + subscriberCat); + const_cast<int&>(election) = properties->getPropertyAsInt(keyBase + electionCat); } TraceLevels::~TraceLevels() diff --git a/cpp/src/IceStorm/TraceLevels.h b/cpp/src/IceStorm/TraceLevels.h index 726684259a7..541b4e43e7c 100644 --- a/cpp/src/IceStorm/TraceLevels.h +++ b/cpp/src/IceStorm/TraceLevels.h @@ -31,15 +31,15 @@ public: const int topic; const char* topicCat; - const int flush; - const char* flushCat; - - const int subscriberPool; - const char* subscriberPoolCat; - const int subscriber; const char* subscriberCat; + const int election; + const char* electionCat; + + const int replication; + const char* replicationCat; + const Ice::LoggerPtr logger; }; diff --git a/cpp/src/IceStorm/TransientTopicI.cpp b/cpp/src/IceStorm/TransientTopicI.cpp new file mode 100644 index 00000000000..e70f013736f --- /dev/null +++ b/cpp/src/IceStorm/TransientTopicI.cpp @@ -0,0 +1,598 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceStorm/TransientTopicI.h> +#include <IceStorm/Instance.h> +#include <IceStorm/Subscriber.h> +#include <IceStorm/TraceLevels.h> + +#include <Ice/Ice.h> + +#include <list> +#include <algorithm> + +using namespace IceStorm; +using namespace std; + +namespace +{ + +// +// The servant has a 1-1 association with a topic. It is used to +// receive events from Publishers. +// +class TransientPublisherI : public Ice::BlobjectArray +{ +public: + + TransientPublisherI(const TransientTopicImplPtr& impl) : + _impl(impl) + { + } + + virtual bool + ice_invoke(const pair<const Ice::Byte*, const Ice::Byte*>& inParams, + Ice::ByteSeq&, + const Ice::Current& current) + { + // Use cached reads. + EventDataPtr event = new EventData( + current.operation, + current.mode, + Ice::ByteSeq(), + current.ctx); + + // + // COMPILERBUG: gcc 4.0.1 doesn't like this. + // + //event->data.swap(Ice::ByteSeq(inParams.first, inParams.second)); + Ice::ByteSeq data(inParams.first, inParams.second); + event->data.swap(data); + + EventDataSeq v; + v.push_back(event); + _impl->publish(false, v); + + return true; + } + +private: + + const TransientTopicImplPtr _impl; +}; + +// +// The servant has a 1-1 association with a topic. It is used to +// receive events from linked Topics. +// +class TransientTopicLinkI : public TopicLink +{ +public: + + TransientTopicLinkI(const TransientTopicImplPtr& impl) : + _impl(impl) + { + } + + virtual void + forward(const EventDataSeq& v, const Ice::Current& current) + { + _impl->publish(true, v); + } + +private: + + const TransientTopicImplPtr _impl; +}; + +} + +namespace IceStorm +{ +extern string identityToTopicName(const Ice::Identity& id); +} + +TransientTopicImpl::TransientTopicImpl( + const InstancePtr& instance, + const string& name, + const Ice::Identity& id) : + _instance(instance), + _name(name), + _id(id), + _destroyed(false) +{ + // + // Create a servant per topic to receive event data. If the + // category is empty then we are in backwards compatibility + // mode. In this case the servant's identity is + // category=<topicname>, name=publish, otherwise the name is + // <instancename>/<topicname>.publish. The same applies to the + // link proxy. + // + // Activate the object and save a reference to give to publishers. + // + Ice::Identity pubid; + Ice::Identity linkid; + if(id.category.empty()) + { + pubid.category = _name; + pubid.name = "publish"; + linkid.category = _name; + linkid.name = "link"; + } + else + { + pubid.category = id.category; + pubid.name = _name + ".publish"; + linkid.category = id.category; + linkid.name = _name + ".link"; + } + + _publisherPrx = _instance->publishAdapter()->add(new TransientPublisherI(this), pubid); + _linkPrx = TopicLinkPrx::uncheckedCast(_instance->publishAdapter()->add(new TransientTopicLinkI(this), linkid)); +} + +TransientTopicImpl::~TransientTopicImpl() +{ +} + +string +TransientTopicImpl::getName(const Ice::Current&) const +{ + // Immutable + return _name; +} + +Ice::ObjectPrx +TransientTopicImpl::getPublisher(const Ice::Current&) const +{ + // Immutable + return _publisherPrx; +} + +Ice::ObjectPrx +TransientTopicImpl::getNonReplicatedPublisher(const Ice::Current&) const +{ + // Immutable + return _publisherPrx; +} + +// +// COMPILERFIX: For some reason with VC6 find reports an error. +// +#if defined(_MSC_VER) && (_MSC_VER < 1300) +namespace +{ +static vector<SubscriberPtr>::iterator +find(vector<SubscriberPtr>::iterator start, vector<SubscriberPtr>::iterator end, const Ice::Identity& ident) +{ + while(start != end) + { + if(*start == ident) + { + return start; + } + ++start; + } + return end; +} +} +#endif + +void +TransientTopicImpl::subscribe(const QoS& origQoS, const Ice::ObjectPrx& obj, const Ice::Current&) +{ + Ice::Identity id = obj->ice_getIdentity(); + TraceLevelsPtr traceLevels = _instance->traceLevels(); + QoS qos = origQoS; + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": subscribe: " << _instance->communicator()->identityToString(id); + if(traceLevels->topic > 1) + { + out << " QoS: "; + for(QoS::const_iterator p = qos.begin(); p != qos.end() ; ++p) + { + if(p != qos.begin()) + { + out << ','; + } + out << '[' << p->first << "," << p->second << ']'; + } + } + } + + string reliability = "oneway"; + { + QoS::iterator p = qos.find("reliability"); + if(p != qos.end()) + { + reliability = p->second; + qos.erase(p); + } + } + + Ice::ObjectPrx newObj = obj; + if(reliability == "batch") + { + if(newObj->ice_isDatagram()) + { + newObj = newObj->ice_batchDatagram(); + } + else + { + newObj = newObj->ice_batchOneway(); + } + } + else if(reliability == "twoway") + { + newObj = newObj->ice_twoway(); + } + else if(reliability == "twoway ordered") + { + qos["reliability"] = "ordered"; + newObj = newObj->ice_twoway(); + } + else // reliability == "oneway" + { + if(reliability != "oneway" && traceLevels->subscriber > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->subscriberCat); + out << reliability <<" mode not understood."; + } + if(!newObj->ice_isDatagram()) + { + newObj = newObj->ice_oneway(); + } + } + + Lock sync(*this); + SubscriberRecord record; + record.id = id; + record.obj = newObj; + record.theQoS = qos; + record.topicName = _name; + record.link = false; + record.cost = 0; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); + if(p != _subscribers.end()) + { + // If we already have this subscriber remove it from our + // subscriber list and remove it from the database. + (*p)->destroy(); + _subscribers.erase(p); + } + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + _subscribers.push_back(subscriber); +} + +Ice::ObjectPrx +TransientTopicImpl::subscribeAndGetPublisher(const QoS& qos, const Ice::ObjectPrx& obj, const Ice::Current&) +{ + Ice::Identity id = obj->ice_getIdentity(); + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": subscribeAndGetPublisher: " << _instance->communicator()->identityToString(id); + if(traceLevels->topic > 1) + { + out << " QoS: "; + for(QoS::const_iterator p = qos.begin(); p != qos.end() ; ++p) + { + if(p != qos.begin()) + { + out << ','; + } + + } + } + } + + Lock sync(*this); + + SubscriberRecord record; + record.id = id; + record.obj = obj; + record.theQoS = qos; + record.topicName = _name; + record.link = false; + record.cost = 0; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); + if(p != _subscribers.end()) + { + throw AlreadySubscribed(); + } + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + _subscribers.push_back(subscriber); + + return subscriber->proxy(); +} + +void +TransientTopicImpl::unsubscribe(const Ice::ObjectPrx& subscriber, const Ice::Current&) +{ + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(!subscriber) + { + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << "unsubscribe with null subscriber."; + } + return; + } + + Ice::Identity id = subscriber->ice_getIdentity(); + + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": unsubscribe: " << _instance->communicator()->identityToString(id); + } + + Lock sync(*this); + // First remove the subscriber from the subscribers list. Note + // that its possible that the subscriber isn't in the list, but is + // in the database if the subscriber was locally reaped. + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), id); + if(p != _subscribers.end()) + { + (*p)->destroy(); + _subscribers.erase(p); + } +} + +TopicLinkPrx +TransientTopicImpl::getLinkProxy(const Ice::Current&) +{ + // immutable + return _linkPrx; +} + +void +TransientTopicImpl::link(const TopicPrx& topic, Ice::Int cost, const Ice::Current&) +{ + TopicInternalPrx internal = TopicInternalPrx::uncheckedCast(topic); + TopicLinkPrx link = internal->getLinkProxy(); + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": link " << _instance->communicator()->identityToString(topic->ice_getIdentity()) + << " cost " << cost; + } + + Lock sync(*this); + + Ice::Identity id = topic->ice_getIdentity(); + + SubscriberRecord record; + record.id = id; + record.obj = link; + record.theTopic = topic; + record.topicName = _name; + record.link = true; + record.cost = cost; + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), record.id); + if(p != _subscribers.end()) + { + string name = identityToTopicName(id); + LinkExists ex; + ex.name = name; + throw ex; + } + + SubscriberPtr subscriber = Subscriber::create(_instance, record); + _subscribers.push_back(subscriber); +} + +void +TransientTopicImpl::unlink(const TopicPrx& topic, const Ice::Current&) +{ + Lock sync(*this); + if(_destroyed) + { + throw Ice::ObjectNotExistException(__FILE__, __LINE__); + } + + Ice::Identity id = topic->ice_getIdentity(); + + vector<SubscriberPtr>::iterator p = find(_subscribers.begin(), _subscribers.end(), id); + if(p == _subscribers.end()) + { + string name = identityToTopicName(id); + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": unlink " << name << " failed - not linked"; + } + + NoSuchLink ex; + ex.name = name; + throw ex; + } + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << " unlink " << _instance->communicator()->identityToString(id); + } + + // Remove the subscriber from the subscribers list. Note + // that its possible that the subscriber isn't in the list, but is + // in the database if the subscriber was locally reaped. + p = find(_subscribers.begin(), _subscribers.end(), id); + if(p != _subscribers.end()) + { + (*p)->destroy(); + _subscribers.erase(p); + } +} + +LinkInfoSeq +TransientTopicImpl::getLinkInfoSeq(const Ice::Current&) const +{ + Lock sync(*this); + LinkInfoSeq seq; + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + SubscriberRecord record = (*p)->record(); + if(record.link && !(*p)->errored()) + { + LinkInfo info; + info.name = identityToTopicName(record.theTopic->ice_getIdentity()); + info.cost = record.cost; + info.theTopic = record.theTopic; + seq.push_back(info); + } + } + return seq; +} + +void +TransientTopicImpl::destroy(const Ice::Current&) +{ + Lock sync(*this); + + if(_destroyed) + { + throw Ice::ObjectNotExistException(__FILE__, __LINE__); + } + _destroyed = true; + + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topic > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicCat); + out << _name << ": destroy"; + } + + try + { + _instance->publishAdapter()->remove(_linkPrx->ice_getIdentity()); + _instance->publishAdapter()->remove(_publisherPrx->ice_getIdentity()); + } + catch(const Ice::ObjectAdapterDeactivatedException&) + { + // Ignore -- this could occur on shutdown. + } + + // Destroy all of the subscribers. + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + (*p)->destroy(); + } + _subscribers.clear(); +} + +void +TransientTopicImpl::reap(const Ice::IdentitySeq&, const Ice::Current&) +{ +} + +bool +TransientTopicImpl::destroyed() const +{ + Lock sync(*this); + return _destroyed; +} + +Ice::Identity +TransientTopicImpl::id() const +{ + // immutable + return _id; +} + +void +TransientTopicImpl::publish(bool forwarded, const EventDataSeq& events) +{ + // + // Copy of the subscriber list so that event publishing can occur + // in parallel. + // + vector<SubscriberPtr> copy; + { + Lock sync(*this); + copy = _subscribers; + } + + // + // Queue each event, gathering a list of those subscribers that + // must be reaped. + // + vector<Ice::Identity> e; + for(vector<SubscriberPtr>::const_iterator p = copy.begin(); p != copy.end(); ++p) + { + if(!(*p)->queue(forwarded, events) && (*p)->reap()) + { + e.push_back((*p)->id()); + } + } + + // + // Run through the error list removing those subscribers that are + // in error from the subscriber list. + // + if(!e.empty()) + { + Lock sync(*this); + for(vector<Ice::Identity>::const_iterator ep = e.begin(); ep != e.end(); ++ep) + { + // + // Its possible for the subscriber to already have been + // removed since the copy is iterated over outside of + // mutex protection. + // + // Note that although this could be quicker if we used a + // map, the most optimal case should be pushing around + // events not searching for a particular subscriber. + // + // The subscriber is immediately destroyed & removed from + // the _subscribers list. Add the subscriber to a list of + // error'd subscribers and remove it from the database on + // the next reap. + // + vector<SubscriberPtr>::iterator q = find(_subscribers.begin(), _subscribers.end(), *ep); + if(q != _subscribers.end()) + { + SubscriberPtr subscriber = *q; + // + // Destroy the subscriber. + // + subscriber->destroy(); + _subscribers.erase(q); + } + } + } +} + +void +TransientTopicImpl::shutdown() +{ + Lock sync(*this); + + // Shutdown each subscriber. This waits for the event queues to drain. + for(vector<SubscriberPtr>::const_iterator p = _subscribers.begin(); p != _subscribers.end(); ++p) + { + (*p)->shutdown(); + } +} diff --git a/cpp/src/IceStorm/TransientTopicI.h b/cpp/src/IceStorm/TransientTopicI.h new file mode 100644 index 00000000000..3a7bbdf9350 --- /dev/null +++ b/cpp/src/IceStorm/TransientTopicI.h @@ -0,0 +1,80 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef TRANSIENT_TOPIC_I_H +#define TRANSIENT_TOPIC_I_H + +#include <IceStorm/IceStormInternal.h> + +namespace IceStorm +{ + +// Forward declarations. +class Instance; +typedef IceUtil::Handle<Instance> InstancePtr; + +class Subscriber; +typedef IceUtil::Handle<Subscriber> SubscriberPtr; + +class TransientTopicImpl : public TopicInternal, public IceUtil::Mutex +{ +public: + + TransientTopicImpl(const InstancePtr&, const std::string&, const Ice::Identity&); + ~TransientTopicImpl(); + + virtual std::string getName(const Ice::Current&) const; + virtual Ice::ObjectPrx getPublisher(const Ice::Current&) const; + virtual Ice::ObjectPrx getNonReplicatedPublisher(const Ice::Current&) const; + virtual void subscribe(const QoS&, const Ice::ObjectPrx&, const Ice::Current&); + virtual Ice::ObjectPrx subscribeAndGetPublisher(const QoS&, const Ice::ObjectPrx&, const Ice::Current&); + virtual void unsubscribe(const Ice::ObjectPrx&, const Ice::Current&); + virtual TopicLinkPrx getLinkProxy(const Ice::Current&); + virtual void link(const TopicPrx&, Ice::Int, const Ice::Current&); + virtual void unlink(const TopicPrx&, const Ice::Current&); + virtual LinkInfoSeq getLinkInfoSeq(const Ice::Current&) const; + virtual void destroy(const Ice::Current&); + virtual void reap(const Ice::IdentitySeq&, const Ice::Current&); + + // Internal methods + bool destroyed() const; + Ice::Identity id() const; + void publish(bool, const EventDataSeq&); + + void shutdown(); + +private: + + // + // Immutable members. + // + const InstancePtr _instance; + const std::string _name; // The topic name + const Ice::Identity _id; // The topic identity + + /*const*/ Ice::ObjectPrx _publisherPrx; + /*const*/ TopicLinkPrx _linkPrx; + + // + // We keep a vector of subscribers since the optimized behaviour + // should be publishing events, not searching through the list of + // subscribers for a particular subscriber. I tested + // vector/list/map and although there was little difference vector + // was the fastest of the three. + // + std::vector<SubscriberPtr> _subscribers; + + bool _destroyed; // Has this Topic been destroyed? +}; + +typedef IceUtil::Handle<TransientTopicImpl> TransientTopicImplPtr; + +} // End namespace IceStorm + +#endif diff --git a/cpp/src/IceStorm/TransientTopicManagerI.cpp b/cpp/src/IceStorm/TransientTopicManagerI.cpp new file mode 100644 index 00000000000..a928007c975 --- /dev/null +++ b/cpp/src/IceStorm/TransientTopicManagerI.cpp @@ -0,0 +1,185 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceStorm/TransientTopicManagerI.h> +#include <IceStorm/TransientTopicI.h> +#include <IceStorm/TraceLevels.h> +#include <IceStorm/Instance.h> + +#include <Ice/Ice.h> + +#include <Ice/SliceChecksums.h> + +#include <functional> + +using namespace IceStorm; +using namespace std; + +namespace IceStorm +{ + +extern Ice::Identity nameToIdentity(const InstancePtr&, const string&); + +} + +TransientTopicManagerImpl::TransientTopicManagerImpl(const InstancePtr& instance) : + _instance(instance) +{ +} + +TransientTopicManagerImpl::~TransientTopicManagerImpl() +{ +} + +TopicPrx +TransientTopicManagerImpl::create(const string& name, const Ice::Current&) +{ + Lock sync(*this); + + reap(); + + if(_topics.find(name) != _topics.end()) + { + TopicExists ex; + ex.name = name; + throw ex; + } + + Ice::Identity id = nameToIdentity(_instance, name); + + // + // Called by constructor or with 'this' mutex locked. + // + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topicMgr > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicMgrCat); + out << "creating new topic \"" << name << "\". id: " + << _instance->communicator()->identityToString(id); + } + + // + // Create topic implementation + // + TransientTopicImplPtr topicImpl = new TransientTopicImpl(_instance, name, id); + + // + // The identity is the name of the Topic. + // + TopicPrx prx = TopicPrx::uncheckedCast(_instance->topicAdapter()->add(topicImpl, id)); + _topics.insert(map<string, TransientTopicImplPtr>::value_type(name, topicImpl)); + return prx; +} + +TopicPrx +TransientTopicManagerImpl::retrieve(const string& name, const Ice::Current&) const +{ + Lock sync(*this); + + TransientTopicManagerImpl* This = const_cast<TransientTopicManagerImpl*>(this); + This->reap(); + + map<string, TransientTopicImplPtr>::const_iterator p = _topics.find(name); + if(p == _topics.end()) + { + NoSuchTopic ex; + ex.name = name; + throw ex; + } + + // Here we cannot just reconstruct the identity since the + // identity could be either instanceName/topic name, or if + // created with pre-3.2 IceStorm / topic name. + return TopicPrx::uncheckedCast(_instance->topicAdapter()->createProxy(p->second->id())); +} + +TopicDict +TransientTopicManagerImpl::retrieveAll(const Ice::Current&) const +{ + Lock sync(*this); + + TransientTopicManagerImpl* This = const_cast<TransientTopicManagerImpl*>(this); + This->reap(); + + TopicDict all; + for(map<string, TransientTopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) + { + // + // Here we cannot just reconstruct the identity since the + // identity could be either "<instanceName>/topic.<topicname>" + // name, or if created with pre-3.2 IceStorm "/<topicname>". + // + all.insert(TopicDict::value_type( + p->first, TopicPrx::uncheckedCast(_instance->topicAdapter()->createProxy(p->second->id())))); + } + + return all; +} +Ice::SliceChecksumDict +TransientTopicManagerImpl::getSliceChecksums(const Ice::Current&) const +{ + return Ice::sliceChecksums(); +} + +IceStormElection::NodePrx +TransientTopicManagerImpl::getReplicaNode(const Ice::Current&) const +{ + return IceStormElection::NodePrx(); +} + +void +TransientTopicManagerImpl::reap() +{ + // + // Always called with mutex locked. + // + // Lock sync(*this); + // + map<string, TransientTopicImplPtr>::iterator i = _topics.begin(); + while(i != _topics.end()) + { + if(i->second->destroyed()) + { + Ice::Identity id = i->second->id(); + TraceLevelsPtr traceLevels = _instance->traceLevels(); + if(traceLevels->topicMgr > 0) + { + Ice::Trace out(traceLevels->logger, traceLevels->topicMgrCat); + out << "Reaping " << i->first; + } + + try + { + _instance->topicAdapter()->remove(id); + } + catch(const Ice::ObjectAdapterDeactivatedException&) + { + // Ignore + } + + _topics.erase(i++); + } + else + { + ++i; + } + } +} + +void +TransientTopicManagerImpl::shutdown() +{ + Lock sync(*this); + + for(map<string, TransientTopicImplPtr>::const_iterator p = _topics.begin(); p != _topics.end(); ++p) + { + p->second->shutdown(); + } +} diff --git a/cpp/src/IceStorm/TransientTopicManagerI.h b/cpp/src/IceStorm/TransientTopicManagerI.h new file mode 100644 index 00000000000..ca781bf451b --- /dev/null +++ b/cpp/src/IceStorm/TransientTopicManagerI.h @@ -0,0 +1,59 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef TRANSIENT_TOPIC_MANAGER_I_H +#define TRANSIENT_TOPIC_MANAGER_I_H + +#include <IceStorm/IceStormInternal.h> + +namespace IceStorm +{ + +// +// Forward declarations. +// +class Instance; +typedef IceUtil::Handle<Instance> InstancePtr; + +class TransientTopicImpl; +typedef IceUtil::Handle<TransientTopicImpl> TransientTopicImplPtr; + +// +// TopicManager implementation. +// +class TransientTopicManagerImpl : public TopicManagerInternal, public IceUtil::Mutex +{ +public: + + TransientTopicManagerImpl(const InstancePtr&); + ~TransientTopicManagerImpl(); + + // TopicManager methods. + virtual TopicPrx create(const std::string&, const Ice::Current&); + virtual TopicPrx retrieve(const std::string&, const Ice::Current&) const; + virtual TopicDict retrieveAll(const Ice::Current&) const; + virtual Ice::SliceChecksumDict getSliceChecksums(const Ice::Current&) const; + virtual IceStormElection::NodePrx getReplicaNode(const Ice::Current&) const; + + void reap(); + + void shutdown(); + + Ice::ObjectPtr getServant() const; + +private: + + const InstancePtr _instance; + std::map<std::string, TransientTopicImplPtr> _topics; +}; +typedef IceUtil::Handle<TransientTopicManagerImpl> TransientTopicManagerImplPtr; + +} // End namespace IceStorm + +#endif diff --git a/cpp/src/Makefile b/cpp/src/Makefile index f2b02c7caf5..6ad6902ed3e 100644 --- a/cpp/src/Makefile +++ b/cpp/src/Makefile @@ -31,9 +31,10 @@ SUBDIRS = IceUtil \ Freeze \ FreezeScript \ IceBox \ - IceStorm \ Glacier2 \ IcePatch2 \ + IceGridLib \ + IceStorm \ IceGrid \ ca diff --git a/cpp/src/Makefile.mak b/cpp/src/Makefile.mak index ea2522d9a67..41995cd14f9 100644 --- a/cpp/src/Makefile.mak +++ b/cpp/src/Makefile.mak @@ -33,6 +33,7 @@ SUBDIRS = IceUtil \ Glacier2 \ Freeze \ FreezeScript \ + IceGridLib \ IceStorm \ IceGrid \ iceserviceinstall \ diff --git a/cpp/test/IceStorm/Makefile b/cpp/test/IceStorm/Makefile index 1fc080ddd3e..c31494dc138 100644 --- a/cpp/test/IceStorm/Makefile +++ b/cpp/test/IceStorm/Makefile @@ -14,7 +14,10 @@ include $(top_srcdir)/config/Make.rules SUBDIRS = single \ federation \ federation2 \ - stress + stress \ + rep1 \ + repstress \ + repgrid $(EVERYTHING):: @for subdir in $(SUBDIRS); \ diff --git a/cpp/test/IceStorm/Makefile.mak b/cpp/test/IceStorm/Makefile.mak index 26d6110a05e..189028c5bc6 100644 --- a/cpp/test/IceStorm/Makefile.mak +++ b/cpp/test/IceStorm/Makefile.mak @@ -14,7 +14,10 @@ top_srcdir = ..\.. SUBDIRS = single \ federation \ federation2 \ - stress + stress \ + rep1 \ + repstress \ + repgrid $(EVERYTHING):: @for %i in ( $(SUBDIRS) ) do \ diff --git a/cpp/test/IceStorm/federation/.depend b/cpp/test/IceStorm/federation/.depend index 17947ebeaa9..46c15001bb1 100644 --- a/cpp/test/IceStorm/federation/.depend +++ b/cpp/test/IceStorm/federation/.depend @@ -1,5 +1,5 @@ -Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h -Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h ../../include/TestCommon.h +Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h ../../include/TestCommon.h Event.cpp: Event.ice Event.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/federation/.gitignore b/cpp/test/IceStorm/federation/.gitignore index 08f28c36e0f..f6811ab9123 100644 --- a/cpp/test/IceStorm/federation/.gitignore +++ b/cpp/test/IceStorm/federation/.gitignore @@ -7,3 +7,6 @@ Event.cpp Event.h build.txt db/* +0.db/* +1.db/* +2.db/* diff --git a/cpp/test/IceStorm/federation/0.db/.gitignore b/cpp/test/IceStorm/federation/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation/1.db/.gitignore b/cpp/test/IceStorm/federation/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation/2.db/.gitignore b/cpp/test/IceStorm/federation/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation/Makefile b/cpp/test/IceStorm/federation/Makefile index ffc90c7dfba..b1ef9bd92bd 100644 --- a/cpp/test/IceStorm/federation/Makefile +++ b/cpp/test/IceStorm/federation/Makefile @@ -42,5 +42,8 @@ $(SUBSCRIBER): $(OBJS) $(SOBJS) clean:: -rm -f build.txt -rm -f db/* + -rm -f 0.db/* + -rm -f 1.db/* + -rm -f 2.db/* include .depend diff --git a/cpp/test/IceStorm/federation/Makefile.mak b/cpp/test/IceStorm/federation/Makefile.mak index 30d7eab0b51..fa8da0b91a0 100644 --- a/cpp/test/IceStorm/federation/Makefile.mak +++ b/cpp/test/IceStorm/federation/Makefile.mak @@ -61,5 +61,8 @@ clean:: del /q Event.cpp Event.h del /q db\topicmanager db\log.* for %f in (db\*) do if not %f == db\.gitignore del /q %f + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f !include .depend diff --git a/cpp/test/IceStorm/federation/Publisher.cpp b/cpp/test/IceStorm/federation/Publisher.cpp index 93bf778fc69..bcd8d254cdd 100644 --- a/cpp/test/IceStorm/federation/Publisher.cpp +++ b/cpp/test/IceStorm/federation/Publisher.cpp @@ -20,7 +20,7 @@ int run(int argc, char* argv[], const CommunicatorPtr& communicator) { PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/federation/Subscriber.cpp b/cpp/test/IceStorm/federation/Subscriber.cpp index b7447abd108..6bef00cd002 100644 --- a/cpp/test/IceStorm/federation/Subscriber.cpp +++ b/cpp/test/IceStorm/federation/Subscriber.cpp @@ -95,7 +95,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/federation/db/.gitignore b/cpp/test/IceStorm/federation/db/.gitignore index 39af5887579..dc8ec467d5f 100644 --- a/cpp/test/IceStorm/federation/db/.gitignore +++ b/cpp/test/IceStorm/federation/db/.gitignore @@ -1 +1,2 @@ +* # Dummy file, so that git retains this otherwise empty directory. diff --git a/cpp/test/IceStorm/federation/run.py b/cpp/test/IceStorm/federation/run.py index 3f36ce46a4c..0cf7f0f5ae9 100755 --- a/cpp/test/IceStorm/federation/run.py +++ b/cpp/test/IceStorm/federation/run.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # ********************************************************************** # -# Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. @@ -25,25 +25,9 @@ TestUtil.processCmdLine() name = os.path.join("IceStorm", "federation") testdir = os.path.dirname(os.path.abspath(__file__)) -iceBox = TestUtil.getIceBox(testdir) -iceBoxAdmin = os.path.join(TestUtil.getBinDir(__file__), "iceboxadmin") -iceStormAdmin = os.path.join(TestUtil.getBinDir(__file__), "icestormadmin") +import IceStormUtil -iceStormService = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12011"' + \ - ' --IceStorm.Publish.Endpoints="default"' + \ - " --IceBox.PrintServicesReady=IceStorm" + \ - " --IceBox.InheritProperties=1" + \ - ' --Ice.Admin.Endpoints="default -p 12010"' + \ - " --Ice.Admin.InstanceName=IceBox" - -serviceManagerProxy = ' --IceBoxAdmin.ServiceManager.Proxy="IceBox/admin -f IceBox.ServiceManager:default -p 12010"' - -iceStormReference = ' --IceStorm.TopicManager.Proxy="IceStorm/TopicManager:default -p 12011"' - -def doTest(batch): - global testdir - global iceStormReference +def doTest(icestorm, batch): publisher = os.path.join(testdir, "publisher") subscriber = os.path.join(testdir, "subscriber") @@ -55,7 +39,7 @@ def doTest(batch): name = "subscriber" batchOptions = "" - subscriberPipe = TestUtil.startServer(subscriber, batchOptions + iceStormReference + " 2>&1") + subscriberPipe = TestUtil.startServer(subscriber, batchOptions + icestorm.reference() + " 2>&1") TestUtil.getServerPid(subscriberPipe) TestUtil.getAdapterReady(subscriberPipe) @@ -63,7 +47,7 @@ def doTest(batch): # Start the publisher. This should publish events which eventually # causes subscriber to terminate. # - publisherPipe = TestUtil.startClient(publisher, iceStormReference + " 2>&1") + publisherPipe = TestUtil.startClient(publisher, icestorm.reference() + " 2>&1") TestUtil.printOutputFromPipe(publisherPipe) @@ -72,65 +56,51 @@ def doTest(batch): return subscriberStatus or publisherStatus -dbHome = os.path.join(testdir, "db") -TestUtil.cleanDbDir(dbHome) -iceStormDBEnv=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome - -print "starting icestorm service...", -iceBoxPipe = TestUtil.startServer(iceBox, iceStormService + iceStormDBEnv + " 2>&1") -TestUtil.getServerPid(iceBoxPipe) -TestUtil.waitServiceReady(iceBoxPipe, "IceStorm") -print "ok" - -print "setting up topics...", -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, iceStormReference + \ - r' -e "create fed1 fed2 fed3; link fed1 fed2 10; link fed2 fed3 5" 2>&1') -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" +def runtest(type, **args): + icestorm = IceStormUtil.init(toplevel, testdir, type, **args) -# -# Test oneway subscribers. -# -print "testing oneway subscribers...", -sys.stdout.flush() -onewayStatus = doTest(0) -print "ok" + icestorm.start() -# -# Test batch oneway subscribers. -# -print "testing batch subscribers...", -sys.stdout.flush() -batchStatus = doTest(1) -print "ok" + print "setting up topics...", + sys.stdout.flush() + icestorm.admin("create fed1 fed2 fed3; link fed1 fed2 10; link fed2 fed3 5") + print "ok" -# -# Destroy the topics. -# -print "destroying topics...", -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, iceStormReference + r' -e "destroy fed1 fed2 fed3" 2>&1') -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" + # + # Test oneway subscribers. + # + print "testing oneway subscribers...", + sys.stdout.flush() + onewayStatus = doTest(icestorm, 0) + print "ok" -# -# Shutdown icestorm. -# -print "shutting down icestorm service...", -iceBoxAdminPipe = TestUtil.startClient(iceBoxAdmin, serviceManagerProxy + r' shutdown 2>&1') -iceBoxAdminStatus = TestUtil.closePipe(iceBoxAdminPipe) -if iceBoxAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" - -if TestUtil.serverStatus() or onewayStatus or batchStatus: - TestUtil.killServers() - sys.exit(1) + # + # Test batch oneway subscribers. + # + print "testing batch subscribers...", + sys.stdout.flush() + batchStatus = doTest(icestorm, 1) + print "ok" + + # + # Destroy the topics. + # + print "destroying topics...", + icestorm.admin("destroy fed1 fed2 fed3") + print "ok" + + # + # Shutdown icestorm. + # + icestorm.stop() + + if TestUtil.serverStatus() or onewayStatus or batchStatus: + TestUtil.killServers() + sys.exit(1) + +runtest("persistent") +runtest("transient") +runtest("replicated", replicatedPublisher = False) +runtest("replicated", replicatedPublisher = True) sys.exit(0) diff --git a/cpp/test/IceStorm/federation2/.depend b/cpp/test/IceStorm/federation2/.depend index 17947ebeaa9..8f10780e93b 100644 --- a/cpp/test/IceStorm/federation2/.depend +++ b/cpp/test/IceStorm/federation2/.depend @@ -1,5 +1,5 @@ -Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h -Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h ../../include/TestCommon.h +Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/Options.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h ../../include/TestCommon.h Event.cpp: Event.ice Event.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/federation2/.gitignore b/cpp/test/IceStorm/federation2/.gitignore index f01afc6f930..1e15a552882 100644 --- a/cpp/test/IceStorm/federation2/.gitignore +++ b/cpp/test/IceStorm/federation2/.gitignore @@ -8,3 +8,9 @@ Event.h build.txt db/* db2/* +0.db/* +0.db2/* +1.db/* +1.db2/* +2.db/* +2.db2/* diff --git a/cpp/test/IceStorm/federation2/0.db/.gitignore b/cpp/test/IceStorm/federation2/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/0.db2/.gitignore b/cpp/test/IceStorm/federation2/0.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/0.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/1.db/.gitignore b/cpp/test/IceStorm/federation2/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/1.db2/.gitignore b/cpp/test/IceStorm/federation2/1.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/1.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/2.db/.gitignore b/cpp/test/IceStorm/federation2/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/2.db2/.gitignore b/cpp/test/IceStorm/federation2/2.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/federation2/2.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/federation2/Makefile b/cpp/test/IceStorm/federation2/Makefile index 3c3daff5e3e..decde782e42 100644 --- a/cpp/test/IceStorm/federation2/Makefile +++ b/cpp/test/IceStorm/federation2/Makefile @@ -42,5 +42,8 @@ $(SUBSCRIBER): $(OBJS) $(SOBJS) clean:: -rm -f build.txt -rm -f db/* db2/* + -rm -f 0.db/* 0.db2/* + -rm -f 1.db/* 1.db2/* + -rm -f 2.db/* 2.db2/* include .depend diff --git a/cpp/test/IceStorm/federation2/Makefile.mak b/cpp/test/IceStorm/federation2/Makefile.mak index 84101991865..ddc23c4ef4d 100644 --- a/cpp/test/IceStorm/federation2/Makefile.mak +++ b/cpp/test/IceStorm/federation2/Makefile.mak @@ -60,6 +60,12 @@ clean:: del /q build.txt del /q Event.cpp Event.h for %f in (db\*) do if not %f == db\.gitignore del /q %f + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f for %f in (db2\*) do if not %f == db2\.gitignore del /q %f + for %f in (0.db2\*) do if not %f == 0.db2\.gitignore del /q %f + for %f in (1.db2\*) do if not %f == 1.db2\.gitignore del /q %f + for %f in (2.db2\*) do if not %f == 2.db2\.gitignore del /q %f !include .depend diff --git a/cpp/test/IceStorm/federation2/Publisher.cpp b/cpp/test/IceStorm/federation2/Publisher.cpp index c53ce9f1ce9..7a8fdc4b3ba 100644 --- a/cpp/test/IceStorm/federation2/Publisher.cpp +++ b/cpp/test/IceStorm/federation2/Publisher.cpp @@ -7,6 +7,8 @@ // // ********************************************************************** +#include <IceUtil/IceUtil.h> +#include <IceUtil/Options.h> #include <Ice/Ice.h> #include <IceStorm/IceStorm.h> #include <Event.h> @@ -19,8 +21,21 @@ using namespace Test; int run(int argc, char* argv[], const CommunicatorPtr& communicator) { + IceUtilInternal::Options opts; + opts.addOpt("", "count", IceUtilInternal::Options::NeedArg); + + try + { + opts.parse(argc, (const char**)argv); + } + catch(const IceUtilInternal::BadOptException& e) + { + cerr << argv[0] << ": " << e.reason << endl; + return EXIT_FAILURE; + } + PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { @@ -50,16 +65,32 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) EventPrx eventFed1 = EventPrx::uncheckedCast(fed1->getPublisher()->ice_oneway()); - for(int i = 0; i < 10; ++i) + string arg = opts.optArg("count"); + int count = 1; + if(arg.empty()) { - eventFed1->pub("fed1"); + count = atoi(arg.c_str()); } + + while(true) + { + for(int i = 0; i < 10; ++i) + { + eventFed1->pub("fed1"); + } + // + // Before we exit, we ping all proxies as twoway, to make sure + // that all oneways are delivered. + // + EventPrx::uncheckedCast(eventFed1->ice_twoway())->ice_ping(); - // - // Before we exit, we ping all proxies as twoway, to make sure - // that all oneways are delivered. - // - EventPrx::uncheckedCast(eventFed1->ice_twoway())->ice_ping(); + if(count == 0) + { + break; + } + --count; + IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1)); + } return EXIT_SUCCESS; } diff --git a/cpp/test/IceStorm/federation2/Subscriber.cpp b/cpp/test/IceStorm/federation2/Subscriber.cpp index 5846d9903c0..da68ccc5bb5 100644 --- a/cpp/test/IceStorm/federation2/Subscriber.cpp +++ b/cpp/test/IceStorm/federation2/Subscriber.cpp @@ -103,7 +103,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/federation2/run.py b/cpp/test/IceStorm/federation2/run.py index 411533e1ff0..a66c664d724 100755 --- a/cpp/test/IceStorm/federation2/run.py +++ b/cpp/test/IceStorm/federation2/run.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # ********************************************************************** # -# Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. @@ -24,45 +24,51 @@ TestUtil.processCmdLine() name = os.path.join("IceStorm", "federation2") testdir = os.path.dirname(os.path.abspath(__file__)) -exedir = testdir +import IceStormUtil -iceBox = TestUtil.getIceBox(exedir) -iceBoxAdmin = os.path.join(TestUtil.getBinDir(__file__), "iceboxadmin") -iceStormAdmin = os.path.join(TestUtil.getBinDir(__file__), "icestormadmin") +iceBox = TestUtil.getIceBox(testdir) +iceBoxAdmin = os.path.join(TestUtil.getBinDir(testdir), "iceboxadmin") +iceStormAdmin = os.path.join(TestUtil.getBinDir(testdir), "icestormadmin") -iceBoxEndpoints = ' --IceBox.ServiceManager.Endpoints="default -p 12010" --Ice.Default.Locator=' - -iceStormService = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12011"' + \ - ' --IceStorm.Publish.Endpoints="default -p 12012"' + \ - ' --IceStorm.InstanceName=TestIceStorm1 ' + \ - ' --IceStorm.Discard.Interval=2' + \ - ' --IceBox.PrintServicesReady=IceStorm' + \ - " --IceBox.InheritProperties=1" -iceStormReference = ' --IceStorm.TopicManager.Proxy="TestIceStorm1/TopicManager: default -p 12011"' - -iceBoxEndpoints2 = ' --IceBox.ServiceManager.Endpoints="default -p 12020" --Ice.Default.Locator=' +publisher = os.path.join(testdir, "publisher") +subscriber = os.path.join(testdir, "subscriber") + +def admin(ref, command): + pipe = TestUtil.startClient(iceStormAdmin, ref + r' -e "%s"' % command) + all = "" + while True: + line = pipe.readline(); + if not line: + break + all = all + line + status = TestUtil.closePipe(pipe) + if status: + TestUtil.killServers() + sys.exit(1) + return all -iceStormService2 = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12021"' + \ - ' --IceStorm.Publish.Endpoints="default -p 12022"' + \ - ' --IceStorm.InstanceName=TestIceStorm2 ' + \ - ' --IceStorm.Discard.Interval=2' + \ - ' --IceBox.PrintServicesReady=IceStorm' + \ - " --IceBox.InheritProperties=1" -iceStormReference2 = ' --IceStorm.TopicManager.Proxy="TestIceStorm2/TopicManager: default -p 12021"' +def printOutput(pipe): + try: + while True: + line = pipe.readline() + if not line: + break + print line, + sys.stdout.flush() + except IOError: + pass -adminIceStormReference = ' --IceStormAdmin.TopicManager.Proxy="TestIceStorm1/TopicManager: default -p 12011" ' + \ - '--IceStormAdmin.TopicManager.Proxy2="TestIceStorm2/TopicManager: default -p 12021"' +def runPublisher(icestorm1, opt = ""): + publisherPipe = TestUtil.startClient(publisher, opt + icestorm1.reference()) -def doTest(batch, subscriberRef = None): - global testdir - global iceStormReference - global iceStormReference2 + printOutput(publisherPipe) - publisher = os.path.join(testdir, "publisher") - subscriber = os.path.join(testdir, "subscriber") + publisherStatus = TestUtil.closePipe(publisherPipe) + if publisherStatus: + TestUtil.killServers() + sys.exit(1) +def doTest(icestorm1, icestorm2, batch, subscriberRef = None): if batch: name = "batch subscriber" batchOptions = " -b" @@ -71,10 +77,9 @@ def doTest(batch, subscriberRef = None): batchOptions = "" if subscriberRef == None: - subscriberRef = iceStormReference2 + subscriberRef = icestorm2.reference() - - subscriberPipe = TestUtil.startServer(subscriber, batchOptions + subscriberRef + " 2>&1") + subscriberPipe = TestUtil.startServer(subscriber, batchOptions + subscriberRef) TestUtil.getServerPid(subscriberPipe) TestUtil.getAdapterReady(subscriberPipe) @@ -82,56 +87,10 @@ def doTest(batch, subscriberRef = None): # Start the publisher. This should publish events which eventually # causes subscriber to terminate. # - publisherPipe = TestUtil.startClient(publisher, iceStormReference + " 2>&1") - - TestUtil.printOutputFromPipe(publisherPipe) + runPublisher(icestorm1) subscriberStatus = TestUtil.specificServerStatus(subscriberPipe, 30) - publisherStatus = TestUtil.closePipe(publisherPipe) - - return subscriberStatus or publisherStatus - -def startServers(): - global iceBox - global iceBoxEndpoints - global iceBoxEndpoints2 - global iceStormService - global iceStormService2 - global iceStormDBEnv - global iceStormDBEnv2 - iceBoxPipe = TestUtil.startServer(iceBox, iceBoxEndpoints + iceStormService + iceStormDBEnv) - TestUtil.getServerPid(iceBoxPipe) - TestUtil.waitServiceReady(iceBoxPipe, "IceStorm") - iceBoxPipe2 = TestUtil.startServer(iceBox, iceBoxEndpoints2 + iceStormService2 + iceStormDBEnv2) - TestUtil.getServerPid(iceBoxPipe2) - TestUtil.waitServiceReady(iceBoxPipe2, "IceStorm") - - return iceBoxPipe, iceBoxPipe2 - -def stopServers(p1, p2 = None): - global iceBox - global iceBoxAdmin - global iceBoxEndpoints - global iceBoxEndpoints2 - pipe = TestUtil.startClient(iceBoxAdmin, iceBoxEndpoints + r' shutdown' + " 2>&1") - status = TestUtil.closePipe(pipe) - if status or TestUtil.specificServerStatus(p1): - TestUtil.killServers() - sys.exit(1) - if p2: - pipe = TestUtil.startClient(iceBoxAdmin, iceBoxEndpoints2 + r' shutdown' + " 2>&1") - status = TestUtil.closePipe(pipe) - if status or TestUtil.specificServerStatus(p2): - TestUtil.killServers() - sys.exit(1) - -dbHome = os.path.join(testdir, "db") -TestUtil.cleanDbDir(dbHome) -iceStormDBEnv=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome - -dbHome2 = os.path.join(testdir, "db2") -TestUtil.cleanDbDir(dbHome2) -iceStormDBEnv2=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome2 + return subscriberStatus # # Test #1: @@ -139,296 +98,269 @@ iceStormDBEnv2=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome2 # create a cross service link fed1->fed2 and ensure the events are # published between them correctly. # -print "starting IceStorm services...", -sys.stdout.flush() -iceBoxPipe1, iceBoxPipe2 = startServers() -print "ok" - -print "setting up the topics...", -sys.stdout.flush() -command = r' -e "create TestIceStorm1/fed1 TestIceStorm2/fed1; link TestIceStorm1/fed1 TestIceStorm2/fed1"' -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, adminIceStormReference + command + " 2>&1") -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" +def runtest(type, **args): + icestorm1 = IceStormUtil.init(toplevel, testdir, type, additional = '--IceStorm.Discard.Interval=2', + dbDir = "db", instanceName = "TestIceStorm1", port = 12000, **args) + icestorm1.start() + icestorm2 = IceStormUtil.init(toplevel, testdir, type, additional = '--IceStorm.Discard.Interval=2', + dbDir = "db2", instanceName = "TestIceStorm2", port = 12500, **args) + icestorm2.start() -# -# Test oneway subscribers. -# -print "testing federation with oneway subscribers...", -sys.stdout.flush() -onewayStatus = doTest(0) -print "ok" - -# -# Test batch oneway subscribers. -# -print "testing federation with batch subscribers...", -sys.stdout.flush() -batchStatus = doTest(1) -print "ok" + adminIceStormReference = ' --IceStormAdmin.TopicManager.Proxy="%s" --IceStormAdmin.TopicManager.Proxy2="%s"' % ( + icestorm1.proxy(), icestorm2.proxy()) -if onewayStatus or batchStatus: - TestUtil.killServers() - sys.exit(1) + print "setting up the topics...", + sys.stdout.flush() + admin(adminIceStormReference, "create TestIceStorm1/fed1 TestIceStorm2/fed1; link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "ok" -# -# Test #2: -# -# Stop and restart the service and repeat the test. This ensures that -# the database is correct. -# -print "restarting services to ensure that the database content is preserved...", -sys.stdout.flush() - -# -# Shutdown icestorm. -# -stopServers(iceBoxPipe1, iceBoxPipe2) - -iceBoxPipe1, iceBoxPipe2 = startServers() -print "ok" - -# -# Test oneway subscribers. -# -print "retesting federation with oneway subscribers... ", -sys.stdout.flush() -onewayStatus = doTest(0) -print "ok" - -# -# Test batch oneway subscribers. -# -print "retesting federation with batch subscribers... ", -sys.stdout.flush() -batchStatus = doTest(1) -print "ok" - -if onewayStatus or batchStatus: - TestUtil.killServers() - sys.exit(1) - -# -# Shutdown icestorm. -# -stopServers(iceBoxPipe1, iceBoxPipe2) + # + # Test oneway subscribers. + # + print "testing federation with oneway subscribers...", + sys.stdout.flush() + onewayStatus = doTest(icestorm1, icestorm2, 0) + print "ok" -# -# This is used by the below test to confirm that the link warning is -# emitted. This class conforms with the TestUtil.ReaderThread protocol. -# -class ExpectorThread(threading.Thread): - def __init__(self, pipe): - self.mutex = threading.Lock() - self.pipe = pipe - # Suppress "adapter ready" messages. Under windows the eol isn't \n. - self.re = [ [ re.compile(" ready\r?\n$"), 0 ] ] - threading.Thread.__init__(self) - - def run(self): - try: - while 1: - line = self.pipe.readline() - if not line: break - found = False; - self.mutex.acquire() - for item in self.re: - if item[0].search(line): - found = True - item[1] = item[1] + 1 - break - self.mutex.release() - if not found: - print line, - except IOError: - pass - - self.status = TestUtil.closePipe(self.pipe) - - # To comply with the ReaderThread protocol. - def getPipe(self): - return self.pipe - - # To comply with the ReaderThread protocol. - def getStatus(self): - return self.status - - def matches(self, index): - self.mutex.acquire() - m = self.re[index][1] - self.mutex.release() - return m - - def expect(self, r): - self.mutex.acquire() - self.re.append([r, 0]) - l = len(self.re)-1 - self.mutex.release() - return l + # + # Test batch oneway subscribers. + # + print "testing federation with batch subscribers...", + sys.stdout.flush() + batchStatus = doTest(icestorm1, icestorm2, 1) + print "ok" -# -# Test #3: -# -# Restart the first server and publish some events. Attach a -# subscriber to the channel and make sure the events are received. -# -# Then re-start the linked downstream server and publish the events. -# Ensure they are received by the linked server. -# -print "restarting only one IceStorm server...", -sys.stdout.flush() -iceBoxPipe1 = TestUtil.startServer(iceBox, iceBoxEndpoints + iceStormService + iceStormDBEnv + " 2>&1") -TestUtil.getServerPid(iceBoxPipe1) -TestUtil.waitServiceReady(iceBoxPipe1, "IceStorm", False) -expectorThread = ExpectorThread(iceBoxPipe1) -expectorThread.start() -global serverThreads -TestUtil.serverThreads.append(expectorThread) -index = expectorThread.expect(re.compile("fed1.link.*link offline")) -expectorThread.expect(re.compile("connection refused")) -print "ok" + if onewayStatus or batchStatus: + TestUtil.killServers() + sys.exit(1) -# -# Test oneway subscribers. -# -print "testing that the federation link reports an error...", -sys.stdout.flush() -onewayStatus = doTest(0, iceStormReference) -print "ok" + # + # Test #2: + # + # Stop and restart the service and repeat the test. This ensures that + # the database is correct. + # + print "restarting services to ensure that the database content is preserved...", + sys.stdout.flush() -# -# Give some time for the error to be reported -# -time.sleep(2) + # + # Shutdown icestorm. + # + icestorm1.stop() + icestorm2.stop() -if onewayStatus or expectorThread.matches(index) != 1: - TestUtil.killServers() - sys.exit(1) + icestorm1.start(echo=False) + icestorm2.start(echo=False) + print "ok" -print "starting downstream icestorm server...", -sys.stdout.flush() -iceBoxPipe2 = TestUtil.startServer(iceBox, iceBoxEndpoints2 + iceStormService2 + iceStormDBEnv2 + " 2>&1") -TestUtil.getServerPid(iceBoxPipe2) -TestUtil.waitServiceReady(iceBoxPipe2, "IceStorm") -print "ok" + # + # Test oneway subscribers. + # + print "retesting federation with oneway subscribers... ", + sys.stdout.flush() + onewayStatus = doTest(icestorm1, icestorm2, 0) + print "ok" -# -# Need to sleep for at least the discard interval. -# -time.sleep(3) + # + # Test batch oneway subscribers. + # + print "retesting federation with batch subscribers... ", + sys.stdout.flush() + batchStatus = doTest(icestorm1, icestorm2, 1) + print "ok" -# -# Test oneway subscribers. -# -print "testing link is reestablished...", -sys.stdout.flush() -onewayStatus = doTest(0) -print "ok" + if onewayStatus or batchStatus: + TestUtil.killServers() + sys.exit(1) -if onewayStatus or expectorThread.matches(index) != 1: - TestUtil.killServers() - sys.exit(1) + # + # Shutdown icestorm. + # + icestorm1.stop() + icestorm2.stop() -# -# Test #4: -# -# Trash the TestIceStorm2 database. Then restart the servers and -# verify that the link is removed. -# -print "destroying the downstream IceStorm service database...", -sys.stdout.flush() -stopServers(iceBoxPipe1, iceBoxPipe2) - -TestUtil.cleanDbDir(dbHome2) -print "ok" - -print "restarting IceStorm servers...", -sys.stdout.flush() -iceBoxPipe1, iceBoxPipe2 = startServers() -print "ok" - -print "checking link still exists...", -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, adminIceStormReference + r' -e "links TestIceStorm1"') -line = iceStormAdminPipe.readline() -if not re.compile("fed1 with cost 0").search(line): - print line - TestUtil.killServers() - sys.exit(1) -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" - -print "publishing some events...", -sys.stdout.flush() -publisher = os.path.join(testdir, "publisher") -publisherPipe = TestUtil.startClient(publisher, iceStormReference + " 2>&1") + # + # This is used by the below test to confirm that the link warning is + # emitted. This class conforms with the TestUtil.ReaderThread protocol. + # + class ExpectorThread(threading.Thread): + def __init__(self, pipe): + self.mutex = threading.Lock() + self.pipe = pipe + # Suppress "adapter ready" messages. Under windows the eol isn't \n. + self.re = [ [ re.compile(" ready\r?\n$"), 0 ] ] + threading.Thread.__init__(self) + + def run(self): + try: + while 1: + line = self.pipe.readline() + if not line: break + found = False + self.mutex.acquire() + for item in self.re: + if item[0].search(line): + found = True + item[1] = item[1] + 1 + break + self.mutex.release() + if not found: + print line, + except IOError: + pass + + self.status = TestUtil.closePipe(self.pipe) + + # To comply with the ReaderThread protocol. + def getPipe(self): + return self.pipe + + # To comply with the ReaderThread protocol. + def getStatus(self): + return self.status + + def matches(self, index): + self.mutex.acquire() + m = self.re[index][1] + self.mutex.release() + return m + + def expect(self, r): + self.mutex.acquire() + self.re.append([r, 0]) + l = len(self.re)-1 + self.mutex.release() + return l -TestUtil.printOutputFromPipe(publisherPipe) + # + # Test #3: + # + # Restart the first server and publish some events. Attach a + # subscriber to the channel and make sure the events are received. + # + # Then re-start the linked downstream server and publish the events. + # Ensure they are received by the linked server. + # + if type != "replicated": + print "restarting only one IceStorm server...", + sys.stdout.flush() + pipe = icestorm1.start(echo=False, createThread = False) + expectorThread = ExpectorThread(pipe) + expectorThread.start() + global serverThreads + + TestUtil.serverThreads.append(expectorThread) + index = expectorThread.expect(re.compile("topic.fed1.*subscriber offline")) + expectorThread.expect(re.compile("connection refused")) + print "ok" + + # + # Test oneway subscribers. + # + print "testing that the federation link reports an error...", + sys.stdout.flush() + onewayStatus = doTest(icestorm1, icestorm2, 0, icestorm1.reference()) + + # Give some time for the output to be sent. + time.sleep(2) + + if onewayStatus or expectorThread.matches(index) != 1: + TestUtil.killServers() + sys.exit(1) + print "ok" + + print "starting downstream icestorm server...", + sys.stdout.flush() + icestorm2.start(echo=False) + print "ok" + + # + # Need to sleep for at least the discard interval. + # + time.sleep(3) + + # + # Test oneway subscribers. + # + print "testing link is reestablished...", + sys.stdout.flush() + onewayStatus = doTest(icestorm1, icestorm2, 0) + print "ok" + + if onewayStatus or expectorThread.matches(index) != 1: + TestUtil.killServers() + sys.exit(1) -publisherStatus = TestUtil.closePipe(publisherPipe) -if publisherStatus: - TestUtil.killServers() - sys.exit(1) + icestorm1.stop() + icestorm2.stop() -# The publisher must be run twice because all the events can be sent -# out in one batch to the linked subscriber which means that the link -# is not reaped until the next batch is sent. -time.sleep(1) -publisher = os.path.join(testdir, "publisher") -publisherPipe = TestUtil.startClient(publisher, iceStormReference + iceStormReference + " 2>&1") -print "ok" - -TestUtil.printOutputFromPipe(publisherPipe) - -publisherStatus = TestUtil.closePipe(publisherPipe) -if publisherStatus: - TestUtil.killServers() - sys.exit(1) - -# Verify that the link has disappeared. -print "verifying that the link has been destroyed...", -sys.stdout.flush() -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, adminIceStormReference + r' -e "links TestIceStorm1"' + " 2>&1") -line = iceStormAdminPipe.readline() -try: - if line and len(line) > 0: + # + # Test #4: + # + # Trash the TestIceStorm2 database. Then restart the servers and + # verify that the link is removed. + # + print "destroying the downstream IceStorm service database...", + sys.stdout.flush() + icestorm2.clean() + + print "ok" + + print "restarting IceStorm servers...", + sys.stdout.flush() + icestorm1.start(echo = False) + icestorm2.start(echo = False) + print "ok" + + print "checking link still exists...", + line = admin(adminIceStormReference, "links TestIceStorm1") + if not re.compile("fed1 with cost 0").search(line): + print line + TestUtil.killServers() + sys.exit(1) + print "ok" + + print "publishing some events...", + sys.stdout.flush() + # The publisher must be run twice because all the events can be + # sent out in one batch to the linked subscriber which means that + # the link is not reaped until the next batch is + # sent. Furthermore, with a replicated IceStorm both sets of + # events must be set to the same replica. + runPublisher(icestorm1, opt = " --count 2") + print "ok" + + # Give the unsubscription time to propagate. + time.sleep(1) + + # Verify that the link has disappeared. + print "verifying that the link has been destroyed...", + sys.stdout.flush() + line = admin(adminIceStormReference, "links TestIceStorm1") + if len(line) > 0: + print line TestUtil.killServers() sys.exit(1) -except IOError: - pass -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - print iceStormAdminStatus - TestUtil.killServers() - sys.exit(1) -print "ok" + print "ok" -# -# Destroy the remaining topic. -# -print "destroying topics...", -command = r' -e "destroy TestIceStorm1/fed1"' + " 2>&1" -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, adminIceStormReference + command + " 2>&1") -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" + # + # Destroy the remaining topic. + # + print "destroying topics...", + admin(adminIceStormReference, "destroy TestIceStorm1/fed1") + print "ok" -# -# Shutdown icestorm. -# -print "shutting down icestorm services...", -sys.stdout.flush() -stopServers(iceBoxPipe1, iceBoxPipe2) -if TestUtil.serverStatus(): - TestUtil.killServers() - sys.exit(1) -print "ok" + # + # Shutdown icestorm. + # + print "shutting down icestorm services...", + sys.stdout.flush() + icestorm1.stop() + icestorm2.stop() + print "ok" + +runtest("persistent") +runtest("replicated", replicatedPublisher = False) +runtest("replicated", replicatedPublisher = True) sys.exit(0) diff --git a/cpp/test/IceStorm/rep1/.depend b/cpp/test/IceStorm/rep1/.depend new file mode 100644 index 00000000000..db57f903939 --- /dev/null +++ b/cpp/test/IceStorm/rep1/.depend @@ -0,0 +1,6 @@ +Sub$(OBJEXT): Sub.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/Options.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h ../../include/TestCommon.h +Single$(OBJEXT): Single.cpp Single.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/IceUtil/Options.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h ../../include/TestCommon.h +Single.cpp: Single.ice +Single.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/rep1/.gitignore b/cpp/test/IceStorm/rep1/.gitignore new file mode 100644 index 00000000000..a6eaee14920 --- /dev/null +++ b/cpp/test/IceStorm/rep1/.gitignore @@ -0,0 +1,12 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +sub +Single.cpp +Single.h +build.txt +0.db/* +1.db/* +2.db/* diff --git a/cpp/test/IceStorm/rep1/0.db/.gitignore b/cpp/test/IceStorm/rep1/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/rep1/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/rep1/1.db/.gitignore b/cpp/test/IceStorm/rep1/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/rep1/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/rep1/2.db/.gitignore b/cpp/test/IceStorm/rep1/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/rep1/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/rep1/Makefile b/cpp/test/IceStorm/rep1/Makefile new file mode 100644 index 00000000000..e3aea6fb383 --- /dev/null +++ b/cpp/test/IceStorm/rep1/Makefile @@ -0,0 +1,56 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../../.. + +PUBLISHER = publisher +SUBSCRIBER = subscriber +SUB = sub + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) $(SUB) + +OBJS = Single.o + +POBJS = Publisher.o + +SOBJS = Subscriber.o + +SUB_OBJS = Sub.o + +SRCS = $(SUB_OBJS:.o=.cpp) \ + $(OBJS:.o=.cpp) \ + $(POBJS:.o=.cpp) \ + $(SOBJS:.o=.cpp) + +SLICE_SRCS = Single.ice + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := -I. -I../../include $(CPPFLAGS) +LIBS := -lIceStorm $(LIBS) + +$(PUBLISHER): $(OBJS) $(POBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(POBJS) $(LIBS) + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS) + +$(SUB): $(OBJS) $(SUB_OBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SUB_OBJS) $(LIBS) + +clean:: + -rm -f build.txt + -rm -f 0.db/* + -rm -f 1.db/* + -rm -f 2.db/* + +include .depend diff --git a/cpp/test/IceStorm/rep1/Makefile.mak b/cpp/test/IceStorm/rep1/Makefile.mak new file mode 100644 index 00000000000..566c9d4868e --- /dev/null +++ b/cpp/test/IceStorm/rep1/Makefile.mak @@ -0,0 +1,76 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\..\.. + +PUBLISHER = publisher.exe +SUBSCRIBER = subscriber.exe +SUB = sub.exe + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) $(SUB) + +OBJS = Single.obj + +POBJS = Publisher.obj + +SOBJS = Subscriber.obj + +SUB_OBJS = Sub.obj + +SRCS = $(OBJS:.obj=.cpp) \ + $(POBJS:.obj=.cpp) \ + $(SOBJS:.obj=.cpp) \ + $(SUB_OBJS:.obj=.cpp) + +!include $(top_srcdir)/config/Make.rules.mak + +CPPFLAGS = -I. -I../../include $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN +LIBS = icestorm$(LIBSUFFIX).lib $(LIBS) + +!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" +PPDBFLAGS = /pdb:$(PUBLISHER:.exe=.pdb) +SPDBFLAGS = /pdb:$(SUBSCRIBER:.exe=.pdb) +SUB_PDBFLAGS = /pdb:$(SUB:.exe=.pdb) +!endif + +$(PUBLISHER): $(OBJS) $(POBJS) + $(LINK) $(LD_EXEFLAGS) $(PPDBFLAGS) $(SETARGV) $(OBJS) $(POBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(OBJS) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +$(SUB): $(OBJS) $(SUB_OBJS) + $(LINK) $(LD_EXEFLAGS) $(SUB_PDBFLAGS) $(SETARGV) $(OBJS) $(SUB_OBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +!if "$(OPTIMIZE)" == "yes" + +all:: + @echo release > build.txt + +!else + +all:: + @echo debug > build.txt + +!endif + +clean:: + del /q build.txt + del /q Single.cpp Single.h + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f + +!include .depend diff --git a/cpp/test/IceStorm/rep1/Publisher.cpp b/cpp/test/IceStorm/rep1/Publisher.cpp new file mode 100644 index 00000000000..a8be7cd7874 --- /dev/null +++ b/cpp/test/IceStorm/rep1/Publisher.cpp @@ -0,0 +1,149 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Ice/Ice.h> +#include <IceUtil/Options.h> +#include <IceUtil/IceUtil.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + IceUtilInternal::Options opts; + opts.addOpt("", "cycle"); + + try + { + opts.parse(argc, (const char**)argv); + } + catch(const IceUtilInternal::BadOptException& e) + { + cerr << argv[0] << ": " << e.reason << endl; + return EXIT_FAILURE; + } + + PropertiesPtr properties = communicator->getProperties(); + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; + string managerProxy = properties->getProperty(managerProxyProperty); + if(managerProxy.empty()) + { + cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( + communicator->stringToProxy(managerProxy)); + if(!manager) + { + cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; + return EXIT_FAILURE; + } + + TopicPrx topic; + while(true) + { + try + { + topic = manager->retrieve("single"); + break; + } + // This can happen if the replica group loses the majority + // during retrieve. In this case we retry. + catch(const Ice::UnknownException&) + { + continue; + } + catch(const IceStorm::NoSuchTopic& e) + { + cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; + return EXIT_FAILURE; + } + } + assert(topic); + + // + // Get a publisher object, create a twoway proxy and then cast to + // a Single object. + // + if(opts.isSet("cycle")) + { + Ice::ObjectPrx prx = topic->getPublisher()->ice_twoway(); + vector<SinglePrx> single; + Ice::EndpointSeq endpoints = prx->ice_getEndpoints(); + for(Ice::EndpointSeq::const_iterator p = endpoints.begin(); p != endpoints.end(); ++p) + { + if((*p)->toString().substr(0, 3) != "udp") + { + Ice::EndpointSeq e; + e.push_back(*p); + single.push_back(SinglePrx::uncheckedCast(prx->ice_endpoints(e))); + } + } + if(single.size() <= 1) + { + cerr << argv[0] << ": Not enough endpoints in publisher proxy" << endl; + return EXIT_FAILURE; + } + int which = 0; + for(int i = 0; i < 1000; ++i) + { + single[which]->event(i); + which = (which + 1) % single.size(); + } + } + else + { + SinglePrx single = SinglePrx::uncheckedCast(topic->getPublisher()->ice_twoway()); + for(int i = 0; i < 1000; ++i) + { + single->event(i); + } + } + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/rep1/Single.ice b/cpp/test/IceStorm/rep1/Single.ice new file mode 100644 index 00000000000..ad3d711bb2b --- /dev/null +++ b/cpp/test/IceStorm/rep1/Single.ice @@ -0,0 +1,23 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef SINGLE_ICE +#define SINGLE_ICE + +module Test +{ + +interface Single +{ + void event(int i); +}; + +}; + +#endif diff --git a/cpp/test/IceStorm/rep1/Sub.cpp b/cpp/test/IceStorm/rep1/Sub.cpp new file mode 100644 index 00000000000..e668b0fa50e --- /dev/null +++ b/cpp/test/IceStorm/rep1/Sub.cpp @@ -0,0 +1,124 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceUtil/IceUtil.h> +#include <IceUtil/Options.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> +#include <TestCommon.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +class SingleI : public Single +{ +public: + + SingleI() {} + virtual void event(int, const Current&) {} +}; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + IceUtilInternal::Options opts; + opts.addOpt("", "id", IceUtilInternal::Options::NeedArg); + opts.addOpt("", "unsub"); + + try + { + opts.parse(argc, (const char**)argv); + } + catch(const IceUtilInternal::BadOptException& e) + { + cerr << argv[0] << ": " << e.reason << endl; + return EXIT_FAILURE; + } + + PropertiesPtr properties = communicator->getProperties(); + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; + string managerProxy = properties->getProperty(managerProxyProperty); + if(managerProxy.empty()) + { + cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + ObjectPrx base = communicator->stringToProxy(managerProxy); + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); + if(!manager) + { + cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; + return EXIT_FAILURE; + } + + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); + + TopicPrx topic; + try + { + topic = manager->retrieve("single"); + } + catch(const IceStorm::NoSuchTopic& e) + { + cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; + return EXIT_FAILURE; + } + + Ice::ObjectPrx prx = adapter->add(new SingleI(), communicator->stringToIdentity(opts.optArg("id"))); + if(opts.isSet("unsub")) + { + topic->unsubscribe(prx); + } + else + { + IceStorm::QoS qos; + qos["persistent"] = "true"; + topic->subscribeAndGetPublisher(qos, prx); + } + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/rep1/Subscriber.cpp b/cpp/test/IceStorm/rep1/Subscriber.cpp new file mode 100644 index 00000000000..f3d869c8ac4 --- /dev/null +++ b/cpp/test/IceStorm/rep1/Subscriber.cpp @@ -0,0 +1,217 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceUtil/IceUtil.h> +#include <IceUtil/Options.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> +#include <TestCommon.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +class SingleI : public Single, public IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + SingleI(const CommunicatorPtr& communicator, const string& name, int max) : + _communicator(communicator), + _name(name), + _max(max), + _count(0), + _last(0) + { + } + + virtual void + event(int i, const Current& current) + { + if(_name == "twoway ordered" && i != _last) + { + cerr << endl << "received unordered event for `" << _name << "': " << i << " " << _last; + test(false); + } + Lock sync(*this); + ++_last; + if(++_count == _max) + { + notify(); + } + } + + virtual void + waitForEvents() + { + Lock sync(*this); + IceUtil::Time timeout = IceUtil::Time::seconds(20); + while(_count < _max) + { + if(!timedWait(timeout)) + { + test(false); + } + } + } + +private: + + CommunicatorPtr _communicator; + const string _name; + const int _max; + int _count; + bool _ordered; + int _last; +}; +typedef IceUtil::Handle<SingleI> SingleIPtr; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + IceUtilInternal::Options opts; + opts.addOpt("", "ordered"); + opts.addOpt("", "twoway"); + opts.addOpt("", "events", IceUtilInternal::Options::NeedArg); + + try + { + opts.parse(argc, (const char**)argv); + } + catch(const IceUtilInternal::BadOptException& e) + { + cerr << argv[0] << ": " << e.reason << endl; + return EXIT_FAILURE; + } + + PropertiesPtr properties = communicator->getProperties(); + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; + string managerProxy = properties->getProperty(managerProxyProperty); + if(managerProxy.empty()) + { + cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + ObjectPrx base = communicator->stringToProxy(managerProxy); + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); + if(!manager) + { + cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; + return EXIT_FAILURE; + } + + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); + + TopicPrx topic; + while(true) + { + try + { + topic = manager->retrieve("single"); + break; + } + // This can happen if the replica group loses the majority + // during retrieve. In this case we retry. + catch(const Ice::UnknownException&) + { + continue; + } + catch(const IceStorm::NoSuchTopic& e) + { + cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; + return EXIT_FAILURE; + } + } + + int events = 1000; + if(opts.isSet("events")) + { + events = atoi(opts.optArg("events").c_str()); + } + // + // Create subscribers with different QoS. + // + SingleIPtr sub; + IceStorm::QoS qos; + if(opts.isSet("ordered")) + { + sub = new SingleI(communicator, "twoway ordered", events); + qos["reliability"] = "ordered"; + } + else + { + sub = new SingleI(communicator, "twoway", events); + } + + Ice::ObjectPrx prx = adapter->addWithUUID(sub); + + while(true) + { + try + { + topic->subscribeAndGetPublisher(qos, prx); + break; + } + // If we're already subscribed then we're done (previously we + // got an UnknownException which succeeded). + catch(const IceStorm::AlreadySubscribed&) + { + break; + } + // This can happen if the replica group loses the majority + // during subscription. In this case we retry. + catch(const Ice::UnknownException&) + { + } + } + + adapter->activate(); + + sub->waitForEvents(); + + topic->unsubscribe(prx); + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/rep1/run.py b/cpp/test/IceStorm/rep1/run.py new file mode 100755 index 00000000000..281c00580f0 --- /dev/null +++ b/cpp/test/IceStorm/rep1/run.py @@ -0,0 +1,398 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import os, sys, time, re + +for toplevel in [".", "..", "../..", "../../..", "../../../.."]: + toplevel = os.path.normpath(toplevel) + if os.path.exists(os.path.join(toplevel, "config", "TestUtil.py")): + break +else: + raise "can't find toplevel directory!" + +sys.path.append(os.path.join(toplevel, "config")) +import TestUtil +TestUtil.processCmdLine() + +name = os.path.join("IceStorm", "rep1") +testdir = os.path.dirname(os.path.abspath(__file__)) +publisher = os.path.join(testdir, "publisher") +subscriber = os.path.join(testdir, "subscriber") +subscriber2 = os.path.join(testdir, "sub") + +def printOutput(pipe): + try: + while True: + line = pipe.readline() + if not line: + break + print line, + sys.stdout.flush() + except IOError: + pass + +def captureOutput(pipe): + out = "" + try: + while True: + line = pipe.readline() + if not line: + break + out = out + line + except IOError: + pass + return out + +def runsub(opt, ref, arg = "", echo=False): + qos = "" + if opt == "twoway": + qos = " --twoway" + if opt == "ordered": + qos = " --ordered" + pipe = TestUtil.startServer(subscriber, ref + arg + qos) + TestUtil.getServerPid(pipe) + TestUtil.getAdapterReady(pipe, True) + return pipe + +def runpub(ref, arg = "", echo=False): + return TestUtil.startClient(publisher, ref + arg) + +def runtest(opt, ref, subopt="", pubopt=""): + subscriberPipe = runsub(opt, ref, subopt) + publisherPipe = runpub(ref, pubopt) + printOutput(publisherPipe) + publisherStatus = TestUtil.closePipe(publisherPipe) + subscriberStatus = TestUtil.specificServerStatus(subscriberPipe, 30) + if subscriberStatus or publisherStatus: + print "FAILED!" + while True: + import time + time.sleep(1000) + TestUtil.killServers() + sys.exit(1) + +def runsub2(replica = -1, cmd = "", terminateOnError=True): + pipe = TestUtil.startServer(subscriber2, icestorm.reference(replica) + ' --id foo' + cmd) + TestUtil.getServerPid(pipe) + #TestUtil.getAdapterReady(pipe, True) + out = captureOutput(pipe) + status = TestUtil.closePipe(pipe) + if terminateOnError and status: + print "status: %d out: '%s'" % (status, out) + TestUtil.killServers() + sys.exit(1) + return status, out.strip() + +def rununsub2(replica = -1, terminateOnError=True): + if replica == -1: + runsub2(replica, " --unsub", terminateOnError) + # Else we first subscribe to this replica, then unsub. We + # shouldn't get an AlreadySubscribedException. + status, out = runsub2(replica, terminateOnError=terminateOnError) + if status: + return status, out + return runsub2(replica, " --unsub", terminateOnError=terminateOnError) + +import IceStormUtil + +icestorm = IceStormUtil.init(toplevel, testdir, "replicated", replicatedPublisher=True, additional = + ' --Ice.ServerIdleTime=0 ' + + ' --IceStorm.Election.MasterTimeout=2' + + ' --IceStorm.Election.ElectionTimeout=2' + + ' --IceStorm.Election.ResponseTimeout=2') +icestorm.start() + +print "testing topic creation across replicas...", +sys.stdout.flush() +icestorm.admin("create single") + +for replica in range(0, 3): + status, out = icestorm.adminForReplica(replica, "create single", terminateOnError=False) + if out != "error: topic `single' exists": + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing topic destruction across replicas...", +sys.stdout.flush() +icestorm.admin("destroy single") + +for replica in range(0, 3): + status, out = icestorm.adminForReplica(replica, "destroy single", terminateOnError=False) + if out != "error: couldn't find topic `single'": + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing topic creation without replica...", +sys.stdout.flush() + +icestorm.stopReplica(0) +icestorm.admin("create single") + +for replica in range(1, 3): + status, out = icestorm.adminForReplica(replica, "create single", terminateOnError=False) + if out != "error: topic `single' exists": + TestUtil.killServers() + sys.exit(1) + +status, out = icestorm.adminForReplica(0, "create single", terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(0, echo=False) + +status, out = icestorm.adminForReplica(0, "create single", terminateOnError=False) +if out != "error: topic `single' exists": + TestUtil.killServers() + sys.exit(1) +print "ok" + +icestorm.admin("destroy single") + +print "testing topic creation without master...", +sys.stdout.flush() +icestorm.stopReplica(2) + +icestorm.admin("create single") + +for replica in range(0, 2): + status, out = icestorm.adminForReplica(replica, "create single", terminateOnError=False) + if out != "error: topic `single' exists": + TestUtil.killServers() + sys.exit(1) + +status, out = icestorm.adminForReplica(2, "create single", terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(2, echo=False) + +status, out = icestorm.adminForReplica(2, "create single", terminateOnError=False) +if out != "error: topic `single' exists": + TestUtil.killServers() + sys.exit(1) +print "ok" + +# All replicas are running + +print "testing topic destruction without replica...", +sys.stdout.flush() +icestorm.stopReplica(0) + +icestorm.admin("destroy single") + +for replica in range(1, 3): + status, out = icestorm.adminForReplica(replica, "destroy single", terminateOnError=False) + if out != "error: couldn't find topic `single'": + TestUtil.killServers() + sys.exit(1) + +status, out = icestorm.adminForReplica(0, "destroy single", terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(0, echo=False) + +status, out = icestorm.adminForReplica(0, "destroy single", terminateOnError=False) +if out != "error: couldn't find topic `single'": + print out + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing topic destruction without master...", +sys.stdout.flush() + +icestorm.admin("create single") +icestorm.stopReplica(2) + +icestorm.admin("destroy single") + +for replica in range(0, 2): + status, out = icestorm.adminForReplica(replica, "destroy single", terminateOnError=False) + if out != "error: couldn't find topic `single'": + TestUtil.killServers() + sys.exit(1) + +status, out = icestorm.adminForReplica(2, "destroy single", terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(2, echo=False) + +status, out = icestorm.adminForReplica(2, "destroy single", terminateOnError=False) +if out != "error: couldn't find topic `single'": + TestUtil.killServers() + sys.exit(1) +print "ok" + +# Now test subscription/unsubscription on all replicas. + +icestorm.admin("create single") + +print "testing subscription across replicas...", +sys.stdout.flush() +runsub2() + +for replica in range(0, 3): + status, out = runsub2(replica, terminateOnError=False) + if out != "IceStorm::AlreadySubscribed": + print out + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing unsubscription across replicas...", +sys.stdout.flush() +rununsub2() + +for replica in range(0, 3): + rununsub2(replica, terminateOnError=False) +print "ok" + +print "testing subscription without master...", +sys.stdout.flush() +icestorm.stopReplica(2) + +runsub2() + +for replica in range(0, 2): + status, out = runsub2(replica, terminateOnError=False) + if out != "IceStorm::AlreadySubscribed": + TestUtil.killServers() + sys.exit(1) + +status, out = runsub2(2, terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(2, echo=False) + +status, out = runsub2(2, terminateOnError=False) +if out != "IceStorm::AlreadySubscribed": + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing unsubscription without master...", +sys.stdout.flush() +icestorm.stopReplica(2) + +rununsub2() + +for replica in range(0, 2): + rununsub2(replica, terminateOnError=False) + +status, out = rununsub2(2, terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(2, echo=False) + +rununsub2(2) +print "ok" + +print "testing subscription without replica...", +sys.stdout.flush() +icestorm.stopReplica(0) + +runsub2() + +for replica in range(1, 3): + status, out = runsub2(replica, terminateOnError=False) + if out != "IceStorm::AlreadySubscribed": + TestUtil.killServers() + sys.exit(1) + +status, out = runsub2(0, terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(0, echo=False) + +status, out = runsub2(0, terminateOnError=False) +if out != "IceStorm::AlreadySubscribed": + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "testing unsubscription without replica...", +sys.stdout.flush() +icestorm.stopReplica(0) + +rununsub2() + +for replica in range(1, 3): + rununsub2(replica, terminateOnError=False) + +status, out = rununsub2(0, terminateOnError=False) +if not re.search("ConnectionRefused", out): + TestUtil.killServers() + sys.exit(1) + +icestorm.startReplica(0, echo=False) + +rununsub2(0) +print "ok" + +# All replicas are running + +print "running twoway subscription test...", +sys.stdout.flush() +runtest("twoway", icestorm.reference()) +print "ok" + +print "running ordered subscription test...", +sys.stdout.flush() +runtest("ordered", icestorm.reference()) +print "ok" + +icestorm.stopReplica(2) + +print "running twoway, ordered subscription test without master...", +sys.stdout.flush() +runtest("twoway", icestorm.reference()) +runtest("ordered", icestorm.reference()) +print "ok" + +icestorm.startReplica(2, echo = False) +icestorm.stopReplica(0) + +print "running twoway, ordered subscription test without replica...", +sys.stdout.flush() +runtest("twoway", icestorm.reference()) +runtest("ordered", icestorm.reference()) +print "ok" + +icestorm.startReplica(0, echo = False) + +print "running cycle publishing test...", +sys.stdout.flush() +runtest("twoway", icestorm.reference(), pubopt=" --cycle") +print "ok" + +print "stopping replicas...", +sys.stdout.flush() +icestorm.stop() +print "ok" + +if TestUtil.serverStatus(): + TestUtil.killServers() + sys.exit(1) + +sys.exit(0) diff --git a/cpp/test/IceStorm/repgrid/.depend b/cpp/test/IceStorm/repgrid/.depend new file mode 100644 index 00000000000..2cc42aa7fed --- /dev/null +++ b/cpp/test/IceStorm/repgrid/.depend @@ -0,0 +1,4 @@ +Single$(OBJEXT): Single.cpp Single.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Client$(OBJEXT): Client.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h ../../include/TestCommon.h +Single.cpp: Single.ice +Single.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/repgrid/.gitignore b/cpp/test/IceStorm/repgrid/.gitignore new file mode 100644 index 00000000000..34ee77907e3 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/.gitignore @@ -0,0 +1,10 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +client +Single.cpp +Single.h +build.txt +db/node/* +db/registry/* +db/replica-1/* diff --git a/cpp/test/IceStorm/repgrid/Client.cpp b/cpp/test/IceStorm/repgrid/Client.cpp new file mode 100644 index 00000000000..1eadd23ea07 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/Client.cpp @@ -0,0 +1,147 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> +#include <TestCommon.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +class SingleI : public Single, public IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + SingleI() : + _count(0) + { + } + + virtual void + event(int, const Current&) + { + Lock sync(*this); + if(++_count == 1000) + { + notify(); + } + } + + virtual void + waitForEvents() + { + Lock sync(*this); + IceUtil::Time timeout = IceUtil::Time::seconds(20); + while(_count < 1000) + { + if(!timedWait(timeout)) + { + test(false); + } + } + } + +private: + + int _count; +}; +typedef IceUtil::Handle<SingleI> SingleIPtr; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + ObjectPrx base = communicator->stringToProxy("DemoIceStorm/TopicManager"); + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); + if(!manager) + { + cerr << argv[0] << ": `DemoIceStorm/TopicManager' is not running" << endl; + return EXIT_FAILURE; + } + + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default:udp"); + + TopicPrx topic; + try + { + topic = manager->create("single"); + } + catch(const IceStorm::TopicExists& e) + { + cerr << argv[0] << ": TopicExists: " << e.name << endl; + return EXIT_FAILURE; + } + + // + // Create subscribers with different QoS. + // + SingleIPtr sub = new SingleI; + topic->subscribeAndGetPublisher(IceStorm::QoS(), adapter->addWithUUID(sub)); + + adapter->activate(); + + // Ensure that getPublisher & getNonReplicatedPublisher work + // correctly. + Ice::ObjectPrx p1 = topic->getPublisher(); + Ice::ObjectPrx p2 = topic->getNonReplicatedPublisher(); + test(p1->ice_getAdapterId() == "DemoIceStorm-PublishReplicaGroup"); + test(p2->ice_getAdapterId() == "DemoIceStorm-1.IceStormServiceName.IceStormServiceName.Publish" || + p2->ice_getAdapterId() == "DemoIceStorm-2.IceStormServiceName.IceStormServiceName.Publish" || + p2->ice_getAdapterId() == "DemoIceStorm-3.IceStormServiceName.IceStormServiceName.Publish"); + + // + // Get a publisher object, create a twoway proxy and then cast to + // a Single object. + // + SinglePrx single = SinglePrx::uncheckedCast(topic->getPublisher()->ice_twoway()); + for(int i = 0; i < 1000; ++i) + { + single->event(i); + } + + sub->waitForEvents(); + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/repgrid/Makefile b/cpp/test/IceStorm/repgrid/Makefile new file mode 100644 index 00000000000..ad363a9be57 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/Makefile @@ -0,0 +1,38 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../../.. + +CLIENT = client + +TARGETS = $(CLIENT) + +OBJS = Single.o + +COBJS = Client.o + +SRCS = $(OBJS:.o=.cpp) \ + $(COBJS:.o=.cpp) + +SLICE_SRCS = Single.ice + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := -I. -I../../include $(CPPFLAGS) +LIBS := -lIceStorm $(LIBS) + +$(CLIENT): $(OBJS) $(COBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(COBJS) $(LIBS) + +clean:: + -rm -f build.txt + -rm -rf db/node/* db/registry/* db/replica-1/* + +include .depend diff --git a/cpp/test/IceStorm/repgrid/Makefile.mak b/cpp/test/IceStorm/repgrid/Makefile.mak new file mode 100644 index 00000000000..efc9e82ea1e --- /dev/null +++ b/cpp/test/IceStorm/repgrid/Makefile.mak @@ -0,0 +1,56 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\..\.. + +CLIENT = client.exe + +TARGETS = $(CLIENT) + +OBJS = Single.obj + +COBJS = Client.obj + +SRCS = $(OBJS:.obj=.cpp) \ + $(COBJS:.obj=.cpp) + +!include $(top_srcdir)/config/Make.rules.mak + +CPPFLAGS = -I. -I../../include $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN +LIBS = icestorm$(LIBSUFFIX).lib $(LIBS) + +!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" +CPDBFLAGS = /pdb:$(CLIENT:.exe=.pdb) +!endif + +$(CLIENT): $(OBJS) $(COBJS) + $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(OBJS) $(COBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +!if "$(OPTIMIZE)" == "yes" + +all:: + @echo release > build.txt + +!else + +all:: + @echo debug > build.txt + +!endif + +clean:: + del /q build.txt + del /q Single.cpp Single.h + if exist db\node rmdir /s /q db\node + if exist db\registry rmdir /s /q db\registry + if exist db\replica-1 rmdir /s /q db\replica-1 + +!include .depend diff --git a/cpp/test/IceStorm/repgrid/Single.ice b/cpp/test/IceStorm/repgrid/Single.ice new file mode 100644 index 00000000000..ad3d711bb2b --- /dev/null +++ b/cpp/test/IceStorm/repgrid/Single.ice @@ -0,0 +1,23 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef SINGLE_ICE +#define SINGLE_ICE + +module Test +{ + +interface Single +{ + void event(int i); +}; + +}; + +#endif diff --git a/cpp/test/IceStorm/repgrid/application.xml b/cpp/test/IceStorm/repgrid/application.xml new file mode 100644 index 00000000000..a820d40f836 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/application.xml @@ -0,0 +1,54 @@ +<icegrid> + + <application name="Test"> + + <server-template id="IceStormTemplate"> + <parameter name="index"/> + <parameter name="topic-manager-endpoints" default="default"/> + <parameter name="publish-endpoints" default="default"/> + <parameter name="node-endpoints" default="default"/> + <parameter name="instance-name"/> + + <icebox id="${instance-name}-${index}" exe="${icebox.exe}" activation="on-demand"> + + <service name="IceStormServiceName" entry="IceStormService,33:createIceStorm"> + + <dbenv name="${service}"/> + + <adapter name="${service}.TopicManager" + endpoints="${topic-manager-endpoints}" + replica-group="${instance-name}-TopicManagerReplicaGroup"/> + + <adapter name="${service}.Publish" + endpoints="${publish-endpoints}" + replica-group="${instance-name}-PublishReplicaGroup"/> + + <adapter name="${service}.Node" + endpoints="${node-endpoints}"/> + + <properties> + <property name="${service}.InstanceName" value="${instance-name}"/> + <property name="${service}.NodeId" value="${index}"/> + </properties> + + </service> + + </icebox> + </server-template> + + <replica-group id="DemoIceStorm-PublishReplicaGroup"> + </replica-group> + + <replica-group id="DemoIceStorm-TopicManagerReplicaGroup"> + <object identity="DemoIceStorm/TopicManager" type="::IceStorm::TopicManager"/> + </replica-group> + + <node name="localnode"> + <server-instance template="IceStormTemplate" index="1" instance-name="DemoIceStorm"/> + <server-instance template="IceStormTemplate" index="2" instance-name="DemoIceStorm"/> + <server-instance template="IceStormTemplate" index="3" instance-name="DemoIceStorm"/> + </node> + + </application> + +</icegrid> diff --git a/cpp/test/IceStorm/repgrid/db/.gitignore b/cpp/test/IceStorm/repgrid/db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/repgrid/run.py b/cpp/test/IceStorm/repgrid/run.py new file mode 100755 index 00000000000..df218ca6791 --- /dev/null +++ b/cpp/test/IceStorm/repgrid/run.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import os, sys + +for toplevel in [".", "..", "../..", "../../..", "../../../.."]: + toplevel = os.path.normpath(toplevel) + if os.path.exists(os.path.join(toplevel, "config", "TestUtil.py")): + break +else: + raise "can't find toplevel directory!" + +sys.path.append(os.path.join(toplevel, "config")) +import TestUtil +TestUtil.processCmdLine() +import IceGridAdmin + +name = os.path.join("IceStorm", "repgrid") +testdir = os.path.dirname(os.path.abspath(__file__)) + +# +# Test client/server without on demand activation. +# +IceGridAdmin.iceGridTest(testdir, name, "application.xml", "", '"icebox.exe=' + TestUtil.getIceBox(testdir) + '"') +sys.exit(0) diff --git a/cpp/test/IceStorm/repstress/.depend b/cpp/test/IceStorm/repstress/.depend new file mode 100644 index 00000000000..860f765dadf --- /dev/null +++ b/cpp/test/IceStorm/repstress/.depend @@ -0,0 +1,10 @@ +Single$(OBJEXT): Single.cpp Single.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Controller$(OBJEXT): Controller.cpp Controller.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Control$(OBJEXT): Control.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h Controller.h +Controller$(OBJEXT): Controller.cpp Controller.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h Controller.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/Functional.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/RWRecMutex.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/UUID.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h Controller.h ../../include/TestCommon.h +Single.cpp: Single.ice +Controller.cpp: Controller.ice +Single.ice: $(SLICE2CPP) $(SLICEPARSERLIB) +Controller.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/repstress/.gitignore b/cpp/test/IceStorm/repstress/.gitignore new file mode 100644 index 00000000000..3326cff4756 --- /dev/null +++ b/cpp/test/IceStorm/repstress/.gitignore @@ -0,0 +1,14 @@ +// Generated by makegitignore.py + +// IMPORTANT: Do not edit this file -- any edits made here will be lost! +publisher +subscriber +control +Single.cpp +Controller.cpp +Single.h +Controller.h +build.txt +0.db/* +1.db/* +2.db/* diff --git a/cpp/test/IceStorm/repstress/0.db/.gitignore b/cpp/test/IceStorm/repstress/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/repstress/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/repstress/1.db/.gitignore b/cpp/test/IceStorm/repstress/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/repstress/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/repstress/2.db/.gitignore b/cpp/test/IceStorm/repstress/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/repstress/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/repstress/Control.cpp b/cpp/test/IceStorm/repstress/Control.cpp new file mode 100644 index 00000000000..8234b826f1b --- /dev/null +++ b/cpp/test/IceStorm/repstress/Control.cpp @@ -0,0 +1,63 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Ice/Ice.h> +#include <Controller.h> + +using namespace std; +using namespace Ice; +using namespace Test; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + if(argc < 2) + { + cerr << "Usage: " << argv[0] << " proxy" << endl; + return EXIT_FAILURE; + } + + ControllerPrx control = ControllerPrx::uncheckedCast(communicator->stringToProxy(argv[1])); + control->stop(); + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/repstress/Controller.ice b/cpp/test/IceStorm/repstress/Controller.ice new file mode 100644 index 00000000000..7af48747597 --- /dev/null +++ b/cpp/test/IceStorm/repstress/Controller.ice @@ -0,0 +1,24 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef CONTROLLER_ICE +#define CONTROLLER_ICE + +module Test +{ + +interface Controller +{ + void stop(); +}; + +}; + +#endif + diff --git a/cpp/test/IceStorm/repstress/Makefile b/cpp/test/IceStorm/repstress/Makefile new file mode 100644 index 00000000000..ef545c59e6e --- /dev/null +++ b/cpp/test/IceStorm/repstress/Makefile @@ -0,0 +1,59 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ../../.. + +PUBLISHER = publisher +SUBSCRIBER = subscriber +CONTROL = control + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) $(CONTROL) + +OBJS = Single.o \ + Controller.o + +POBJS = Publisher.o + +SOBJS = Subscriber.o + +COBJS = Control.o \ + Controller.o + +SRCS = $(OBJS:.o=.cpp) \ + $(COBJS:.o=.cpp) \ + $(POBJS:.o=.cpp) \ + $(SOBJS:.o=.cpp) + +SLICE_SRCS = Single.ice \ + Controller.ice + +include $(top_srcdir)/config/Make.rules + +CPPFLAGS := -I. -I../../include $(CPPFLAGS) +LIBS := -lIceStorm $(LIBS) + +$(PUBLISHER): $(OBJS) $(POBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(POBJS) $(LIBS) + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(OBJS) $(SOBJS) $(LIBS) + +$(CONTROL): $(COBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(COBJS) $(LIBS) + +clean:: + -rm -f build.txt + -rm -f 0.db/* + -rm -f 1.db/* + -rm -f 2.db/* + +include .depend diff --git a/cpp/test/IceStorm/repstress/Makefile.mak b/cpp/test/IceStorm/repstress/Makefile.mak new file mode 100644 index 00000000000..57024e2910b --- /dev/null +++ b/cpp/test/IceStorm/repstress/Makefile.mak @@ -0,0 +1,78 @@ +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +top_srcdir = ..\..\.. + +PUBLISHER = publisher.exe +SUBSCRIBER = subscriber.exe +CONTROL = control.exe + +TARGETS = $(PUBLISHER) $(SUBSCRIBER) $(CONTROL) + +OBJS = Single.obj \ + Controller.obj + +POBJS = Publisher.obj + +SOBJS = Subscriber.obj + +COBJS = Control.obj + +SRCS = $(OBJS:.obj=.cpp) \ + $(POBJS:.obj=.cpp) \ + $(SOBJS:.obj=.cpp) \ + $(COBJS:.obj=.cpp) + +!include $(top_srcdir)/config/Make.rules.mak + +CPPFLAGS = -I. -I../../include $(CPPFLAGS) -DWIN32_LEAN_AND_MEAN +LIBS = icestorm$(LIBSUFFIX).lib $(LIBS) + +!if "$(CPP_COMPILER)" != "BCC2006" && "$(OPTIMIZE)" != "yes" +PPDBFLAGS = /pdb:$(PUBLISHER:.exe=.pdb) +SPDBFLAGS = /pdb:$(SUBSCRIBER:.exe=.pdb) +CPDBFLAGS = /pdb:$(CONTROL:.exe=.pdb) +!endif + +$(PUBLISHER): $(OBJS) $(POBJS) + $(LINK) $(LD_EXEFLAGS) $(PPDBFLAGS) $(SETARGV) $(OBJS) $(POBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +$(SUBSCRIBER): $(OBJS) $(SOBJS) + $(LINK) $(LD_EXEFLAGS) $(SPDBFLAGS) $(SETARGV) $(OBJS) $(SOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +$(CONTROL): $(OBJS) $(COBJS) + $(LINK) $(LD_EXEFLAGS) $(CPDBFLAGS) $(SETARGV) $(OBJS) $(COBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS) + @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \ + $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest + +!if "$(OPTIMIZE)" == "yes" + +all:: + @echo release > build.txt + +!else + +all:: + @echo debug > build.txt + +!endif + +clean:: + del /q build.txt + del /q Single.cpp Single.h + del /q Controller.cpp Controller.h + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f + +!include .depend diff --git a/cpp/test/IceStorm/repstress/Publisher.cpp b/cpp/test/IceStorm/repstress/Publisher.cpp new file mode 100644 index 00000000000..36f33b04a18 --- /dev/null +++ b/cpp/test/IceStorm/repstress/Publisher.cpp @@ -0,0 +1,169 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <Ice/Ice.h> +#include <IceUtil/IceUtil.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> +#include <Controller.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +class ControllerI : public Controller +{ +public: + + virtual void stop(const Ice::Current& c) + { + c.adapter->getCommunicator()->shutdown(); + } +}; + +class PublishThread : public IceUtil::Thread, public IceUtil::Mutex +{ +public: + + PublishThread(const SinglePrx& single) : + _single(single), + _published(0), + _destroy(false) + { + } + + virtual void run() + { + while(true) + { + { + Lock sync(*this); + if(_destroy) + { + cout << _published << endl; + break; + } + } + try + { + _single->event(_published); + IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(1)); + } + catch(const Ice::UnknownException&) + { + // This is expected if we publish to a replica that is + // going down. + continue; + } + ++_published; + } + } + + void destroy() + { + Lock sync(*this); + _destroy = true; + } + +private: + + const SinglePrx _single; + int _published; + bool _destroy; +}; +typedef IceUtil::Handle<PublishThread> PublishThreadPtr; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + PropertiesPtr properties = communicator->getProperties(); + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; + string managerProxy = properties->getProperty(managerProxyProperty); + if(managerProxy.empty()) + { + cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast( + communicator->stringToProxy(managerProxy)); + if(!manager) + { + cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; + return EXIT_FAILURE; + } + + TopicPrx topic; + try + { + topic = manager->retrieve("single"); + } + catch(const NoSuchTopic& e) + { + cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; + return EXIT_FAILURE; + + } + assert(topic); + + // + // Get a publisher object, create a twoway proxy, disable + // connection caching and then cast to a Single object. + // + SinglePrx single = SinglePrx::uncheckedCast(topic->getPublisher()->ice_twoway()->ice_connectionCached(false)); + + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("ControllerAdapter", "default"); + Ice::ObjectPrx controller = adapter->addWithUUID(new ControllerI); + adapter->activate(); + cout << communicator->proxyToString(controller) << endl; + + PublishThreadPtr t = new PublishThread(single); + t->start(); + + communicator->waitForShutdown(); + + t->destroy(); + t->getThreadControl().join(); + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/repstress/Single.ice b/cpp/test/IceStorm/repstress/Single.ice new file mode 100644 index 00000000000..ad3d711bb2b --- /dev/null +++ b/cpp/test/IceStorm/repstress/Single.ice @@ -0,0 +1,23 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#ifndef SINGLE_ICE +#define SINGLE_ICE + +module Test +{ + +interface Single +{ + void event(int i); +}; + +}; + +#endif diff --git a/cpp/test/IceStorm/repstress/Subscriber.cpp b/cpp/test/IceStorm/repstress/Subscriber.cpp new file mode 100644 index 00000000000..1c1d8527ff9 --- /dev/null +++ b/cpp/test/IceStorm/repstress/Subscriber.cpp @@ -0,0 +1,162 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#include <IceUtil/DisableWarnings.h> +#include <IceUtil/IceUtil.h> +#include <Ice/Ice.h> +#include <IceStorm/IceStorm.h> +#include <Single.h> +#include <Controller.h> +#include <TestCommon.h> + +using namespace std; +using namespace Ice; +using namespace IceStorm; +using namespace Test; + +class ControllerI : public Controller +{ +public: + + virtual void stop(const Ice::Current& c) + { + c.adapter->getCommunicator()->shutdown(); + } +}; + +class SingleI : public Single, public IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + SingleI() : + _nevents(0) + { + } + + virtual void + event(int, const Current& current) + { + Lock sync(*this); + ++_nevents; + } + + int + nevents() const + { + Lock sync(*this); + return _nevents; + } + +private: + + int _nevents; +}; +typedef IceUtil::Handle<SingleI> SingleIPtr; + +int +run(int argc, char* argv[], const CommunicatorPtr& communicator) +{ + PropertiesPtr properties = communicator->getProperties(); + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; + string managerProxy = properties->getProperty(managerProxyProperty); + if(managerProxy.empty()) + { + cerr << argv[0] << ": property `" << managerProxyProperty << "' is not set" << endl; + return EXIT_FAILURE; + } + + ObjectPrx base = communicator->stringToProxy(managerProxy); + IceStorm::TopicManagerPrx manager = IceStorm::TopicManagerPrx::checkedCast(base); + if(!manager) + { + cerr << argv[0] << ": `" << managerProxy << "' is not running" << endl; + return EXIT_FAILURE; + } + + ObjectAdapterPtr adapter = communicator->createObjectAdapterWithEndpoints("SingleAdapter", "default"); + + TopicPrx topic; + try + { + topic = manager->retrieve("single"); + } + catch(const IceStorm::NoSuchTopic& e) + { + cerr << argv[0] << ": NoSuchTopic: " << e.name << endl; + return EXIT_FAILURE; + } + + SingleIPtr sub = new SingleI(); + Ice::ObjectPrx prx = adapter->addWithUUID(sub); + Ice::ObjectPrx control = adapter->addWithUUID(new ControllerI); + + IceStorm::QoS qos; + + while(true) + { + try + { + topic->subscribeAndGetPublisher(qos, prx); + break; + } + // If we're already subscribed then we're done (previously we + // got an UnknownException which succeeded). + catch(const IceStorm::AlreadySubscribed&) + { + break; + } + // This can happen if the replica group loses the majority + // during subscription. In this case we retry. + catch(const Ice::UnknownException&) + { + } + } + + adapter->activate(); + cout << communicator->proxyToString(control) << endl; + + communicator->waitForShutdown(); + + cout << sub->nevents() << endl; + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + CommunicatorPtr communicator; + + try + { + communicator = initialize(argc, argv); + status = run(argc, argv, communicator); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/IceStorm/repstress/run.py b/cpp/test/IceStorm/repstress/run.py new file mode 100755 index 00000000000..27fe7acc1b6 --- /dev/null +++ b/cpp/test/IceStorm/repstress/run.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import os, sys, time, re + +for toplevel in [".", "..", "../..", "../../..", "../../../.."]: + toplevel = os.path.normpath(toplevel) + if os.path.exists(os.path.join(toplevel, "config", "TestUtil.py")): + break +else: + raise "can't find toplevel directory!" + +sys.path.append(os.path.join(toplevel, "config")) +import TestUtil +TestUtil.processCmdLine() +from threading import Thread + +name = os.path.join("IceStorm", "repstress") +testdir = os.path.dirname(os.path.abspath(__file__)) +publisher = os.path.join(testdir, "publisher") +subscriber = os.path.join(testdir, "subscriber") +control = os.path.join(testdir, "control") + +def printOutput(pipe): + try: + while True: + line = pipe.readline() + if not line: + break + print line, + sys.stdout.flush() + except IOError: + pass + +def captureOutput(pipe): + out = "" + try: + while True: + line = pipe.readline() + if not line: + break + out = out + line + except IOError: + pass + return out + +def runcontrol(proxy): + pipe = TestUtil.startClient(control, ' "' + proxy + '"') + printOutput(pipe) + return TestUtil.closePipe(pipe) + +import IceStormUtil + +icestorm = IceStormUtil.init(toplevel, testdir, "replicated", replicatedPublisher=True, additional = + ' --Ice.ServerIdleTime=0 ' + + ' --IceStorm.Election.MasterTimeout=2' + + ' --IceStorm.Election.ElectionTimeout=2' + + ' --IceStorm.Election.ResponseTimeout=2') +icestorm.start() + +print "creating topic...", +sys.stdout.flush() +icestorm.admin("create single") +print "ok" + +print "running subscriber...", +sys.stdout.flush() +subscriberPipe = TestUtil.startServer(subscriber, ' --Ice.ServerIdleTime=0 ' + icestorm.reference()) +TestUtil.getServerPid(subscriberPipe) +TestUtil.getAdapterReady(subscriberPipe, False) +subControl = subscriberPipe.readline().strip() +print "ok" + +print "running publisher...", +sys.stdout.flush() +publisherPipe = TestUtil.startServer(publisher, ' --Ice.ServerIdleTime=0 ' + icestorm.reference()) +TestUtil.getServerPid(publisherPipe) +TestUtil.getAdapterReady(publisherPipe, False) +pubControl = publisherPipe.readline().strip() +print "ok" + +time.sleep(2) + +for i in range(0, 3): + # 0, 1 + print "stopping replica 2 (0, 1 running)...", + sys.stdout.flush() + icestorm.stopReplica(2) + print "ok" + time.sleep(2) + + # 1, 2 + print "starting 2, stopping 0 (1, 2 running)...", + sys.stdout.flush() + icestorm.startReplica(2, echo=False) + icestorm.stopReplica(0) + print "ok" + # This waits for the replication to startup + #icestorm.admin("list") + time.sleep(2) + + # 0, 2 + print "starting 0, stopping 1 (0, 2 running)...", + sys.stdout.flush() + icestorm.startReplica(0, echo=False) + icestorm.stopReplica(1) + print "ok" + # This waits for the replication to startup + #icestorm.admin("list") + time.sleep(2) + + print "starting 1 (all running)...", + sys.stdout.flush() + icestorm.startReplica(1, echo=False) + print "ok" + # This waits for the replication to startup + #icestorm.admin("list") + + time.sleep(2) + +print "stopping publisher...", +sys.stdout.flush() +if runcontrol(pubControl): + printOutput(publisherPipe) + TestUtil.killServers() + sys.exit(1) +publisherCount = publisherPipe.readline().strip() +if TestUtil.closePipe(publisherPipe): + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "stopping replicas...", +sys.stdout.flush() +icestorm.stop() +print "ok" + +print "stopping subscriber...", +sys.stdout.flush() +if runcontrol(subControl): + printOutput(subscriberPipe) + TestUtil.killServers() + sys.exit(1) +subscriberCount = subscriberPipe.readline().strip() +if TestUtil.closePipe(subscriberPipe): + TestUtil.killServers() + sys.exit(1) +print "ok" + +print "publisher published %s events, subscriber received %s events" % (publisherCount, subscriberCount) +#print "comparing counts...", +#sys.stdout.flush() +#if publisherCount != subscriberCount: + #TestUtil.killServers() + #sys.exit(1) +#print "ok" + +if TestUtil.serverStatus(): + TestUtil.killServers() + sys.exit(1) + +sys.exit(0) diff --git a/cpp/test/IceStorm/single/.depend b/cpp/test/IceStorm/single/.depend index e3debe71f99..f224334e1a5 100644 --- a/cpp/test/IceStorm/single/.depend +++ b/cpp/test/IceStorm/single/.depend @@ -1,5 +1,5 @@ -Single$(OBJEXT): Single.cpp Single.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h -Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h ../../include/TestCommon.h +Single$(OBJEXT): Single.cpp Single.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Single.h ../../include/TestCommon.h Single.cpp: Single.ice Single.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/single/.gitignore b/cpp/test/IceStorm/single/.gitignore index e613056da1b..9d7c0709185 100644 --- a/cpp/test/IceStorm/single/.gitignore +++ b/cpp/test/IceStorm/single/.gitignore @@ -7,3 +7,6 @@ Single.cpp Single.h build.txt db/* +0.db/* +1.db/* +2.db/* diff --git a/cpp/test/IceStorm/single/0.db/.gitignore b/cpp/test/IceStorm/single/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/single/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/single/1.db/.gitignore b/cpp/test/IceStorm/single/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/single/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/single/2.db/.gitignore b/cpp/test/IceStorm/single/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/single/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/single/Makefile b/cpp/test/IceStorm/single/Makefile index 05d3555ad1a..5c8ac4a17fb 100644 --- a/cpp/test/IceStorm/single/Makefile +++ b/cpp/test/IceStorm/single/Makefile @@ -42,5 +42,8 @@ $(SUBSCRIBER): $(OBJS) $(SOBJS) clean:: -rm -f build.txt -rm -f db/* + -rm -f 0.db/* + -rm -f 1.db/* + -rm -f 2.db/* include .depend diff --git a/cpp/test/IceStorm/single/Makefile.mak b/cpp/test/IceStorm/single/Makefile.mak index 77ef90090b1..86dad95ee73 100644 --- a/cpp/test/IceStorm/single/Makefile.mak +++ b/cpp/test/IceStorm/single/Makefile.mak @@ -61,5 +61,8 @@ clean:: del /q build.txt del /q Single.cpp Single.h for %f in (db\*) do if not %f == db\.gitignore del /q %f + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f !include .depend diff --git a/cpp/test/IceStorm/single/Publisher.cpp b/cpp/test/IceStorm/single/Publisher.cpp index d02ba062fd3..d42aed7ebcc 100644 --- a/cpp/test/IceStorm/single/Publisher.cpp +++ b/cpp/test/IceStorm/single/Publisher.cpp @@ -20,7 +20,7 @@ int run(int argc, char* argv[], const CommunicatorPtr& communicator) { PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/single/Subscriber.cpp b/cpp/test/IceStorm/single/Subscriber.cpp index 0c488976433..0fc922b887a 100644 --- a/cpp/test/IceStorm/single/Subscriber.cpp +++ b/cpp/test/IceStorm/single/Subscriber.cpp @@ -33,7 +33,6 @@ public: virtual void event(int i, const Current& current) { - if((_name == "default" || _name == "oneway" || _name == "batch" || _name == "datagram" || _name == "batch datagram") && current.requestId != 0) { @@ -108,7 +107,7 @@ int run(int argc, char* argv[], const CommunicatorPtr& communicator) { PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { @@ -176,7 +175,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) // Use a separate adapter to ensure a separate connection is used for the subscriber // (otherwise, if multiple UDP subscribers use the same connection we might get high // packet loss, see bug 1784). - ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdater1", "udp"); + ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter1", "udp"); subscribers.push_back(new SingleI(communicator, "datagram")); IceStorm::QoS qos; qos["reliability"] = "oneway"; @@ -187,7 +186,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) // Use a separate adapter to ensure a separate connection is used for the subscriber // (otherwise, if multiple UDP subscribers use the same connection we might get high // packet loss, see bug 1784). - ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdater2", "udp"); + ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter2", "udp"); subscribers.push_back(new SingleI(communicator, "batch datagram")); IceStorm::QoS qos; qos["reliability"] = "batch"; @@ -223,7 +222,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) // Use a separate adapter to ensure a separate connection is used for the subscriber // (otherwise, if multiple UDP subscribers use the same connection we might get high // packet loss, see bug 1784). - ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdater3", "udp"); + ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter3", "udp"); subscribers.push_back(new SingleI(communicator, "datagram")); topic->subscribeAndGetPublisher(IceStorm::QoS(), adpt->addWithUUID(subscribers.back())->ice_datagram()); adpt->activate(); @@ -232,7 +231,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) // Use a separate adapter to ensure a separate connection is used for the subscriber // (otherwise, if multiple UDP subscribers use the same connection we might get high // packet loss, see bug 1784). - ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdater4", "udp"); + ObjectAdapterPtr adpt = communicator->createObjectAdapterWithEndpoints("UdpAdapter4", "udp"); subscribers.push_back(new SingleI(communicator, "batch datagram")); topic->subscribeAndGetPublisher(IceStorm::QoS(), adpt->addWithUUID(subscribers.back())->ice_batchDatagram()); adpt->activate(); diff --git a/cpp/test/IceStorm/single/run.py b/cpp/test/IceStorm/single/run.py index 01f378c25cf..1370ffe3f18 100755 --- a/cpp/test/IceStorm/single/run.py +++ b/cpp/test/IceStorm/single/run.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # ********************************************************************** # -# Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. @@ -25,83 +25,59 @@ TestUtil.processCmdLine() name = os.path.join("IceStorm", "single") testdir = os.path.dirname(os.path.abspath(__file__)) - -iceBox = TestUtil.getIceBox(testdir) -iceBoxAdmin = os.path.join(TestUtil.getBinDir(__file__), "iceboxadmin") -iceStormAdmin = os.path.join(TestUtil.getBinDir(__file__), "icestormadmin") - -iceBoxEndpoints = ' --IceBox.ServiceManager.Endpoints="default -p 12010"' - -iceStormService = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12011"' + \ - ' --IceStorm.Publish.Endpoints="default:udp"' + \ - " --IceBox.PrintServicesReady=IceStorm" + \ - " --IceBox.InheritProperties=1" -iceStormReference = ' --IceStorm.TopicManager.Proxy="IceStorm/TopicManager:default -p 12011"' - -dbHome = os.path.join(testdir, "db") -TestUtil.cleanDbDir(dbHome) -iceStormDBEnv=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome - -print "starting icestorm service...", -iceBoxPipe = TestUtil.startServer(iceBox, iceBoxEndpoints + iceStormService + iceStormDBEnv) -TestUtil.getServerPid(iceBoxPipe) -TestUtil.waitServiceReady(iceBoxPipe, "IceStorm") -print "ok" - -print "creating topic...", -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, iceStormReference + r' -e "create single" 2>&1') -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" - -publisher = os.path.join(testdir, "publisher") -subscriber = os.path.join(testdir, "subscriber") - -print "starting subscriber...", -subscriberPipe = TestUtil.startServer(subscriber, iceStormReference + " 2>&1") -TestUtil.getServerPid(subscriberPipe) -TestUtil.getAdapterReady(subscriberPipe, True, 5) -print "ok" - -# -# Start the publisher. This should publish 10 events which eventually -# causes subscriber to terminate. -# -print "starting publisher...", -publisherPipe = TestUtil.startClient(publisher, iceStormReference + " 2>&1") -print "ok" - -subscriberStatus = TestUtil.specificServerStatus(subscriberPipe, 30) -publisherStatus = TestUtil.closePipe(publisherPipe) - -# -# Destroy the topic. -# -print "destroying topic...", -iceStormAdminPipe = TestUtil.startClient(iceStormAdmin, iceStormReference + r' -e "destroy single" 2>&1') -iceStormAdminStatus = TestUtil.closePipe(iceStormAdminPipe) -if iceStormAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" - -# -# Shutdown icestorm. -# -print "shutting down icestorm service...", -iceBoxAdminPipe = TestUtil.startClient(iceBoxAdmin, ' --IceBoxAdmin.ServiceManager.Proxy="IceBox/ServiceManager:default -p 12010"' + \ - r' shutdown 2>&1') -iceBoxAdminStatus = TestUtil.closePipe(iceBoxAdminPipe) -if iceBoxAdminStatus: - TestUtil.killServers() - sys.exit(1) -print "ok" - -if TestUtil.serverStatus() or subscriberStatus or publisherStatus: - TestUtil.killServers() - sys.exit(1) +import IceStormUtil + +def dotest(type): + icestorm = IceStormUtil.init(toplevel, testdir, type) + + icestorm.start() + + print "creating topic...", + sys.stdout.flush() + icestorm.admin("create single") + print "ok" + + publisher = os.path.join(testdir, "publisher") + subscriber = os.path.join(testdir, "subscriber") + + print "starting subscriber...", + sys.stdout.flush() + subscriberPipe = TestUtil.startServer(subscriber, icestorm.reference()) + TestUtil.getServerPid(subscriberPipe) + TestUtil.getAdapterReady(subscriberPipe, True, 5) + print "ok" + + # + # Start the publisher. This should publish 10 events which eventually + # causes subscriber to terminate. + # + print "starting publisher...", + sys.stdout.flush() + publisherPipe = TestUtil.startClient(publisher, icestorm.reference()) + print "ok" + + subscriberStatus = TestUtil.specificServerStatus(subscriberPipe, 30) + publisherStatus = TestUtil.closePipe(publisherPipe) + + # + # Destroy the topic. + # + print "destroy topic...", + sys.stdout.flush() + icestorm.admin("destroy single") + print "ok" + + # + # Shutdown icestorm. + # + icestorm.stop() + + if TestUtil.serverStatus() or subscriberStatus or publisherStatus: + TestUtil.killServers() + sys.exit(1) + +dotest("persistent") +dotest("transient") +dotest("replicated") sys.exit(0) diff --git a/cpp/test/IceStorm/stress/.depend b/cpp/test/IceStorm/stress/.depend index 6c657c8fa0b..ab6268fb315 100644 --- a/cpp/test/IceStorm/stress/.depend +++ b/cpp/test/IceStorm/stress/.depend @@ -1,5 +1,5 @@ -Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h -Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h -Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Random.h Event.h ../../include/TestCommon.h +Event$(OBJEXT): Event.cpp Event.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/StringConverter.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/ObjectFactory.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/ScopedArray.h +Publisher$(OBJEXT): Publisher.cpp $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h Event.h +Subscriber$(OBJEXT): Subscriber.cpp $(includedir)/IceUtil/DisableWarnings.h $(includedir)/Ice/Ice.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/LocalObjectF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Exception.h $(includedir)/IceUtil/Time.h $(includedir)/Ice/Handle.h $(includedir)/IceUtil/Handle.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/Ice/ProxyF.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/Exception.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/Logger.h $(includedir)/Ice/LoggerUtil.h $(includedir)/Ice/Stats.h $(includedir)/Ice/Communicator.h $(includedir)/Ice/RouterF.h $(includedir)/Ice/LocatorF.h $(includedir)/Ice/PluginF.h $(includedir)/Ice/ImplicitContextF.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/FactoryTableDef.h $(includedir)/IceUtil/StaticMutex.h $(includedir)/Ice/UserExceptionFactoryF.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/IconvStringConverter.h $(includedir)/IceStorm/IceStorm.h $(includedir)/Ice/SliceChecksumDict.h $(includedir)/IceUtil/Options.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/Random.h Event.h ../../include/TestCommon.h Event.cpp: Event.ice Event.ice: $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/IceStorm/stress/.gitignore b/cpp/test/IceStorm/stress/.gitignore index f01afc6f930..1e15a552882 100644 --- a/cpp/test/IceStorm/stress/.gitignore +++ b/cpp/test/IceStorm/stress/.gitignore @@ -8,3 +8,9 @@ Event.h build.txt db/* db2/* +0.db/* +0.db2/* +1.db/* +1.db2/* +2.db/* +2.db2/* diff --git a/cpp/test/IceStorm/stress/0.db/.gitignore b/cpp/test/IceStorm/stress/0.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/0.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/0.db2/.gitignore b/cpp/test/IceStorm/stress/0.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/0.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/1.db/.gitignore b/cpp/test/IceStorm/stress/1.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/1.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/1.db2/.gitignore b/cpp/test/IceStorm/stress/1.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/1.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/2.db/.gitignore b/cpp/test/IceStorm/stress/2.db/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/2.db/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/2.db2/.gitignore b/cpp/test/IceStorm/stress/2.db2/.gitignore new file mode 100644 index 00000000000..72e8ffc0db8 --- /dev/null +++ b/cpp/test/IceStorm/stress/2.db2/.gitignore @@ -0,0 +1 @@ +* diff --git a/cpp/test/IceStorm/stress/Makefile b/cpp/test/IceStorm/stress/Makefile index 3c3daff5e3e..decde782e42 100644 --- a/cpp/test/IceStorm/stress/Makefile +++ b/cpp/test/IceStorm/stress/Makefile @@ -42,5 +42,8 @@ $(SUBSCRIBER): $(OBJS) $(SOBJS) clean:: -rm -f build.txt -rm -f db/* db2/* + -rm -f 0.db/* 0.db2/* + -rm -f 1.db/* 1.db2/* + -rm -f 2.db/* 2.db2/* include .depend diff --git a/cpp/test/IceStorm/stress/Makefile.mak b/cpp/test/IceStorm/stress/Makefile.mak index 84101991865..ddc23c4ef4d 100644 --- a/cpp/test/IceStorm/stress/Makefile.mak +++ b/cpp/test/IceStorm/stress/Makefile.mak @@ -60,6 +60,12 @@ clean:: del /q build.txt del /q Event.cpp Event.h for %f in (db\*) do if not %f == db\.gitignore del /q %f + for %f in (0.db\*) do if not %f == 0.db\.gitignore del /q %f + for %f in (1.db\*) do if not %f == 1.db\.gitignore del /q %f + for %f in (2.db\*) do if not %f == 2.db\.gitignore del /q %f for %f in (db2\*) do if not %f == db2\.gitignore del /q %f + for %f in (0.db2\*) do if not %f == 0.db2\.gitignore del /q %f + for %f in (1.db2\*) do if not %f == 1.db2\.gitignore del /q %f + for %f in (2.db2\*) do if not %f == 2.db2\.gitignore del /q %f !include .depend diff --git a/cpp/test/IceStorm/stress/Publisher.cpp b/cpp/test/IceStorm/stress/Publisher.cpp index 716213474cf..371016b4465 100644 --- a/cpp/test/IceStorm/stress/Publisher.cpp +++ b/cpp/test/IceStorm/stress/Publisher.cpp @@ -49,7 +49,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) bool oneway = opts.isSet("oneway"); PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/stress/Subscriber.cpp b/cpp/test/IceStorm/stress/Subscriber.cpp index 89e6febabcf..bab1e53b079 100644 --- a/cpp/test/IceStorm/stress/Subscriber.cpp +++ b/cpp/test/IceStorm/stress/Subscriber.cpp @@ -238,7 +238,7 @@ run(int argc, char* argv[], const CommunicatorPtr& communicator) } PropertiesPtr properties = communicator->getProperties(); - const char* managerProxyProperty = "IceStorm.TopicManager.Proxy"; + const char* managerProxyProperty = "IceStormAdmin.TopicManager.Default"; string managerProxy = properties->getProperty(managerProxyProperty); if(managerProxy.empty()) { diff --git a/cpp/test/IceStorm/stress/run.py b/cpp/test/IceStorm/stress/run.py index dacf98b7a2b..4e4a405e053 100755 --- a/cpp/test/IceStorm/stress/run.py +++ b/cpp/test/IceStorm/stress/run.py @@ -1,7 +1,7 @@ #!/usr/bin/env python # ********************************************************************** # -# Copyright (c) 2003-2008 ZeroC, Inc. All rights reserved. +# Copyright (c) 2003-2007 ZeroC, Inc. All rights reserved. # # This copy of Ice is licensed to you under the terms described in the # ICE_LICENSE file included in this distribution. @@ -23,41 +23,15 @@ TestUtil.processCmdLine() name = os.path.join("IceStorm", "stress") testdir = os.path.dirname(os.path.abspath(__file__)) -exedir = testdir - -iceBox = TestUtil.getIceBox(exedir) -iceBoxAdmin = os.path.join(TestUtil.getBinDir(__file__), "iceboxadmin") -iceStormAdmin = os.path.join(TestUtil.getBinDir(__file__), "icestormadmin") - -iceBoxEndpoints = ' --IceBox.ServiceManager.Endpoints="default -p 12010" --Ice.Default.Locator=' - -iceStormService = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12011"' + \ - ' --IceStorm.Publish.Endpoints="default -p 12012"' + \ - ' --IceStorm.InstanceName=TestIceStorm1 ' + \ - ' --IceStorm.Discard.Interval=2' + \ - ' --IceBox.PrintServicesReady=IceStorm' + \ - " --IceBox.InheritProperties=1" -iceStormReference = ' --IceStorm.TopicManager.Proxy="TestIceStorm1/TopicManager: default -p 12011"' - -iceBoxEndpoints2 = ' --IceBox.ServiceManager.Endpoints="default -p 12020" --Ice.Default.Locator=' - -iceStormService2 = " --IceBox.Service.IceStorm=IceStormService," + TestUtil.getIceSoVersion() + ":createIceStorm" + \ - ' --IceStorm.TopicManager.Endpoints="default -p 12021"' + \ - ' --IceStorm.Publish.Endpoints="default -p 12022"' + \ - ' --IceStorm.InstanceName=TestIceStorm2 ' + \ - ' --IceStorm.Discard.Interval=2' + \ - ' --IceBox.PrintServicesReady=IceStorm' + \ - " --IceBox.InheritProperties=1" -iceStormReference2 = ' --IceStorm.TopicManager.Proxy="TestIceStorm2/TopicManager: default -p 12021"' - -adminIceStormReference = ' --IceStormAdmin.TopicManager.Proxy="TestIceStorm1/TopicManager: default -p 12011" ' + \ - '--IceStormAdmin.TopicManager.Proxy2="TestIceStorm2/TopicManager: default -p 12021"' - -def doTest(subOpts, pubOpts): + +iceBox = TestUtil.getIceBox(testdir) +iceBoxAdmin = os.path.join(TestUtil.getBinDir(testdir), "iceboxadmin") +iceStormAdmin = os.path.join(TestUtil.getBinDir(testdir), "icestormadmin") + +import IceStormUtil + +def doTest(server1, server2, subOpts, pubOpts): global testdir - global iceStormReference - global iceStormReference2 publisher = os.path.join(testdir, "publisher") subscriber = os.path.join(testdir, "subscriber") @@ -67,12 +41,12 @@ def doTest(subOpts, pubOpts): subOpts = [ subOpts ] for opts in subOpts: # We don't want the subscribers to time out. - pipe = TestUtil.startServer(subscriber, r' --Ice.ServerIdleTime=0 ' + opts + " 2>&1") + pipe = TestUtil.startServer(subscriber, r' --Ice.ServerIdleTime=0 ' + opts) TestUtil.getServerPid(pipe) TestUtil.getAdapterReady(pipe) subscriberPipes.append(pipe) - publisherPipe = TestUtil.startClient(publisher, iceStormReference + ' ' + pubOpts + " 2>&1") + publisherPipe = TestUtil.startClient(publisher, server1.reference() + r' ' + pubOpts) TestUtil.printOutputFromPipe(publisherPipe) @@ -93,197 +67,176 @@ def doTest(subOpts, pubOpts): return 0 -def startServers(additionalArgs=""): - global iceBox - global iceBoxEndpoints - global iceBoxEndpoints2 - global iceStormService - global iceStormService2 - global iceStormDBEnv - global iceStormDBEnv2 +def runAdmin(cmd, desc = None): + global iceStormAdmin + global iceStormAdminReference + if desc: + print desc, + sys.stdout.flush() + pipe = TestUtil.startClient(iceStormAdmin, adminIceStormReference + r' -e "' + cmd + '"') + status = TestUtil.closePipe(pipe) + if status: + TestUtil.killServers() + sys.exit(1) + if desc: + print "ok" + +def runtest(type): + # Clear the idle timeout otherwise the IceBox ThreadPool will timeout. + server1 = IceStormUtil.init(toplevel, testdir, type, additional = '--Ice.ServerIdleTime=0', + dbDir = "db", instanceName = "TestIceStorm1", port = 12000) + server2 = IceStormUtil.init(toplevel, testdir, type, additional = '--Ice.ServerIdleTime=0', + dbDir = "db2", instanceName = "TestIceStorm2", port = 12500) + global adminIceStormReference + adminIceStormReference = ' --IceStormAdmin.TopicManager.Proxy="%s" --IceStormAdmin.TopicManager.Proxy2="%s"' % ( + server1.proxy(), server2.proxy()) + print "starting icestorm services...", sys.stdout.flush() - # Clear the idle timeout otherwise the IceBox ThreadPool will timeout.wA - command = iceBoxEndpoints + iceStormService + iceStormDBEnv + ' --Ice.ServerIdleTime=0' + additionalArgs - iceBoxPipe = TestUtil.startServer(iceBox, command + " 2>&1") - TestUtil.getServerPid(iceBoxPipe) - TestUtil.waitServiceReady(iceBoxPipe, "IceStorm") - command = iceBoxEndpoints2 + iceStormService2 + iceStormDBEnv2 + ' --Ice.ServerIdleTime=0' + additionalArgs - iceBoxPipe2 = TestUtil.startServer(iceBox, command + " 2>&1") - TestUtil.getServerPid(iceBoxPipe2) - TestUtil.waitServiceReady(iceBoxPipe2, "IceStorm") + server1.start(echo=False) + server2.start(echo=False) + print "ok" + + runAdmin("create TestIceStorm1/fed1 TestIceStorm2/fed1", "setting up the topics...") + + print "Sending 5000 ordered events... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 5000 --qos "reliability,ordered" ' + server1.reference(), '--events 5000') + if status: + print "failed!" + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 5000 ordered events across a link... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 5000 --qos "reliability,ordered" ' + server2.reference(), '--events 5000') + if status: + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered events... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 20000 ' + server1.reference(), '--events 20000 --oneway') + if status: + print "failed!" + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered events across a link... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 20000 ' + server2.reference(), '--events 20000 --oneway') + if status: + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered batch events... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 20000 --qos "reliability,batch" ' + server1.reference(), '--events 20000 --oneway') + if status: + print "failed!" + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered batch events across a link... ", + sys.stdout.flush() + status = doTest(server1, server2, '--events 20000 --qos "reliability,batch" ' + server2.reference(), '--events 20000 --oneway') + if status: + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered events with slow subscriber... ", + status = doTest(server1, server2, ['--events 2 --slow ' + server1.reference(), '--events 20000 ' + server1.reference()], '--events 20000 --oneway') + if status: + print "failed!" + TestUtil.killServers() + sys.exit(1) + print "ok" + + runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered events with slow subscriber & link... ", + status = doTest(server1, server2, ['--events 2 --slow' + server1.reference(), '--events 20000' + server1.reference(), '--events 2 --slow' + server2.reference(), '--events 20000' + server2.reference()], '--events 20000 --oneway') + if status: + print "failed!" + TestUtil.killServers() + sys.exit(1) print "ok" - return iceBoxPipe, iceBoxPipe2 -def stopServers(p1, p2 = None): - global iceBox - global iceBoxAdmin - global iceBoxEndpoints - global iceBoxEndpoints2 print "shutting down icestorm services...", sys.stdout.flush() - command = iceBoxEndpoints + r' shutdown' - pipe = TestUtil.startClient(iceBoxAdmin, command + " 2>&1") - status = TestUtil.closePipe(pipe) - if status or TestUtil.specificServerStatus(p1): + server1.stop() + server2.stop() + print "ok" + + print "starting icestorm services...", + sys.stdout.flush() + # + # The erratic tests emit lots of connection warnings so they are + # disabled here. The IceStorm servers are stopped and restarted so the + # settings will take effect. + # + server1.start(echo=False, additionalOptions = ' --Ice.Warn.Connections=0') + server2.start(echo=False, additionalOptions = ' --Ice.Warn.Connections=0') + print "ok" + + runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") + + print "Sending 20000 unordered events with erratic subscriber... ", + sys.stdout.flush() + status = doTest(server1, server2, \ + [ '--erratic 5 --qos "reliability,ordered" --events 20000' + server1.reference(), \ + '--erratic 5 --events 20000' + server1.reference(), \ + '--events 20000' + server1.reference()], \ + '--events 20000 --oneway') + if status: + print "failed!" TestUtil.killServers() sys.exit(1) - if p2: - command = iceBoxEndpoints2 + r' shutdown' - pipe = TestUtil.startClient(iceBoxAdmin, command + " 2>&1") - status = TestUtil.closePipe(pipe) - if status or TestUtil.specificServerStatus(p2): - TestUtil.killServers() - sys.exit(1) print "ok" -def runAdmin(cmd, desc = None): - global iceStormAdmin - global iceStormAdminReference - if desc: - print desc, - sys.stdout.flush() - command = adminIceStormReference + r' -e "' + cmd + '"' - pipe = TestUtil.startClient(iceStormAdmin, command + " 2>&1") - status = TestUtil.closePipe(pipe) + runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") + print "Sending 20000 unordered events with erratic subscriber across a link... ", + sys.stdout.flush() + status = doTest(server1, server2, \ + [ '--events 20000' + server1.reference(), \ + '--erratic 5 --qos "reliability,ordered" --events 20000 ' + server1.reference(), \ + '--erratic 5 --events 20000 ' + server1.reference(), \ + '--events 20000' + server2.reference(), \ + '--erratic 5 --qos "reliability,ordered" --events 20000 ' + server2.reference(), \ + '--erratic 5 --events 20000 ' + server2.reference()], \ + '--events 20000 --oneway ') if status: + print "failed!" TestUtil.killServers() sys.exit(1) - if desc: - print "ok" + print "ok" -dbHome = os.path.join(testdir, "db") -TestUtil.cleanDbDir(dbHome) -iceStormDBEnv=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome - -dbHome2 = os.path.join(testdir, "db2") -TestUtil.cleanDbDir(dbHome2) -iceStormDBEnv2=" --Freeze.DbEnv.IceStorm.DbHome=" + dbHome2 - -server1, server2 = startServers() - -runAdmin("create TestIceStorm1/fed1 TestIceStorm2/fed1", "setting up the topics...") - -print "Sending 5000 ordered events... ", -sys.stdout.flush() -status = doTest('--events 5000 --qos "reliability,ordered" ' + iceStormReference, '--events 5000') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 5000 ordered events across a link... ", -sys.stdout.flush() -status = doTest('--events 5000 --qos "reliability,ordered" ' + iceStormReference2, '--events 5000') -if status: - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events... ", -sys.stdout.flush() -status = doTest('--events 20000 ' + iceStormReference, '--events 20000 --oneway') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events across a link... ", -sys.stdout.flush() -status = doTest('--events 20000 ' + iceStormReference2, '--events 20000 --oneway') -if status: - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered batch events... ", -sys.stdout.flush() -status = doTest('--events 20000 --qos "reliability,batch" ' + iceStormReference, '--events 20000 --oneway') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered batch events across a link... ", -sys.stdout.flush() -status = doTest('--events 20000 --qos "reliability,batch" ' + iceStormReference2, '--events 20000 --oneway') -if status: - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events with slow subscriber... ", -status = doTest(['--events 2 --slow ' + iceStormReference, '--events 20000 ' + iceStormReference], '--events 20000 --oneway') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events with slow subscriber & link... ", -status = doTest(['--events 2 --slow' + iceStormReference, '--events 20000' + iceStormReference, '--events 2 --slow' + iceStormReference2, '--events 20000' + iceStormReference2], '--events 20000 --oneway') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" + # + # Shutdown icestorm. + # + print "shutting down icestorm services...", + sys.stdout.flush() + server1.stop() + server2.stop() + print "ok" -# -# The erratic tests emit lots of connection warnings so they are -# disabled here. The IceStorm servers are stopped and restarted so the -# settings will take effect. -# -stopServers(server1, server2) -server1, server2 = startServers(" --Ice.Warn.Connections=0") - -runAdmin("unlink TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events with erratic subscriber... ", -sys.stdout.flush() -status = doTest(\ - [ '--erratic 5 --qos "reliability,ordered" --events 20000' + iceStormReference, \ - '--erratic 5 --events 20000' + iceStormReference, \ - '--events 20000' + iceStormReference], \ - '--events 20000 --oneway') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" - -runAdmin("link TestIceStorm1/fed1 TestIceStorm2/fed1") -print "Sending 20000 unordered events with erratic subscriber across a link... ", -sys.stdout.flush() -status = doTest( \ - [ '--events 20000' + iceStormReference, \ - '--erratic 5 --qos "reliability,ordered" --events 20000 ' + iceStormReference, \ - '--erratic 5 --events 20000 ' + iceStormReference, \ - '--events 20000' + iceStormReference2, \ - '--erratic 5 --qos "reliability,ordered" --events 20000 ' + iceStormReference2, \ - '--erratic 5 --events 20000 ' + iceStormReference2], \ - '--events 20000 --oneway ') -if status: - print "failed!" - TestUtil.killServers() - sys.exit(1) -print "ok" + if TestUtil.serverStatus(): + TestUtil.killServers() + sys.exit(1) -# -# Shutdown icestorm. -# -stopServers(server1, server2) -if TestUtil.serverStatus(): - TestUtil.killServers() - sys.exit(1) +runtest("persistent") +runtest("replicated") sys.exit(0) |