15#include <Ice/ObserverHelper.h>
49 void reap(
const Ice::IdentitySeq&);
58 Ice::Identity
id()
const;
75 void removeSubscribers(
const Ice::IdentitySeq&);
80 const Ice::ObjectPrx _publisherReplicaProxy;
82 const std::string _name;
83 const Ice::Identity _id;
85 IceInternal::ObserverHelperT<IceStorm::Instrumentation::TopicObserver> _observer;
87 Ice::ObjectPrx _publisherPrx;
90 Ice::ObjectPtr _servant;
93 IceUtil::Mutex _subscribersMutex;
102 std::vector<SubscriberPtr> _subscribers;
LinkInfoSeq getLinkInfoSeq() const
void publish(bool, const EventDataSeq &)
std::string getName() const
void update(const SubscriberRecordSeq &)
void observerDestroyTopic(const IceStormElection::LogUpdate &)
void unsubscribe(const Ice::ObjectPrx &)
Ice::IdentitySeq getSubscribers() const
void link(const TopicPrx &, Ice::Int)
Ice::ObjectPrx getNonReplicatedPublisher() const
Ice::ObjectPtr getServant() const
void reap(const Ice::IdentitySeq &)
Ice::ObjectPrx getPublisher() const
TopicLinkPrx getLinkProxy()
TopicImpl(const PersistentInstancePtr &, const std::string &, const Ice::Identity &, const SubscriberRecordSeq &)
Ice::ObjectPrx subscribeAndGetPublisher(const QoS &, const Ice::ObjectPrx &)
void updateSubscriberObservers()
void observerRemoveSubscriber(const IceStormElection::LogUpdate &, const Ice::IdentitySeq &)
IceStormElection::TopicContent getContent() const
void unlink(const TopicPrx &)
void observerAddSubscriber(const IceStormElection::LogUpdate &, const SubscriberRecord &)
IceDB::Dbi< IceStorm::SubscriberRecordKey, IceStorm::SubscriberRecord, IceDB::IceContext, Ice::OutputStream > SubscriberMap
IceUtil::Handle< Subscriber > SubscriberPtr
::IceInternal::ProxyHandle<::IceProxy::IceStorm::Topic > TopicPrx
std::deque<::IceStorm::EventDataPtr > EventDataSeq
A sequence of EventData.
::std::vector<::IceStorm::SubscriberRecord > SubscriberRecordSeq
IceUtil::Handle< PersistentInstance > PersistentInstancePtr
IceUtil::Handle< TopicImpl > TopicImplPtr
::IceInternal::ProxyHandle<::IceProxy::IceStorm::TopicLink > TopicLinkPrx
IceDB::Dbi< std::string, IceStormElection::LogUpdate, IceDB::IceContext, Ice::OutputStream > LLUMap
A struct used for marking the last log update.
Used to store persistent information for persistent subscribers.