Ice 3.7 C++11 API Reference
Public Types | Public Member Functions | Static Public Member Functions | List of all members
IceStorm::Topic Class Referenceabstract

Publishers publish information on a particular topic. More...

#include <IceStorm/IceStorm.h>

Inheritance diagram for IceStorm::Topic:
Inheritance graph
[legend]
Collaboration diagram for IceStorm::Topic:
Collaboration graph
[legend]

Public Types

using ProxyType = TopicPrx
 

Public Member Functions

virtual void destroy (const ::Ice::Current &current)=0
 Destroy the topic. More...
 
virtual LinkInfoSeq getLinkInfoSeq (const ::Ice::Current &current) const =0
 Retrieve information on the current links. More...
 
virtual ::std::string getName (const ::Ice::Current &current) const =0
 Get the name of this topic. More...
 
virtual ::std::shared_ptr<::Ice::ObjectPrxgetNonReplicatedPublisher (const ::Ice::Current &current) const =0
 Get a non-replicated proxy to a publisher object for this topic. More...
 
virtual ::std::shared_ptr<::Ice::ObjectPrxgetPublisher (const ::Ice::Current &current) const =0
 Get a proxy to a publisher object for this topic. More...
 
virtual ::Ice::IdentitySeq getSubscribers (const ::Ice::Current &current) const =0
 Retrieve the list of subscribers for this topic. More...
 
virtual ::std::string ice_id (const ::Ice::Current &current) const override
 Obtains a Slice type ID representing the most-derived interface supported by this object. More...
 
virtual ::std::vector<::std::string > ice_ids (const ::Ice::Current &current) const override
 Obtains a list of the Slice type IDs representing the interfaces supported by this object. More...
 
virtual bool ice_isA (::std::string id, const ::Ice::Current &current) const override
 Determines whether this object supports an interface with the given Slice type ID. More...
 
virtual void link (::std::shared_ptr< TopicPrx > linkTo, int cost, const ::Ice::Current &current)=0
 Create a link to the given topic. More...
 
virtual ::std::shared_ptr<::Ice::ObjectPrxsubscribeAndGetPublisher (QoS theQoS, ::std::shared_ptr<::Ice::ObjectPrx > subscriber, const ::Ice::Current &current)=0
 Subscribe with the given qos to this topic. More...
 
virtual void unlink (::std::shared_ptr< TopicPrx > linkTo, const ::Ice::Current &current)=0
 Destroy the link from this topic to the given topic linkTo. More...
 
virtual void unsubscribe (::std::shared_ptr<::Ice::ObjectPrx > subscriber, const ::Ice::Current &current)=0
 Unsubscribe the given subscriber. More...
 
- Public Member Functions inherited from Ice::Object
virtual bool ice_dispatch (Ice::Request &request, std::function< bool()> response=nullptr, std::function< bool(std::exception_ptr)> error=nullptr)
 Dispatches an invocation to a servant. More...
 
virtual std::string ice_id (const Current &current) const
 Returns the Slice type ID of the most-derived interface supported by this object. More...
 
virtual std::vector< std::string > ice_ids (const Current &current) const
 Returns the Slice type IDs of the interfaces supported by this object. More...
 
virtual bool ice_isA (std::string s, const Current &current) const
 Tests whether this object supports a specific Slice interface. More...
 
virtual void ice_ping (const Current &current) const
 Tests whether this object can be reached. More...
 
virtual ~Object ()=default
 

Static Public Member Functions

static const ::std::string & ice_staticId ()
 Obtains the Slice type ID corresponding to this class. More...
 
- Static Public Member Functions inherited from Ice::Object
static const std::string & ice_staticId ()
 Obtains the Slice type ID of this type. More...
 

Detailed Description

Publishers publish information on a particular topic.

A topic logically represents a type.

See also
TopicManager

Member Typedef Documentation

◆ ProxyType

Member Function Documentation

◆ destroy()

virtual void IceStorm::Topic::destroy ( const ::Ice::Current current)
pure virtual

Destroy the topic.

Parameters
currentThe Current object for the invocation.

◆ getLinkInfoSeq()

virtual LinkInfoSeq IceStorm::Topic::getLinkInfoSeq ( const ::Ice::Current current) const
pure virtual

Retrieve information on the current links.

Parameters
currentThe Current object for the invocation.
Returns
A sequence of LinkInfo objects.

◆ getName()

virtual ::std::string IceStorm::Topic::getName ( const ::Ice::Current current) const
pure virtual

Get the name of this topic.

Parameters
currentThe Current object for the invocation.
Returns
The name of the topic.
See also
TopicManager::create

◆ getNonReplicatedPublisher()

virtual ::std::shared_ptr<::Ice::ObjectPrx> IceStorm::Topic::getNonReplicatedPublisher ( const ::Ice::Current current) const
pure virtual

Get a non-replicated proxy to a publisher object for this topic.

To publish data to a topic, the publisher calls getPublisher and then casts to the topic type. An unchecked cast must be used on this proxy.

Parameters
currentThe Current object for the invocation.
Returns
A proxy to publish data on this topic.

◆ getPublisher()

virtual ::std::shared_ptr<::Ice::ObjectPrx> IceStorm::Topic::getPublisher ( const ::Ice::Current current) const
pure virtual

Get a proxy to a publisher object for this topic.

To publish data to a topic, the publisher calls getPublisher and then casts to the topic type. An unchecked cast must be used on this proxy. If a replicated IceStorm deployment is used this call may return a replicated proxy.

Parameters
currentThe Current object for the invocation.
Returns
A proxy to publish data on this topic.

◆ getSubscribers()

virtual ::Ice::IdentitySeq IceStorm::Topic::getSubscribers ( const ::Ice::Current current) const
pure virtual

Retrieve the list of subscribers for this topic.

Parameters
currentThe Current object for the invocation.
Returns
The sequence of Ice identities for the subscriber objects.

◆ ice_id()

virtual ::std::string IceStorm::Topic::ice_id ( const ::Ice::Current current) const
override

Obtains a Slice type ID representing the most-derived interface supported by this object.

Parameters
currentThe Current object for the invocation.
Returns
A fully-scoped type ID.

◆ ice_ids()

virtual ::std::vector<::std::string> IceStorm::Topic::ice_ids ( const ::Ice::Current current) const
override

Obtains a list of the Slice type IDs representing the interfaces supported by this object.

Parameters
currentThe Current object for the invocation.
Returns
A list of fully-scoped type IDs.

◆ ice_isA()

virtual bool IceStorm::Topic::ice_isA ( ::std::string  id,
const ::Ice::Current current 
) const
overridevirtual

Determines whether this object supports an interface with the given Slice type ID.

Parameters
idThe fully-scoped Slice type ID.
currentThe Current object for the invocation.
Returns
True if this object supports the interface, false, otherwise.

◆ ice_staticId()

static const ::std::string& IceStorm::Topic::ice_staticId ( )
static

Obtains the Slice type ID corresponding to this class.

Returns
A fully-scoped type ID.

◆ link()

virtual void IceStorm::Topic::link ( ::std::shared_ptr< TopicPrx linkTo,
int  cost,
const ::Ice::Current current 
)
pure virtual

Create a link to the given topic.

All events originating on this topic will also be sent to linkTo.

Parameters
linkToThe topic to link to.
costThe cost to the linked topic.
currentThe Current object for the invocation.
Exceptions
IceStorm::LinkExistsRaised if a link to the same topic already exists.

◆ subscribeAndGetPublisher()

virtual ::std::shared_ptr<::Ice::ObjectPrx> IceStorm::Topic::subscribeAndGetPublisher ( QoS  theQoS,
::std::shared_ptr<::Ice::ObjectPrx subscriber,
const ::Ice::Current current 
)
pure virtual

Subscribe with the given qos to this topic.

A per-subscriber publisher object is returned.

Parameters
theQoSThe quality of service parameters for this subscription.
subscriberThe subscriber's proxy.
currentThe Current object for the invocation.
Returns
The per-subscriber publisher object.
Exceptions
IceStorm::AlreadySubscribedRaised if the subscriber object is already subscribed.
IceStorm::BadQoSRaised if the requested quality of service is unavailable or invalid.
IceStorm::InvalidSubscriberRaised if the subscriber object is null.
See also
unsubscribe

◆ unlink()

virtual void IceStorm::Topic::unlink ( ::std::shared_ptr< TopicPrx linkTo,
const ::Ice::Current current 
)
pure virtual

Destroy the link from this topic to the given topic linkTo.

Parameters
linkToThe topic to destroy the link to.
currentThe Current object for the invocation.
Exceptions
IceStorm::NoSuchLinkRaised if a link to the topic does not exist.

◆ unsubscribe()

virtual void IceStorm::Topic::unsubscribe ( ::std::shared_ptr<::Ice::ObjectPrx subscriber,
const ::Ice::Current current 
)
pure virtual

Unsubscribe the given subscriber.

Parameters
subscriberThe proxy of an existing subscriber.
currentThe Current object for the invocation.
See also
subscribeAndGetPublisher

The documentation for this class was generated from the following file: