summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/InstrumentationI.h
diff options
context:
space:
mode:
authorBenoit Foucher <benoit@zeroc.com>2012-09-11 13:02:32 +0200
committerBenoit Foucher <benoit@zeroc.com>2012-09-11 13:02:32 +0200
commitcedcb5c1047b94890c80a2d71afb808898233b9b (patch)
tree637b78cd06171738a3300043b0af43b43d17b0dc /cpp/src/Ice/InstrumentationI.h
parentMerge remote-tracking branch 'origin/encoding11' into withoutsync (diff)
downloadice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.bz2
ice-cedcb5c1047b94890c80a2d71afb808898233b9b.tar.xz
ice-cedcb5c1047b94890c80a2d71afb808898233b9b.zip
Support for IceBox services MetricsAdmin and IceStorm metrics
Diffstat (limited to 'cpp/src/Ice/InstrumentationI.h')
-rw-r--r--cpp/src/Ice/InstrumentationI.h102
1 files changed, 102 insertions, 0 deletions
diff --git a/cpp/src/Ice/InstrumentationI.h b/cpp/src/Ice/InstrumentationI.h
new file mode 100644
index 00000000000..cc1390d442c
--- /dev/null
+++ b/cpp/src/Ice/InstrumentationI.h
@@ -0,0 +1,102 @@
+// **********************************************************************
+//
+// 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 ICE_INSTRUMENTATION_I_H
+#define ICE_INSTRUMENTATION_I_H
+
+#include <Ice/MetricsObserverI.h>
+
+namespace IceMX
+{
+
+class ConnectionObserverI : public Ice::Instrumentation::ConnectionObserver, public ObserverT<ConnectionMetrics>
+{
+public:
+
+ virtual void detach();
+
+ virtual void stateChanged(Ice::Instrumentation::ConnectionState, Ice::Instrumentation::ConnectionState);
+ virtual void sentBytes(Ice::Int);
+ virtual void receivedBytes(Ice::Int);
+};
+
+class ThreadObserverI : public Ice::Instrumentation::ThreadObserver, public ObserverT<ThreadMetrics>
+{
+public:
+
+ virtual void stateChanged(Ice::Instrumentation::ThreadState, Ice::Instrumentation::ThreadState);
+};
+
+class InvocationObserverI : public Ice::Instrumentation::InvocationObserver, public ObserverT<InvocationMetrics>
+{
+public:
+
+ virtual void retried();
+
+ virtual Ice::Instrumentation::ObserverPtr getRemoteObserver(const Ice::ConnectionInfoPtr&, const Ice::EndpointPtr&);
+
+
+private:
+
+ friend class CommunicatorObserverI;
+ void initLogger(const Ice::LoggerPtr&);
+
+ const Ice::LoggerPtr _logger;
+};
+
+class CommunicatorObserverI : public Ice::Instrumentation::CommunicatorObserver
+{
+public:
+
+ CommunicatorObserverI(const MetricsAdminIPtr&);
+
+ virtual void setObserverUpdater(const Ice::Instrumentation::ObserverUpdaterPtr&);
+
+ virtual Ice::Instrumentation::ObserverPtr getConnectionEstablishmentObserver(const Ice::EndpointPtr&,
+ const std::string&);
+
+ virtual Ice::Instrumentation::ObserverPtr getEndpointLookupObserver(const Ice::EndpointPtr&);
+
+ virtual Ice::Instrumentation::ConnectionObserverPtr
+ getConnectionObserver(const Ice::ConnectionInfoPtr&,
+ const Ice::EndpointPtr&,
+ Ice::Instrumentation::ConnectionState,
+ const Ice::Instrumentation::ConnectionObserverPtr&);
+
+ virtual Ice::Instrumentation::ThreadObserverPtr getThreadObserver(const std::string&, const std::string&,
+ Ice::Instrumentation::ThreadState,
+ const Ice::Instrumentation::ThreadObserverPtr&);
+
+ virtual Ice::Instrumentation::InvocationObserverPtr getInvocationObserverWithContext(const Ice::ObjectPrx&,
+ const std::string&,
+ const Ice::Context&);
+
+ virtual Ice::Instrumentation::InvocationObserverPtr getInvocationObserver(const Ice::ObjectPrx&,
+ const std::string&);
+
+ virtual Ice::Instrumentation::ObserverPtr getDispatchObserver(const Ice::Current&);
+
+ const MetricsAdminIPtr& getMetricsAdmin() const;
+
+private:
+
+ const MetricsAdminIPtr _metrics;
+
+ ObserverFactoryT<ConnectionObserverI> _connections;
+ ObserverFactoryT<ObserverI> _dispatch;
+ ObserverFactoryT<InvocationObserverI> _invocations;
+ ObserverFactoryT<ThreadObserverI> _threads;
+ ObserverFactoryT<ObserverI> _connects;
+ ObserverFactoryT<ObserverI> _endpointLookups;
+};
+typedef IceUtil::Handle<CommunicatorObserverI> CommunicatorObserverIPtr;
+
+};
+
+#endif