// // Copyright (c) ZeroC, Inc. All rights reserved. // #ifndef INSTRUMENTATION_I_H #define INSTRUMENTATION_I_H #include #include #include namespace Glacier2 { class SessionObserverI final : public Glacier2::Instrumentation::SessionObserver, public IceMX::ObserverT { public: void forwarded(bool) override; void queued(bool) override; void overridden(bool) override; void routingTableSize(int) override; }; class RouterObserverI final : public Glacier2::Instrumentation::RouterObserver { public: RouterObserverI(std::shared_ptr, const std::string&); void setObserverUpdater(const std::shared_ptr&) override; std::shared_ptr getSessionObserver(const std::string&, const std::shared_ptr&, int, const std::shared_ptr&) override; private: const std::shared_ptr _metrics; const std::string _instanceName; IceMX::ObserverFactoryT _sessions; }; } #endif