diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-10-12 11:34:53 +0200 |
commit | 23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch) | |
tree | 60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /cpp/src/Ice/InstrumentationI.h | |
parent | .NET demo project updates (diff) | |
download | ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.bz2 ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.tar.xz ice-23c1e3b603a9d902593ffe9f99562fcda3af1589.zip |
Added support for Glacier2 MX and fixed ICE-4880
Diffstat (limited to 'cpp/src/Ice/InstrumentationI.h')
-rw-r--r-- | cpp/src/Ice/InstrumentationI.h | 62 |
1 files changed, 51 insertions, 11 deletions
diff --git a/cpp/src/Ice/InstrumentationI.h b/cpp/src/Ice/InstrumentationI.h index 87d238cfc4b..d8f9641c76c 100644 --- a/cpp/src/Ice/InstrumentationI.h +++ b/cpp/src/Ice/InstrumentationI.h @@ -11,11 +11,48 @@ #define ICE_INSTRUMENTATION_I_H #include <Ice/MetricsObserverI.h> +#include <Ice/Connection.h> -namespace IceMX +namespace IceInternal { -class ConnectionObserverI : public Ice::Instrumentation::ConnectionObserver, public ObserverT<ConnectionMetrics> +template<typename Helper> +void addEndpointAttributes(typename Helper::Attributes& attrs) +{ + attrs.add("endpoint", &Helper::getEndpoint); + + attrs.add("endpointType", &Helper::getEndpointInfo, &Ice::EndpointInfo::type); + attrs.add("endpointIsDatagram", &Helper::getEndpointInfo, &Ice::EndpointInfo::datagram); + attrs.add("endpointIsSecure", &Helper::getEndpointInfo, &Ice::EndpointInfo::secure); + attrs.add("endpointProtocolVersion", &Helper::getEndpointInfo, &Ice::EndpointInfo::protocol); + attrs.add("endpointEncodingVersion", &Helper::getEndpointInfo, &Ice::EndpointInfo::encoding); + attrs.add("endpointTimeout", &Helper::getEndpointInfo, &Ice::EndpointInfo::timeout); + attrs.add("endpointCompress", &Helper::getEndpointInfo, &Ice::EndpointInfo::compress); + + attrs.add("endpointHost", &Helper::getEndpointInfo, &Ice::IPEndpointInfo::host); + attrs.add("endpointPort", &Helper::getEndpointInfo, &Ice::IPEndpointInfo::port); +} + +template<typename Helper> +void addConnectionAttributes(typename Helper::Attributes& attrs) +{ + attrs.add("incoming", &Helper::getConnectionInfo, &Ice::ConnectionInfo::incoming); + attrs.add("adapterName", &Helper::getConnectionInfo, &Ice::ConnectionInfo::adapterName); + attrs.add("connectionId", &Helper::getConnectionInfo, &Ice::ConnectionInfo::connectionId); + + attrs.add("localHost", &Helper::getConnectionInfo, &Ice::IPConnectionInfo::localAddress); + attrs.add("localPort", &Helper::getConnectionInfo, &Ice::IPConnectionInfo::localPort); + attrs.add("remoteHost", &Helper::getConnectionInfo, &Ice::IPConnectionInfo::remoteAddress); + attrs.add("remotePort", &Helper::getConnectionInfo, &Ice::IPConnectionInfo::remotePort); + + attrs.add("mcastHost", &Helper::getConnectionInfo, &Ice::UDPConnectionInfo::mcastAddress); + attrs.add("mcastPort", &Helper::getConnectionInfo, &Ice::UDPConnectionInfo::mcastPort); + + addEndpointAttributes<Helper>(attrs); +} + +class ConnectionObserverI : public Ice::Instrumentation::ConnectionObserver, + public IceMX::ObserverT<IceMX::ConnectionMetrics> { public: @@ -23,21 +60,24 @@ public: virtual void receivedBytes(Ice::Int); }; -class ThreadObserverI : public Ice::Instrumentation::ThreadObserver, public ObserverT<ThreadMetrics> +class ThreadObserverI : public Ice::Instrumentation::ThreadObserver, + public IceMX::ObserverT<IceMX::ThreadMetrics> { public: virtual void stateChanged(Ice::Instrumentation::ThreadState, Ice::Instrumentation::ThreadState); }; -class DispatchObserverI : public Ice::Instrumentation::DispatchObserver, public ObserverT<DispatchMetrics> +class DispatchObserverI : public Ice::Instrumentation::DispatchObserver, + public IceMX::ObserverT<IceMX::DispatchMetrics> { public: virtual void userException(); }; -class InvocationObserverI : public Ice::Instrumentation::InvocationObserver, public ObserverT<InvocationMetrics> +class InvocationObserverI : public Ice::Instrumentation::InvocationObserver, + public IceMX::ObserverT<IceMX::InvocationMetrics> { public: @@ -83,12 +123,12 @@ private: const IceInternal::MetricsAdminIPtr _metrics; - ObserverFactoryT<ConnectionObserverI> _connections; - ObserverFactoryT<DispatchObserverI> _dispatch; - ObserverFactoryT<InvocationObserverI> _invocations; - ObserverFactoryT<ThreadObserverI> _threads; - ObserverFactoryT<ObserverI> _connects; - ObserverFactoryT<ObserverI> _endpointLookups; + IceMX::ObserverFactoryT<ConnectionObserverI> _connections; + IceMX::ObserverFactoryT<DispatchObserverI> _dispatch; + IceMX::ObserverFactoryT<InvocationObserverI> _invocations; + IceMX::ObserverFactoryT<ThreadObserverI> _threads; + IceMX::ObserverFactoryT<IceMX::ObserverI> _connects; + IceMX::ObserverFactoryT<IceMX::ObserverI> _endpointLookups; }; typedef IceUtil::Handle<CommunicatorObserverI> CommunicatorObserverIPtr; |