// // Copyright (c) ZeroC, Inc. All rights reserved. // #ifndef INSTRUMENTATION_I_H #define INSTRUMENTATION_I_H #include #include #include namespace IceStorm { class TopicObserverI final : public IceStorm::Instrumentation::TopicObserver, public IceMX::ObserverT { public: void published() override; void forwarded() override; }; class SubscriberObserverI final : public IceStorm::Instrumentation::SubscriberObserver, public IceMX::ObserverT { public: void queued(int) override; void outstanding(int) override; void delivered(int) override; }; class TopicManagerObserverI final : public IceStorm::Instrumentation::TopicManagerObserver { public: TopicManagerObserverI(const std::shared_ptr&); void setObserverUpdater(const std::shared_ptr&) override; std::shared_ptr getTopicObserver(const std::string&, const std::string&, const std::shared_ptr&) override; std::shared_ptr getSubscriberObserver(const std::string &, const std::string &, const std::shared_ptr &, const IceStorm::QoS &, const std::shared_ptr &, IceStorm::Instrumentation::SubscriberState, const std::shared_ptr&) override; private: const std::shared_ptr _metrics; IceMX::ObserverFactoryT _topics; IceMX::ObserverFactoryT _subscribers; }; } #endif