diff options
author | Benoit Foucher <benoit@zeroc.com> | 2012-09-11 13:02:32 +0200 |
---|---|---|
committer | Benoit Foucher <benoit@zeroc.com> | 2012-09-11 13:02:32 +0200 |
commit | cedcb5c1047b94890c80a2d71afb808898233b9b (patch) | |
tree | 637b78cd06171738a3300043b0af43b43d17b0dc /cpp/src/Ice/InstrumentationI.h | |
parent | Merge remote-tracking branch 'origin/encoding11' into withoutsync (diff) | |
download | ice-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.h | 102 |
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 |