diff options
Diffstat (limited to 'cpp')
-rw-r--r-- | cpp/include/Ice/Incoming.h | 2 | ||||
-rw-r--r-- | cpp/include/Ice/ObserverHelper.h | 22 | ||||
-rw-r--r-- | cpp/include/Ice/OutgoingAsync.h | 5 | ||||
-rw-r--r-- | cpp/src/Ice/Incoming.cpp | 19 | ||||
-rw-r--r-- | cpp/src/Ice/InstrumentationI.cpp | 16 | ||||
-rw-r--r-- | cpp/src/Ice/InstrumentationI.h | 13 | ||||
-rw-r--r-- | cpp/src/Ice/Outgoing.cpp | 12 | ||||
-rw-r--r-- | cpp/src/Ice/OutgoingAsync.cpp | 55 | ||||
-rw-r--r-- | cpp/src/Ice/Proxy.cpp | 161 | ||||
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 12 | ||||
-rw-r--r-- | cpp/src/slice2cs/Gen.cpp | 15 | ||||
-rw-r--r-- | cpp/src/slice2java/Gen.cpp | 17 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/.depend | 4 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/.depend.mak | 4 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/.gitignore | 3 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/AllTests.cpp | 167 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/Makefile | 17 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/Makefile.mak | 15 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/ServerAMD.cpp | 78 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/TestAMD.ice | 50 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/TestAMDI.cpp | 84 | ||||
-rw-r--r-- | cpp/test/Ice/metrics/TestAMDI.h | 52 | ||||
-rwxr-xr-x | cpp/test/Ice/metrics/run.py | 3 |
23 files changed, 695 insertions, 131 deletions
diff --git a/cpp/include/Ice/Incoming.h b/cpp/include/Ice/Incoming.h index 207f381e7b6..794cc2dc2cb 100644 --- a/cpp/include/Ice/Incoming.h +++ b/cpp/include/Ice/Incoming.h @@ -55,7 +55,7 @@ protected: Ice::ObjectPtr _servant; Ice::ServantLocatorPtr _locator; Ice::LocalObjectPtr _cookie; - ObserverHelperT<Ice::Instrumentation::Observer> _observer; + DispatchObserver _observer; bool _response; Ice::Byte _compress; diff --git a/cpp/include/Ice/ObserverHelper.h b/cpp/include/Ice/ObserverHelper.h index e62cfc0c4b8..9cfe030590a 100644 --- a/cpp/include/Ice/ObserverHelper.h +++ b/cpp/include/Ice/ObserverHelper.h @@ -96,6 +96,19 @@ protected: TPtr _observer; }; +class ICE_API DispatchObserver : public ObserverHelperT<Ice::Instrumentation::DispatchObserver> +{ +public: + + void userException() + { + if(_observer) + { + _observer->userException(); + } + } +}; + class ICE_API InvocationObserver : public ObserverHelperT<Ice::Instrumentation::InvocationObserver> { public: @@ -127,6 +140,15 @@ public: return 0; } + void + userException() + { + if(_observer) + { + _observer->userException(); + } + } + private: using ObserverHelperT<Ice::Instrumentation::InvocationObserver>::attach; diff --git a/cpp/include/Ice/OutgoingAsync.h b/cpp/include/Ice/OutgoingAsync.h index 580eef3e8c4..2bbc4b5a2d4 100644 --- a/cpp/include/Ice/OutgoingAsync.h +++ b/cpp/include/Ice/OutgoingAsync.h @@ -126,6 +126,11 @@ public: _remoteObserver.attach(_observer.getRemoteObserver(connection, endpt)); } + IceInternal::InvocationObserver& __getObserver() + { + return _observer; + } + protected: static void __check(const AsyncResultPtr&, const ::std::string&); diff --git a/cpp/src/Ice/Incoming.cpp b/cpp/src/Ice/Incoming.cpp index f31d3b19e88..9c0fc36f509 100644 --- a/cpp/src/Ice/Incoming.cpp +++ b/cpp/src/Ice/Incoming.cpp @@ -107,6 +107,11 @@ IncomingBase::__startWriteParams(FormatType format) void IncomingBase::__endWriteParams(bool ok) { + if(!ok) + { + _observer.userException(); + } + if(_response) { *(_os.b.begin() + headerSize + 4) = ok ? replyOK : replyUserException; // Reply status position. @@ -129,6 +134,11 @@ IncomingBase::__writeEmptyParams() void IncomingBase::__writeParamEncaps(const Byte* v, Ice::Int sz, bool ok) { + if(!ok) + { + _observer.userException(); + } + if(_response) { assert(_os.b.size() == headerSize + 4); // Reply status position. @@ -148,11 +158,6 @@ IncomingBase::__writeParamEncaps(const Byte* v, Ice::Int sz, bool ok) void IncomingBase::__writeUserException(const Ice::UserException& ex, Ice::FormatType format) { - if(_observer) - { - _observer.failed(ex.ice_name()); - } - ::IceInternal::BasicStream* __os = __startWriteParams(format); __os->write(ex); __endWriteParams(false); @@ -215,7 +220,7 @@ IceInternal::IncomingBase::__servantLocatorFinished() if(_observer) { - _observer.failed(ex.ice_name()); + _observer.userException(); } // @@ -613,7 +618,7 @@ IceInternal::Incoming::invoke(const ServantManagerPtr& servantManager, BasicStre if(_observer) { - _observer.failed(ex.ice_name()); + _observer.userException(); } if(_response) diff --git a/cpp/src/Ice/InstrumentationI.cpp b/cpp/src/Ice/InstrumentationI.cpp index e07d378d7cc..3776c447d28 100644 --- a/cpp/src/Ice/InstrumentationI.cpp +++ b/cpp/src/Ice/InstrumentationI.cpp @@ -222,7 +222,7 @@ private: ConnectionHelper::Attributes ConnectionHelper::attributes; -class DispatchHelper : public MetricsHelperT<Metrics> +class DispatchHelper : public MetricsHelperT<DispatchMetrics> { public: @@ -721,11 +721,23 @@ ThreadObserverI::stateChanged(ThreadState oldState, ThreadState newState) } void +DispatchObserverI::userException() +{ + forEach(inc(&DispatchMetrics::userException)); +} + +void InvocationObserverI::retried() { forEach(inc(&InvocationMetrics::retry)); } +void +InvocationObserverI::userException() +{ + forEach(inc(&InvocationMetrics::userException)); +} + ObserverPtr InvocationObserverI::getRemoteObserver(const ConnectionInfoPtr& connection, const EndpointPtr& endpoint) { @@ -854,7 +866,7 @@ CommunicatorObserverI::getInvocationObserver(const ObjectPrx& proxy, const strin return 0; } -ObserverPtr +DispatchObserverPtr CommunicatorObserverI::getDispatchObserver(const Current& current) { if(_dispatch.isEnabled()) diff --git a/cpp/src/Ice/InstrumentationI.h b/cpp/src/Ice/InstrumentationI.h index 9f363016a00..87d238cfc4b 100644 --- a/cpp/src/Ice/InstrumentationI.h +++ b/cpp/src/Ice/InstrumentationI.h @@ -30,12 +30,21 @@ public: virtual void stateChanged(Ice::Instrumentation::ThreadState, Ice::Instrumentation::ThreadState); }; +class DispatchObserverI : public Ice::Instrumentation::DispatchObserver, public ObserverT<DispatchMetrics> +{ +public: + + virtual void userException(); +}; + class InvocationObserverI : public Ice::Instrumentation::InvocationObserver, public ObserverT<InvocationMetrics> { public: virtual void retried(); + virtual void userException(); + virtual Ice::Instrumentation::ObserverPtr getRemoteObserver(const Ice::ConnectionInfoPtr&, const Ice::EndpointPtr&); }; @@ -66,7 +75,7 @@ public: const std::string&, const Ice::Context&); - virtual Ice::Instrumentation::ObserverPtr getDispatchObserver(const Ice::Current&); + virtual Ice::Instrumentation::DispatchObserverPtr getDispatchObserver(const Ice::Current&); const IceInternal::MetricsAdminIPtr& getMetricsAdmin() const; @@ -75,7 +84,7 @@ private: const IceInternal::MetricsAdminIPtr _metrics; ObserverFactoryT<ConnectionObserverI> _connections; - ObserverFactoryT<ObserverI> _dispatch; + ObserverFactoryT<DispatchObserverI> _dispatch; ObserverFactoryT<InvocationObserverI> _invocations; ObserverFactoryT<ThreadObserverI> _threads; ObserverFactoryT<ObserverI> _connects; diff --git a/cpp/src/Ice/Outgoing.cpp b/cpp/src/Ice/Outgoing.cpp index 53e50da60d1..e02e28063a4 100644 --- a/cpp/src/Ice/Outgoing.cpp +++ b/cpp/src/Ice/Outgoing.cpp @@ -387,6 +387,7 @@ IceInternal::Outgoing::finished(BasicStream& is) case replyUserException: { + _observer.userException(); _state = StateUserException; // The state must be set last, in case there is an exception. break; } @@ -523,6 +524,7 @@ IceInternal::Outgoing::finished(const LocalException& ex, bool sent) { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_monitor); assert(_state <= StateInProgress); + _remoteObserver.failed(ex.ice_name()); _remoteObserver.detach(); _state = StateFailed; @@ -539,12 +541,8 @@ IceInternal::Outgoing::throwUserException() _is.startReadEncaps(); _is.throwException(); } - catch(const Ice::UserException& ex) + catch(const Ice::UserException&) { - if(_observer) - { - _observer.failed(ex.ice_name()); - } _is.endReadEncaps(); throw; } @@ -579,7 +577,6 @@ IceInternal::BatchOutgoing::invoke() { _monitor.wait(); } - _remoteObserver.detach(); if(_exception.get()) { _exception->ice_throw(); @@ -600,12 +597,15 @@ IceInternal::BatchOutgoing::sent(bool notify) { _sent = true; } + _remoteObserver.detach(); } void IceInternal::BatchOutgoing::finished(const Ice::LocalException& ex, bool) { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_monitor); + _remoteObserver.failed(ex.ice_name()); + _remoteObserver.detach(); _exception.reset(ex.ice_clone()); _monitor.notify(); } diff --git a/cpp/src/Ice/OutgoingAsync.cpp b/cpp/src/Ice/OutgoingAsync.cpp index a1f5c9ef77e..efbc752c897 100644 --- a/cpp/src/Ice/OutgoingAsync.cpp +++ b/cpp/src/Ice/OutgoingAsync.cpp @@ -241,6 +241,15 @@ Ice::AsyncResult::__sent() __warning(); } } + + if(_observer) + { + Ice::ObjectPrx proxy = getProxy(); + if(!proxy || !proxy->ice_isTwoway()) + { + _observer.detach(); + } + } } void @@ -527,10 +536,6 @@ void IceInternal::OutgoingAsync::__sent() { ::Ice::AsyncResult::__sent(); - if(!_proxy->ice_isTwoway()) - { - _observer.detach(); - } } void @@ -539,6 +544,7 @@ IceInternal::OutgoingAsync::__finished(const Ice::LocalException& exc, bool sent { IceUtil::Monitor<IceUtil::Mutex>::Lock sync(_monitor); assert(!(_state & Done)); + _remoteObserver.failed(exc.ice_name()); _remoteObserver.detach(); if(_timerTaskConnection) { @@ -578,6 +584,7 @@ IceInternal::OutgoingAsync::__finished(const LocalExceptionWrapper& exc) // calling on the callback. The LocalExceptionWrapper exception is only called // before the invocation is sent. // + _remoteObserver.failed(exc.get()->ice_name()); _remoteObserver.detach(); try @@ -622,8 +629,12 @@ IceInternal::OutgoingAsync::__finished(BasicStream& is) switch(replyStatus) { case replyOK: + { + break; + } case replyUserException: { + _observer.userException(); break; } @@ -889,15 +900,12 @@ IceInternal::BatchOutgoingAsync::__sent(Ice::ConnectionI* connection) _state |= Done | OK | Sent; _remoteObserver.detach(); _monitor.notifyAll(); - if(_callback && _callback->__hasSentCallback()) - { - return true; - } - else + if(!_callback || !_callback->__hasSentCallback()) { _observer.detach(); return false; } + return true; } void @@ -909,6 +917,7 @@ IceInternal::BatchOutgoingAsync::__sent() void IceInternal::BatchOutgoingAsync::__finished(const Ice::LocalException& exc, bool) { + _remoteObserver.failed(exc.ice_name()); _remoteObserver.detach(); __exception(exc); } @@ -1030,8 +1039,9 @@ IceInternal::CommunicatorBatchOutgoingAsync::flushConnection(const ConnectionIPt return false; } - virtual void __finished(const Ice::LocalException&, bool) + virtual void __finished(const Ice::LocalException& ex, bool) { + _remoteObserver.failed(ex.ice_name()); _remoteObserver.detach(); _outAsync->check(false); } @@ -1074,24 +1084,29 @@ IceInternal::CommunicatorBatchOutgoingAsync::check(bool userThread) if(--_useCount > 0) { return; - } - - _observer.detach(); + } _state |= Done | OK | Sent; _monitor.notifyAll(); } - // - // _sentSynchronously is immutable here. - // - if(!_sentSynchronously && userThread) + if(!_callback || !_callback->__hasSentCallback()) { - __sentAsync(); + _observer.detach(); } else { - assert(_sentSynchronously == userThread); // sentSynchronously && !userThread is impossible. - AsyncResult::__sent(); + // + // _sentSynchronously is immutable here. + // + if(!_sentSynchronously && userThread) + { + __sentAsync(); + } + else + { + assert(_sentSynchronously == userThread); // sentSynchronously && !userThread is impossible. + AsyncResult::__sent(); + } } } diff --git a/cpp/src/Ice/Proxy.cpp b/cpp/src/Ice/Proxy.cpp index 59081974ffa..e2196926685 100644 --- a/cpp/src/Ice/Proxy.cpp +++ b/cpp/src/Ice/Proxy.cpp @@ -184,22 +184,31 @@ bool IceProxy::Ice::Object::end_ice_isA(const AsyncResultPtr& __result) { AsyncResult::__check(__result, this, ice_isA_name); - if(!__result->__wait()) + bool __ok = __result->__wait(); + try { - try - { - __result->__throwUserException(); - } - catch(const UserException& __ex) + if(!__ok) { - throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + try + { + __result->__throwUserException(); + } + catch(const UserException& __ex) + { + throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + } } + bool __ret; + IceInternal::BasicStream* __is = __result->__startReadParams(); + __is->read(__ret); + __result->__endReadParams(); + return __ret; + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; } - bool __ret; - IceInternal::BasicStream* __is = __result->__startReadParams(); - __is->read(__ret); - __result->__endReadParams(); - return __ret; } void @@ -326,22 +335,31 @@ vector<string> IceProxy::Ice::Object::end_ice_ids(const AsyncResultPtr& __result) { AsyncResult::__check(__result, this, ice_ids_name); - if(!__result->__wait()) + bool __ok = __result->__wait(); + try { - try - { - __result->__throwUserException(); - } - catch(const UserException& __ex) + if(!__ok) { - throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + try + { + __result->__throwUserException(); + } + catch(const UserException& __ex) + { + throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + } } + vector<string> __ret; + IceInternal::BasicStream* __is = __result->__startReadParams(); + __is->read(__ret); + __result->__endReadParams(); + return __ret; + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; } - vector<string> __ret; - IceInternal::BasicStream* __is = __result->__startReadParams(); - __is->read(__ret); - __result->__endReadParams(); - return __ret; } AsyncResultPtr @@ -368,22 +386,32 @@ string IceProxy::Ice::Object::end_ice_id(const AsyncResultPtr& __result) { AsyncResult::__check(__result, this, ice_id_name); - if(!__result->__wait()) + bool __ok = __result->__wait(); + try { - try - { - __result->__throwUserException(); - } - catch(const UserException& __ex) + if(!__ok) { - throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + try + { + __result->__throwUserException(); + } + catch(const UserException& __ex) + { + throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + } } + string __ret; + IceInternal::BasicStream* __is = __result->__startReadParams(); + __is->read(__ret); + __result->__endReadParams(); + return __ret; + + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; } - string __ret; - IceInternal::BasicStream* __is = __result->__startReadParams(); - __is->read(__ret); - __result->__endReadParams(); - return __ret; } bool @@ -484,10 +512,18 @@ IceProxy::Ice::Object::end_ice_invoke(vector<Byte>& outEncaps, const AsyncResult bool ok = __result->__wait(); if(_reference->getMode() == Reference::ModeTwoway) { - const Byte* v; - Int sz; - __result->__readParamEncaps(v, sz); - vector<Byte>(v, v + sz).swap(outEncaps); + try + { + const Byte* v; + Int sz; + __result->__readParamEncaps(v, sz); + vector<Byte>(v, v + sz).swap(outEncaps); + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; + } } return ok; } @@ -606,9 +642,17 @@ IceProxy::Ice::Object::___end_ice_invoke(pair<const Byte*, const Byte*>& outEnca bool ok = __result->__wait(); if(_reference->getMode() == Reference::ModeTwoway) { - Int sz; - __result->__readParamEncaps(outEncaps.first, sz); - outEncaps.second = outEncaps.first + sz; + try + { + Int sz; + __result->__readParamEncaps(outEncaps.first, sz); + outEncaps.second = outEncaps.first + sz; + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; + } } return ok; } @@ -1300,10 +1344,6 @@ IceProxy::Ice::Object::__handleExceptionWrapper(const ::IceInternal::Handle< ::I observer.failed(ex.get()->ice_name()); ex.get()->ice_throw(); } - else - { - observer.retried(); - } return 0; } @@ -1328,7 +1368,6 @@ IceProxy::Ice::Object::__handleExceptionWrapperRelaxed(const ::IceInternal::Hand _delegate = 0; } } - observer.retried(); return 0; } } @@ -1365,21 +1404,29 @@ void IceProxy::Ice::Object::__end(const ::Ice::AsyncResultPtr& __result, const std::string& operation) const { AsyncResult::__check(__result, this, operation); - bool ok = __result->__wait(); + bool __ok = __result->__wait(); if(_reference->getMode() == Reference::ModeTwoway) { - if(!ok) + try { - try - { - __result->__throwUserException(); - } - catch(const UserException& __ex) + if(!__ok) { - throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + try + { + __result->__throwUserException(); + } + catch(const UserException& __ex) + { + throw UnknownUserException(__FILE__, __LINE__, __ex.ice_name()); + } } + __result->__readEmptyParams(); + } + catch(const ::Ice::LocalException& ex) + { + __result->__getObserver().failed(ex.ice_name()); + throw; } - __result->__readEmptyParams(); } } diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index 72ac920e597..6738a68f10c 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -2263,8 +2263,10 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) // and Windows 64 bits when compiled with optimization (see bug 4400). // writeAllocateCode(C, ParamDeclList(), p, _useWstring | TypeContextAMIEnd); - - C << nl << "if(!__result->__wait())"; + C << nl << "bool __ok = __result->__wait();"; + C << nl << "try"; + C << sb; + C << nl << "if(!__ok)"; C << sb; C << nl << "try"; C << sb; @@ -2309,6 +2311,12 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) { C << nl << "return __ret;"; } + C << eb; + C << nl << "catch(const ::Ice::LocalException& ex)"; + C << sb; + C << nl << "__result->__getObserver().failed(ex.ice_name());"; + C << nl << "throw;"; + C << eb; } else { diff --git a/cpp/src/slice2cs/Gen.cpp b/cpp/src/slice2cs/Gen.cpp index 623576819ce..121976a7433 100644 --- a/cpp/src/slice2cs/Gen.cpp +++ b/cpp/src/slice2cs/Gen.cpp @@ -4973,7 +4973,10 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << "IceInternal.OutgoingAsync outAsync__ = (IceInternal.OutgoingAsync)r__;"; _out << nl << "IceInternal.OutgoingAsync.check__(outAsync__, this, " << flatName << ");"; - _out << nl << "if(!outAsync__.wait__())"; + _out << nl << "bool ok__ = outAsync__.wait__();"; + _out << nl << "try"; + _out << sb; + _out << nl << "if(!ok__)"; _out << sb; ExceptionList throws = op->throws(); @@ -5071,6 +5074,16 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) { _out << nl << "outAsync__.readEmptyParams__();"; } + _out << eb; + _out << nl << "catch(Ice.LocalException ex)"; + _out << sb; + _out << nl << "Ice.Instrumentation.InvocationObserver obsv__ = outAsync__.getObserver__();"; + _out << nl << "if(obsv__ != null)"; + _out << sb; + _out << nl << "obsv__.failed(ex.ice_name());"; + _out << eb; + _out << nl << "throw ex;"; + _out << eb; } else { diff --git a/cpp/src/slice2java/Gen.cpp b/cpp/src/slice2java/Gen.cpp index 666e23f1104..c9f7f42e243 100644 --- a/cpp/src/slice2java/Gen.cpp +++ b/cpp/src/slice2java/Gen.cpp @@ -4524,8 +4524,10 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) if(op->returnsData()) { out << nl << "Ice.AsyncResult.__check(__result, this, __" << op->name() << "_name);"; - out << nl; - out << "if(!__result.__wait())"; + out << nl << "boolean __ok = __result.__wait();"; + out << nl << "try"; + out << sb; + out << nl << "if(!__ok)"; out << sb; out << nl << "try"; out << sb; @@ -4587,6 +4589,17 @@ Slice::Gen::HelperVisitor::visitClassDefStart(const ClassDefPtr& p) out << nl << "return __ret;"; } } + + out << eb; + out << nl << "catch(Ice.LocalException ex)"; + out << sb; + out << nl << "Ice.Instrumentation.InvocationObserver __obsv = __result.__getObserver();"; + out << nl << "if(__obsv != null)"; + out << sb; + out << nl << "__obsv.failed(ex.ice_name());"; + out << eb; + out << nl << "throw ex;"; + out << eb; } else { diff --git a/cpp/test/Ice/metrics/.depend b/cpp/test/Ice/metrics/.depend index c8cf319e34b..9a569abe16b 100644 --- a/cpp/test/Ice/metrics/.depend +++ b/cpp/test/Ice/metrics/.depend @@ -4,4 +4,8 @@ AllTests$(OBJEXT): AllTests.cpp $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Co Test$(OBJEXT): Test.cpp Test.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h TestI$(OBJEXT): TestI.cpp $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/Ice/IconvStringConverter.h TestI.h Test.h Server$(OBJEXT): Server.cpp $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/Ice/IconvStringConverter.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h TestI.h Test.h +TestAMD$(OBJEXT): TestAMD.cpp TestAMD.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/Ice/Proxy.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/Object.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.h $(includedir)/Ice/Direct.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/ObjectFactory.h +TestAMDI$(OBJEXT): TestAMDI.cpp $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/Ice/IconvStringConverter.h TestAMDI.h TestAMD.h +ServerAMD$(OBJEXT): ServerAMD.cpp $(includedir)/Ice/Ice.h $(includedir)/IceUtil/Config.h $(includedir)/Ice/Initialize.h $(includedir)/Ice/CommunicatorF.h $(includedir)/Ice/ProxyF.h $(includedir)/IceUtil/Shared.h $(includedir)/Ice/Config.h $(includedir)/Ice/ProxyHandle.h $(includedir)/IceUtil/Handle.h $(includedir)/IceUtil/Exception.h $(includedir)/Ice/ObjectF.h $(includedir)/Ice/Handle.h $(includedir)/Ice/Exception.h $(includedir)/Ice/Format.h $(includedir)/Ice/LocalObject.h $(includedir)/Ice/LocalObjectF.h $(includedir)/Ice/StreamHelpers.h $(includedir)/IceUtil/ScopedArray.h $(includedir)/IceUtil/Iterator.h $(includedir)/IceUtil/Optional.h $(includedir)/Ice/UndefSysMacros.h $(includedir)/Ice/PropertiesF.h $(includedir)/Ice/InstanceF.h $(includedir)/Ice/LoggerF.h $(includedir)/Ice/StreamF.h $(includedir)/Ice/StatsF.h $(includedir)/Ice/InstrumentationF.h $(includedir)/Ice/Dispatcher.h $(includedir)/Ice/ConnectionF.h $(includedir)/Ice/StringConverter.h $(includedir)/Ice/Plugin.h $(includedir)/Ice/BuiltinSequences.h $(includedir)/Ice/Stream.h $(includedir)/Ice/Object.h $(includedir)/IceUtil/Mutex.h $(includedir)/IceUtil/Lock.h $(includedir)/IceUtil/ThreadException.h $(includedir)/IceUtil/Time.h $(includedir)/IceUtil/MutexProtocol.h $(includedir)/Ice/GCShared.h $(includedir)/Ice/GCCountMap.h $(includedir)/Ice/IncomingAsyncF.h $(includedir)/Ice/Current.h $(includedir)/Ice/ObjectAdapterF.h $(includedir)/Ice/Identity.h $(includedir)/Ice/Version.h $(includedir)/Ice/Proxy.h $(includedir)/Ice/ProxyFactoryF.h $(includedir)/Ice/ConnectionIF.h $(includedir)/Ice/RequestHandlerF.h $(includedir)/Ice/EndpointIF.h $(includedir)/Ice/EndpointF.h $(includedir)/Ice/EndpointTypes.h $(includedir)/Ice/ReferenceF.h $(includedir)/Ice/OutgoingAsync.h $(includedir)/IceUtil/Monitor.h $(includedir)/IceUtil/Cond.h $(includedir)/IceUtil/Timer.h $(includedir)/IceUtil/Thread.h $(includedir)/IceUtil/UniquePtr.h $(includedir)/Ice/OutgoingAsyncF.h $(includedir)/Ice/BasicStream.h $(includedir)/Ice/ObjectFactoryF.h $(includedir)/Ice/Buffer.h $(includedir)/Ice/Protocol.h $(includedir)/Ice/SlicedDataF.h $(includedir)/Ice/UserExceptionFactory.h $(includedir)/Ice/ObserverHelper.h $(includedir)/Ice/Instrumentation.h $(includedir)/IceUtil/Unicode.h $(includedir)/Ice/LocalException.h $(includedir)/Ice/Properties.h $(includedir)/Ice/Outgoing.h $(includedir)/Ice/Incoming.h $(includedir)/Ice/ServantLocatorF.h $(includedir)/Ice/ServantManagerF.h $(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h $(includedir)/Ice/ObjectFactory.h $(includedir)/Ice/ObjectAdapter.h $(includedir)/Ice/FacetMap.h $(includedir)/Ice/Endpoint.h $(includedir)/Ice/ServantLocator.h $(includedir)/Ice/SlicedData.h $(includedir)/Ice/Process.h $(includedir)/Ice/Application.h $(includedir)/Ice/Connection.h $(includedir)/Ice/ConnectionAsync.h $(includedir)/Ice/Functional.h $(includedir)/IceUtil/Functional.h $(includedir)/Ice/ImplicitContext.h $(includedir)/Ice/Locator.h $(includedir)/Ice/FactoryTableInit.h $(includedir)/Ice/FactoryTable.h $(includedir)/Ice/ProcessF.h $(includedir)/Ice/Router.h $(includedir)/Ice/DispatchInterceptor.h $(includedir)/Ice/PropertiesAdmin.h $(includedir)/Ice/Metrics.h $(includedir)/Ice/Service.h $(includedir)/Ice/IconvStringConverter.h ../../include/TestCommon.h $(includedir)/IceUtil/IceUtil.h $(includedir)/IceUtil/AbstractMutex.h $(includedir)/IceUtil/Cache.h $(includedir)/IceUtil/CountDownLatch.h $(includedir)/IceUtil/CtrlCHandler.h $(includedir)/IceUtil/MutexPtrLock.h $(includedir)/IceUtil/RecMutex.h $(includedir)/IceUtil/UUID.h TestAMDI.h TestAMD.h Test.h Test.cpp: Test.ice $(SLICE2CPP) $(SLICEPARSERLIB) +TestAMD.h TestAMD.cpp: TestAMD.ice $(SLICE2CPP) $(SLICEPARSERLIB) diff --git a/cpp/test/Ice/metrics/.depend.mak b/cpp/test/Ice/metrics/.depend.mak index 8dfa19a9c98..d0e42c651f8 100644 --- a/cpp/test/Ice/metrics/.depend.mak +++ b/cpp/test/Ice/metrics/.depend.mak @@ -4,4 +4,8 @@ AllTests$(OBJEXT): AllTests.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/IceUtil Test$(OBJEXT): Test.cpp Test.h "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" TestI$(OBJEXT): TestI.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/Ice/IconvStringConverter.h" TestI.h Test.h Server$(OBJEXT): Server.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/Ice/IconvStringConverter.h" ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/UUID.h" TestI.h Test.h +TestAMD$(OBJEXT): TestAMD.cpp TestAMD.h "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/Object.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.h" "$(includedir)/Ice/Direct.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/ObjectFactory.h" +TestAMDI$(OBJEXT): TestAMDI.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/Ice/IconvStringConverter.h" TestAMDI.h TestAMD.h +ServerAMD$(OBJEXT): ServerAMD.cpp "$(includedir)/Ice/Ice.h" "$(includedir)/IceUtil/Config.h" "$(includedir)/Ice/Initialize.h" "$(includedir)/Ice/CommunicatorF.h" "$(includedir)/Ice/ProxyF.h" "$(includedir)/IceUtil/Shared.h" "$(includedir)/Ice/Config.h" "$(includedir)/Ice/ProxyHandle.h" "$(includedir)/IceUtil/Handle.h" "$(includedir)/IceUtil/Exception.h" "$(includedir)/Ice/ObjectF.h" "$(includedir)/Ice/Handle.h" "$(includedir)/Ice/Exception.h" "$(includedir)/Ice/Format.h" "$(includedir)/Ice/LocalObject.h" "$(includedir)/Ice/LocalObjectF.h" "$(includedir)/Ice/StreamHelpers.h" "$(includedir)/IceUtil/ScopedArray.h" "$(includedir)/IceUtil/Iterator.h" "$(includedir)/IceUtil/Optional.h" "$(includedir)/Ice/UndefSysMacros.h" "$(includedir)/Ice/PropertiesF.h" "$(includedir)/Ice/InstanceF.h" "$(includedir)/Ice/LoggerF.h" "$(includedir)/Ice/StreamF.h" "$(includedir)/Ice/StatsF.h" "$(includedir)/Ice/InstrumentationF.h" "$(includedir)/Ice/Dispatcher.h" "$(includedir)/Ice/ConnectionF.h" "$(includedir)/Ice/StringConverter.h" "$(includedir)/Ice/Plugin.h" "$(includedir)/Ice/BuiltinSequences.h" "$(includedir)/Ice/Stream.h" "$(includedir)/Ice/Object.h" "$(includedir)/IceUtil/Mutex.h" "$(includedir)/IceUtil/Lock.h" "$(includedir)/IceUtil/ThreadException.h" "$(includedir)/IceUtil/Time.h" "$(includedir)/IceUtil/MutexProtocol.h" "$(includedir)/Ice/GCShared.h" "$(includedir)/Ice/GCCountMap.h" "$(includedir)/Ice/IncomingAsyncF.h" "$(includedir)/Ice/Current.h" "$(includedir)/Ice/ObjectAdapterF.h" "$(includedir)/Ice/Identity.h" "$(includedir)/Ice/Version.h" "$(includedir)/Ice/Proxy.h" "$(includedir)/Ice/ProxyFactoryF.h" "$(includedir)/Ice/ConnectionIF.h" "$(includedir)/Ice/RequestHandlerF.h" "$(includedir)/Ice/EndpointIF.h" "$(includedir)/Ice/EndpointF.h" "$(includedir)/Ice/EndpointTypes.h" "$(includedir)/Ice/ReferenceF.h" "$(includedir)/Ice/OutgoingAsync.h" "$(includedir)/IceUtil/Monitor.h" "$(includedir)/IceUtil/Cond.h" "$(includedir)/IceUtil/Timer.h" "$(includedir)/IceUtil/Thread.h" "$(includedir)/IceUtil/UniquePtr.h" "$(includedir)/Ice/OutgoingAsyncF.h" "$(includedir)/Ice/BasicStream.h" "$(includedir)/Ice/ObjectFactoryF.h" "$(includedir)/Ice/Buffer.h" "$(includedir)/Ice/Protocol.h" "$(includedir)/Ice/SlicedDataF.h" "$(includedir)/Ice/UserExceptionFactory.h" "$(includedir)/Ice/ObserverHelper.h" "$(includedir)/Ice/Instrumentation.h" "$(includedir)/IceUtil/Unicode.h" "$(includedir)/Ice/LocalException.h" "$(includedir)/Ice/Properties.h" "$(includedir)/Ice/Outgoing.h" "$(includedir)/Ice/Incoming.h" "$(includedir)/Ice/ServantLocatorF.h" "$(includedir)/Ice/ServantManagerF.h" "$(includedir)/Ice/IncomingAsync.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/CommunicatorAsync.h" "$(includedir)/Ice/ObjectFactory.h" "$(includedir)/Ice/ObjectAdapter.h" "$(includedir)/Ice/FacetMap.h" "$(includedir)/Ice/Endpoint.h" "$(includedir)/Ice/ServantLocator.h" "$(includedir)/Ice/SlicedData.h" "$(includedir)/Ice/Process.h" "$(includedir)/Ice/Application.h" "$(includedir)/Ice/Connection.h" "$(includedir)/Ice/ConnectionAsync.h" "$(includedir)/Ice/Functional.h" "$(includedir)/IceUtil/Functional.h" "$(includedir)/Ice/ImplicitContext.h" "$(includedir)/Ice/Locator.h" "$(includedir)/Ice/FactoryTableInit.h" "$(includedir)/Ice/FactoryTable.h" "$(includedir)/Ice/ProcessF.h" "$(includedir)/Ice/Router.h" "$(includedir)/Ice/DispatchInterceptor.h" "$(includedir)/Ice/PropertiesAdmin.h" "$(includedir)/Ice/Metrics.h" "$(includedir)/Ice/Service.h" "$(includedir)/Ice/IconvStringConverter.h" ../../include/TestCommon.h "$(includedir)/IceUtil/IceUtil.h" "$(includedir)/IceUtil/AbstractMutex.h" "$(includedir)/IceUtil/Cache.h" "$(includedir)/IceUtil/CountDownLatch.h" "$(includedir)/IceUtil/CtrlCHandler.h" "$(includedir)/IceUtil/MutexPtrLock.h" "$(includedir)/IceUtil/RecMutex.h" "$(includedir)/IceUtil/UUID.h" TestAMDI.h TestAMD.h Test.h Test.cpp: Test.ice "$(SLICE2CPP)" "$(SLICEPARSERLIB)" +TestAMD.h TestAMD.cpp: TestAMD.ice "$(SLICE2CPP)" "$(SLICEPARSERLIB)" diff --git a/cpp/test/Ice/metrics/.gitignore b/cpp/test/Ice/metrics/.gitignore index 67872faa673..f6ac51a4607 100644 --- a/cpp/test/Ice/metrics/.gitignore +++ b/cpp/test/Ice/metrics/.gitignore @@ -3,5 +3,8 @@ // IMPORTANT: Do not edit this file -- any edits made here will be lost! client server +serveramd Test.cpp Test.h +TestAMD.cpp +TestAMD.h diff --git a/cpp/test/Ice/metrics/AllTests.cpp b/cpp/test/Ice/metrics/AllTests.cpp index 85129a81b55..d6a3bad1b0b 100644 --- a/cpp/test/Ice/metrics/AllTests.cpp +++ b/cpp/test/Ice/metrics/AllTests.cpp @@ -31,6 +31,43 @@ namespace // } // } +class Callback : public IceUtil::Shared, private IceUtil::Monitor<IceUtil::Mutex> +{ +public: + + Callback() : _wait(true) + { + } + + void response() + { + Lock sync(*this); + _wait = false; + notify(); + } + + void exception(const Ice::Exception&) + { + response(); + } + + void + waitForResponse() + { + Lock sync(*this); + while(_wait) + { + wait(); + } + _wait = true; + } + +private: + + bool _wait; +}; +typedef IceUtil::Handle<Callback> CallbackPtr; + Ice::PropertyDict getClientProps(const Ice::PropertiesAdminPrx& p, const Ice::PropertyDict& orig, const string& m = string()) { @@ -713,24 +750,23 @@ allTests(const Ice::CommunicatorPtr& communicator) map = toMap(serverMetrics->getMetricsView("View", timestamp)["Dispatch"]); test(map.size() == 6); - m1 = map["op"]; - test(m1->current == 0 && m1->total == 1 && m1->failures == 0); + IceMX::DispatchMetricsPtr dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["op"]); + test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 0); - m1 = map["opWithUserException"]; - test(m1->current == 0 && m1->total == 1 && m1->failures == 1); - checkFailure(serverMetrics, "Dispatch", m1->id, "Test::UserEx", 1); + dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithUserException"]); + test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 0 && dm1->userException == 1); - m1 = map["opWithLocalException"]; - test(m1->current == 0 && m1->total == 1 && m1->failures == 1); - checkFailure(serverMetrics, "Dispatch", m1->id, "Ice::SyscallException", 1); + dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithLocalException"]); + test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0); + checkFailure(serverMetrics, "Dispatch", dm1->id, "Ice::SyscallException", 1); - m1 = map["opWithRequestFailedException"]; - test(m1->current == 0 && m1->total == 1 && m1->failures == 1); - checkFailure(serverMetrics, "Dispatch", m1->id, "Ice::ObjectNotExistException", 1); + dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithRequestFailedException"]); + test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0); + checkFailure(serverMetrics, "Dispatch", dm1->id, "Ice::ObjectNotExistException", 1); - m1 = map["opWithUnknownException"]; - test(m1->current == 0 && m1->total == 1 && m1->failures == 1); - checkFailure(serverMetrics, "Dispatch", m1->id, "unknown", 1); + dm1 = IceMX::DispatchMetricsPtr::dynamicCast(map["opWithUnknownException"]); + test(dm1->current == 0 && dm1->total == 1 && dm1->failures == 1 && dm1->userException == 0); + checkFailure(serverMetrics, "Dispatch", dm1->id, "unknown", 1); InvokeOp op(metrics); @@ -777,7 +813,13 @@ allTests(const Ice::CommunicatorPtr& communicator) updateProps(clientProps, serverProps, update, props, "Invocation"); test(serverMetrics->getMetricsView("View", timestamp)["Invocation"].empty()); + CallbackPtr cb = new Callback(); metrics->op(); + metrics->end_op(metrics->begin_op()); + metrics->begin_op(newCallback_Metrics_op(cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); + + // User exception try { metrics->opWithUserException(); @@ -788,6 +830,19 @@ allTests(const Ice::CommunicatorPtr& communicator) } try { + metrics->end_opWithUserException(metrics->begin_opWithUserException()); + test(false); + } + catch(const Test::UserEx&) + { + } + metrics->begin_opWithUserException(newCallback_Metrics_opWithUserException( + cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); + + // Request failed exception + try + { metrics->opWithRequestFailedException(); test(false); } @@ -796,6 +851,19 @@ allTests(const Ice::CommunicatorPtr& communicator) } try { + metrics->end_opWithRequestFailedException(metrics->begin_opWithRequestFailedException()); + test(false); + } + catch(const Ice::RequestFailedException&) + { + } + metrics->begin_opWithRequestFailedException(newCallback_Metrics_opWithRequestFailedException( + cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); + + // Local exception + try + { metrics->opWithLocalException(); test(false); } @@ -804,6 +872,19 @@ allTests(const Ice::CommunicatorPtr& communicator) } try { + metrics->end_opWithLocalException(metrics->begin_opWithLocalException()); + test(false); + } + catch(const Ice::LocalException&) + { + } + metrics->begin_opWithLocalException(newCallback_Metrics_opWithLocalException( + cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); + + // Unknown exception + try + { metrics->opWithUnknownException(); test(false); } @@ -812,39 +893,73 @@ allTests(const Ice::CommunicatorPtr& communicator) } try { + metrics->end_opWithUnknownException(metrics->begin_opWithUnknownException()); + test(false); + } + catch(const Ice::UnknownException&) + { + } + metrics->begin_opWithUnknownException(newCallback_Metrics_opWithUnknownException( + cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); + + // Fail + try + { metrics->fail(); test(false); } catch(const Ice::ConnectionLostException&) { } + try + { + metrics->end_fail(metrics->begin_fail()); + test(false); + } + catch(const Ice::ConnectionLostException&) + { + } + metrics->begin_fail(newCallback_Metrics_fail(cb, &Callback::response, &Callback::exception)); + cb->waitForResponse(); map = toMap(clientMetrics->getMetricsView("View", timestamp)["Invocation"]); test(map.size() == 6); IceMX::InvocationMetricsPtr im1; im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["op"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1); - + test(im1->current == 0 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0); + im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithUserException"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 1 && im1->retry == 0 && im1->remotes.size() == 1); - checkFailure(clientMetrics, "Invocation", im1->id, "Test::UserEx", 1); + test(im1->current == 0 && im1->total == 3 && im1->failures == 0 && im1->retry == 0 && im1->remotes.size() == 1); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0); + test(im1->userException == 3); im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithLocalException"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 1 && im1->retry == 0 && im1->remotes.size() == 1); - checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownLocalException", 1); + test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0); + checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownLocalException", 3); im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithRequestFailedException"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 1 && im1->retry == 0 && im1->remotes.size() == 1); - checkFailure(clientMetrics, "Invocation", im1->id, "Ice::ObjectNotExistException", 1); + test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0); + checkFailure(clientMetrics, "Invocation", im1->id, "Ice::ObjectNotExistException", 3); im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["opWithUnknownException"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 1 && im1->retry == 0 && im1->remotes.size() == 1); - checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownException", 1); + test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 0 && im1->remotes.size() == 1); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 3 && im1->remotes[0]->failures == 0); + checkFailure(clientMetrics, "Invocation", im1->id, "Ice::UnknownException", 3); im1 = IceMX::InvocationMetricsPtr::dynamicCast(map["fail"]); - test(im1->current == 0 && im1->total == 1 && im1->failures == 1 && im1->retry == 1 && im1->remotes.size() == 2); - checkFailure(clientMetrics, "Invocation", im1->id, "Ice::ConnectionLostException", 1); + test(im1->current == 0 && im1->total == 3 && im1->failures == 3 && im1->retry == 3 && im1->remotes.size() == 6); + test(im1->remotes[0]->current == 0 && im1->remotes[0]->total == 1 && im1->remotes[0]->failures == 1); + test(im1->remotes[1]->current == 0 && im1->remotes[1]->total == 1 && im1->remotes[1]->failures == 1); + test(im1->remotes[2]->current == 0 && im1->remotes[2]->total == 1 && im1->remotes[2]->failures == 1); + test(im1->remotes[3]->current == 0 && im1->remotes[3]->total == 1 && im1->remotes[3]->failures == 1); + test(im1->remotes[4]->current == 0 && im1->remotes[4]->total == 1 && im1->remotes[4]->failures == 1); + test(im1->remotes[5]->current == 0 && im1->remotes[5]->total == 1 && im1->remotes[5]->failures == 1); + checkFailure(clientMetrics, "Invocation", im1->id, "Ice::ConnectionLostException", 3); testAttribute(clientMetrics, clientProps, update, "Invocation", "parent", "Communicator", op); testAttribute(clientMetrics, clientProps, update, "Invocation", "id", diff --git a/cpp/test/Ice/metrics/Makefile b/cpp/test/Ice/metrics/Makefile index e91c05fde02..b8bfbf5644c 100644 --- a/cpp/test/Ice/metrics/Makefile +++ b/cpp/test/Ice/metrics/Makefile @@ -11,8 +11,9 @@ top_srcdir = ../../.. CLIENT = client SERVER = server +SERVERAMD = serveramd -TARGETS = $(CLIENT) $(SERVER) +TARGETS = $(CLIENT) $(SERVER) $(SERVERAMD) COBJS = Test.o \ Client.o \ @@ -22,10 +23,16 @@ SOBJS = Test.o \ TestI.o \ Server.o +SAMDOBJS = TestAMD.o \ + TestAMDI.o \ + ServerAMD.o + + SRCS = $(COBJS:.o=.cpp) \ - $(SOBJS:.o=.cpp) + $(SOBJS:.o=.cpp) \ + $(SAMDOBJS:.o=.cpp) -SLICE_SRCS = Test.ice +SLICE_SRCS = Test.ice TestAMD.ice include $(top_srcdir)/config/Make.rules @@ -39,4 +46,8 @@ $(SERVER): $(SOBJS) rm -f $@ $(CXX) $(LDFLAGS) -o $@ $(SOBJS) $(LIBS) +$(SERVERAMD): $(SAMDOBJS) + rm -f $@ + $(CXX) $(LDFLAGS) -o $@ $(SAMDOBJS) $(LIBS) + include .depend diff --git a/cpp/test/Ice/metrics/Makefile.mak b/cpp/test/Ice/metrics/Makefile.mak index afefb4981e2..3549f216b29 100644 --- a/cpp/test/Ice/metrics/Makefile.mak +++ b/cpp/test/Ice/metrics/Makefile.mak @@ -19,8 +19,9 @@ EXT = .dll CLIENT = $(NAME_PREFIX)client
SERVER = $(NAME_PREFIX)server
+SERVERAMD = $(NAME_PREFIX)serveramd
-TARGETS = $(CLIENT)$(EXT) $(SERVER)$(EXT)
+TARGETS = $(CLIENT)$(EXT) $(SERVER)$(EXT) $(SERVERAMD)$(EXT)
COBJS = Test.obj \
Client.obj \
@@ -30,8 +31,13 @@ SOBJS = Test.obj \ TestI.obj \
Server.obj
+SAMDOBJS = TestAMD.obj \
+ TestAMDI.obj \
+ ServerAMD.obj
+
SRCS = $(COBJS:.obj=.cpp) \
- $(SOBJS:.obj=.cpp)
+ $(SOBJS:.obj=.cpp) \
+ $(SAMDOBJS:.obj=.cpp)
!include $(top_srcdir)/config/Make.rules.mak
@@ -58,6 +64,11 @@ $(SERVER)$(EXT): $(SOBJS) @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
$(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
+$(SERVERAMD)$(EXT): $(SAMDOBJS)
+ $(LINK) $(LD_TESTFLAGS) $(SAPDBFLAGS) $(SAMDOBJS) $(PREOUT)$@ $(PRELIBS)$(LIBS)
+ @if exist $@.manifest echo ^ ^ ^ Embedding manifest using $(MT) && \
+ $(MT) -nologo -manifest $@.manifest -outputresource:$@;#1 && del /q $@.manifest
+
clean::
del /q Test.cpp Test.h
diff --git a/cpp/test/Ice/metrics/ServerAMD.cpp b/cpp/test/Ice/metrics/ServerAMD.cpp new file mode 100644 index 00000000000..c6a9c66be6a --- /dev/null +++ b/cpp/test/Ice/metrics/ServerAMD.cpp @@ -0,0 +1,78 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 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 <TestCommon.h> +#include <TestAMDI.h> + +DEFINE_TEST("serveramd") + +using namespace std; + +int +run(int argc, char* argv[], const Ice::CommunicatorPtr& communicator) +{ + communicator->getProperties()->setProperty("TestAdapter.Endpoints", "default -p 12010"); + Ice::ObjectAdapterPtr adapter = communicator->createObjectAdapter("TestAdapter"); + Ice::ObjectPtr object = new MetricsI; + adapter->add(object, communicator->stringToIdentity("metrics")); + adapter->activate(); + + communicator->getProperties()->setProperty("ControllerAdapter.Endpoints", "default -p 12011"); + Ice::ObjectAdapterPtr controllerAdapter = communicator->createObjectAdapter("ControllerAdapter"); + controllerAdapter->add(new ControllerI(adapter), communicator->stringToIdentity("controller")); + controllerAdapter->activate(); + + TEST_READY + communicator->waitForShutdown(); + + return EXIT_SUCCESS; +} + +int +main(int argc, char* argv[]) +{ + int status; + Ice::CommunicatorPtr communicator; + + try + { + Ice::InitializationData initData; + initData.properties = Ice::createProperties(argc, argv); + //initData.properties->setProperty("Ice.ThreadPool.Server.Size", "1"); + //initData.properties->setProperty("Ice.ThreadPool.Server.SizeMax", "1"); + initData.properties->setProperty("Ice.Admin.Endpoints", "tcp"); + initData.properties->setProperty("Ice.Admin.InstanceName", "server"); + initData.properties->setProperty("Ice.Warn.Connections", "0"); + initData.properties->setProperty("Ice.Warn.Dispatch", "0"); + initData.properties->setProperty("Ice.MessageSizeMax", "50000"); + communicator = Ice::initialize(argc, argv, initData); + status = run(argc, argv, communicator); + } + catch(const Ice::Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + + if(communicator) + { + try + { + communicator->destroy(); + } + catch(const Ice::Exception& ex) + { + cerr << ex << endl; + status = EXIT_FAILURE; + } + } + + return status; +} diff --git a/cpp/test/Ice/metrics/TestAMD.ice b/cpp/test/Ice/metrics/TestAMD.ice new file mode 100644 index 00000000000..30fc352bb40 --- /dev/null +++ b/cpp/test/Ice/metrics/TestAMD.ice @@ -0,0 +1,50 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 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. +// +// ********************************************************************** + +#pragma once + +module Test +{ + +exception UserEx +{ +}; + +sequence<byte> ByteSeq; + +interface Metrics +{ + ["amd"] void op(); + + ["amd"] idempotent void fail(); + + ["amd"] void opWithUserException() + throws UserEx; + + ["amd"] void opWithRequestFailedException(); + + ["amd"] void opWithLocalException(); + + ["amd"] void opWithUnknownException(); + + ["amd"] void opByteS(ByteSeq bs); + + Object* getAdmin(); + + void shutdown(); +}; + +interface Controller +{ + void hold(); + + void resume(); +}; + +}; diff --git a/cpp/test/Ice/metrics/TestAMDI.cpp b/cpp/test/Ice/metrics/TestAMDI.cpp new file mode 100644 index 00000000000..f75b9769dae --- /dev/null +++ b/cpp/test/Ice/metrics/TestAMDI.cpp @@ -0,0 +1,84 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 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 <TestAMDI.h> + +void +MetricsI::op_async(const Test::AMD_Metrics_opPtr& cb, const Ice::Current&) +{ + cb->ice_response(); +} + +void +MetricsI::fail_async(const Test::AMD_Metrics_failPtr& cb, const Ice::Current& current) +{ + current.con->close(true); + cb->ice_response(); +} + +void +MetricsI::opWithUserException_async(const Test::AMD_Metrics_opWithUserExceptionPtr& cb, const Ice::Current&) +{ + cb->ice_exception(Test::UserEx()); +} + +void +MetricsI::opWithRequestFailedException_async(const Test::AMD_Metrics_opWithRequestFailedExceptionPtr& cb, + const Ice::Current&) +{ + cb->ice_exception(Ice::ObjectNotExistException(__FILE__, __LINE__)); +} + +void +MetricsI::opWithLocalException_async(const Test::AMD_Metrics_opWithLocalExceptionPtr& cb, const Ice::Current&) +{ + cb->ice_exception(Ice::SyscallException(__FILE__, __LINE__)); +} + +void +MetricsI::opWithUnknownException_async(const Test::AMD_Metrics_opWithUnknownExceptionPtr& cb, const Ice::Current&) +{ + throw "Test"; +} + +void +MetricsI::opByteS_async(const Test::AMD_Metrics_opByteSPtr& cb, const Test::ByteSeq& bs, const Ice::Current&) +{ + cb->ice_response(); +} + +Ice::ObjectPrx +MetricsI::getAdmin(const Ice::Current& current) +{ + return current.adapter->getCommunicator()->getAdmin(); +} + +void +MetricsI::shutdown(const Ice::Current& current) +{ + current.adapter->getCommunicator()->shutdown(); +} + +ControllerI::ControllerI(const Ice::ObjectAdapterPtr& adapter) : _adapter(adapter) +{ +} + +void +ControllerI::hold(const Ice::Current&) +{ + _adapter->hold(); + _adapter->waitForHold(); +} + +void +ControllerI::resume(const Ice::Current&) +{ + _adapter->activate(); +} diff --git a/cpp/test/Ice/metrics/TestAMDI.h b/cpp/test/Ice/metrics/TestAMDI.h new file mode 100644 index 00000000000..b89145b15d2 --- /dev/null +++ b/cpp/test/Ice/metrics/TestAMDI.h @@ -0,0 +1,52 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2012 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 TEST_I_H +#define TEST_I_H + +#include <TestAMD.h> + +class MetricsI : public Test::Metrics +{ + virtual void op_async(const Test::AMD_Metrics_opPtr&, const Ice::Current&); + + virtual void fail_async(const Test::AMD_Metrics_failPtr&, const Ice::Current&); + + virtual void opWithUserException_async(const Test::AMD_Metrics_opWithUserExceptionPtr&, const Ice::Current&); + + virtual void opWithRequestFailedException_async(const Test::AMD_Metrics_opWithRequestFailedExceptionPtr&, + const Ice::Current&); + + virtual void opWithLocalException_async(const Test::AMD_Metrics_opWithLocalExceptionPtr&, const Ice::Current&); + + virtual void opWithUnknownException_async(const Test::AMD_Metrics_opWithUnknownExceptionPtr&, const Ice::Current&); + + virtual void opByteS_async(const Test::AMD_Metrics_opByteSPtr&, const Test::ByteSeq&, const Ice::Current&); + + virtual Ice::ObjectPrx getAdmin(const Ice::Current&); + + virtual void shutdown(const Ice::Current&); +}; + +class ControllerI : public Test::Controller +{ +public: + + ControllerI(const Ice::ObjectAdapterPtr&); + + virtual void hold(const Ice::Current&); + + virtual void resume(const Ice::Current&); + +private: + + const Ice::ObjectAdapterPtr _adapter; +}; + +#endif diff --git a/cpp/test/Ice/metrics/run.py b/cpp/test/Ice/metrics/run.py index 751a8e1d456..f10f86945e4 100755 --- a/cpp/test/Ice/metrics/run.py +++ b/cpp/test/Ice/metrics/run.py @@ -20,4 +20,7 @@ if len(path) == 0: sys.path.append(os.path.join(path[0], "scripts")) import TestUtil +print("tests with regular server.") TestUtil.clientServerTest() +print("tests with AMD server.") +TestUtil.clientServerTest(server = "serveramd") |