summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/InstrumentationI.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-10-12 11:34:53 +0200
commit23c1e3b603a9d902593ffe9f99562fcda3af1589 (patch)
tree60ea7cdc0da5a9676ca12350ac82b069cc86eb5e /cpp/src/Ice/InstrumentationI.h
parent.NET demo project updates (diff)
downloadice-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.h62
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;