7#ifndef IceStorm_IceStorm_h_
8#define IceStorm_IceStorm_h_
12#include <Ice/Identity.h>
14#include <IceStorm/Config.h>
16#ifndef ICE_DISABLE_VERSION
17# if ICE_INT_VERSION != 30850
18# error Ice version mismatch: an exact match is required for beta generated code
23# if defined(ICESTORM_API_EXPORTS)
24# define ICESTORM_API ICE_DECLSPEC_EXPORT
26# define ICESTORM_API ICE_DECLSPEC_IMPORT
44 using QoS = std::map<std::string, std::string>;
47 using TopicDict = std::map<std::string, std::optional<TopicPrx>>;
123 std::function<void()>
getNameAsync(std::function<
void(std::string)> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
126 void _iceI_getName(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::string>>&,
const Ice::Context&)
const;
156 void _iceI_getPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const Ice::Context&)
const;
183 void _iceI_getNonReplicatedPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const Ice::Context&)
const;
215 std::function<void()>
subscribeAndGetPublisherAsync(
const QoS& theQoS,
const std::optional<Ice::ObjectPrx>& subscriber, std::function<
void(std::optional<Ice::ObjectPrx>)> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
218 void _iceI_subscribeAndGetPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const QoS&,
const std::optional<Ice::ObjectPrx>&,
const Ice::Context&)
const;
242 std::function<void()>
unsubscribeAsync(
const std::optional<Ice::ObjectPrx>& subscriber, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
245 void _iceI_unsubscribe(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<Ice::ObjectPrx>&,
const Ice::Context&)
const;
270 std::function<void()>
linkAsync(
const std::optional<TopicPrx>& linkTo, std::int32_t cost, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
273 void _iceI_link(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<TopicPrx>&, std::int32_t,
const Ice::Context&)
const;
295 std::function<void()>
unlinkAsync(
const std::optional<TopicPrx>& linkTo, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
298 void _iceI_unlink(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<TopicPrx>&,
const Ice::Context&)
const;
322 void _iceI_getLinkInfoSeq(
const std::shared_ptr<IceInternal::OutgoingAsyncT<LinkInfoSeq>>&,
const Ice::Context&)
const;
346 void _iceI_getSubscribers(
const std::shared_ptr<IceInternal::OutgoingAsyncT<::Ice::IdentitySeq>>&,
const Ice::Context&)
const;
367 void _iceI_destroy(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const Ice::Context&)
const;
374 static
TopicPrx _fromReference(IceInternal::ReferencePtr ref) {
return TopicPrx{std::move(ref)}; }
381 explicit TopicPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
405 ~TopicManagerPrx()
override;
453 std::function<void()>
createAsync(std::string_view name, std::function<
void(std::optional<::IceStorm::TopicPrx>)> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
456 void _iceI_create(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicPrx>>>&, std::string_view,
const Ice::Context&)
const;
481 std::function<void()>
retrieveAsync(std::string_view name, std::function<
void(std::optional<::IceStorm::TopicPrx>)> response, std::function<
void(std::exception_ptr)> exception =
nullptr, std::function<
void(
bool)> sent =
nullptr,
const Ice::Context& context =
Ice::noExplicitContext)
const;
484 void _iceI_retrieve(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicPrx>>>&, std::string_view,
const Ice::Context&)
const;
508 void _iceI_retrieveAll(
const std::shared_ptr<IceInternal::OutgoingAsyncT<TopicDict>>&,
const Ice::Context&)
const;
522 explicit TopicManagerPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
549 ~FinderPrx()
override;
596 void _iceI_getTopicManager(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicManagerPrx>>>&,
const Ice::Context&)
const;
603 static
FinderPrx _fromReference(IceInternal::ReferencePtr ref) {
return FinderPrx{std::move(ref)}; }
610 explicit FinderPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
633 [[nodiscard]] std::tuple<const std::optional<::IceStorm::TopicPrx>&,
const std::string&,
const std::int32_t&>
ice_tuple()
const
669 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
671 return std::tie(
name);
679 [[nodiscard]] const
char*
ice_id() const noexcept override;
688 void _writeImpl(
Ice::OutputStream*) const override;
691 void _readImpl(
Ice::InputStream*) override;
714 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
716 return std::tie(
name);
724 [[nodiscard]] const
char*
ice_id() const noexcept override;
733 void _writeImpl(
Ice::OutputStream*) const override;
736 void _readImpl(
Ice::InputStream*) override;
748 [[nodiscard]] const
char*
ice_id() const noexcept override;
754 void _writeImpl(
Ice::OutputStream*) const override;
757 void _readImpl(
Ice::InputStream*) override;
780 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
790 [[nodiscard]] const
char*
ice_id() const noexcept override;
799 void _writeImpl(
Ice::OutputStream*) const override;
802 void _readImpl(
Ice::InputStream*) override;
825 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
827 return std::tie(
name);
835 [[nodiscard]] const
char*
ice_id() const noexcept override;
844 void _writeImpl(
Ice::OutputStream*) const override;
847 void _readImpl(
Ice::InputStream*) override;
870 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
872 return std::tie(
name);
880 [[nodiscard]] const
char*
ice_id() const noexcept override;
889 void _writeImpl(
Ice::OutputStream*) const override;
892 void _readImpl(
Ice::InputStream*) override;
896 using
Ice::Tuple::operator<;
897 using
Ice::Tuple::operator<=;
898 using
Ice::Tuple::operator>;
899 using
Ice::Tuple::operator>=;
900 using
Ice::Tuple::operator==;
901 using
Ice::Tuple::operator!=;
911 class ICESTORM_API Topic :
public virtual Ice::Object
922 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
930 [[nodiscard]]
virtual std::string getName(
const Ice::Current& current)
const = 0;
940 [[nodiscard]]
virtual std::optional<Ice::ObjectPrx> getPublisher(
const Ice::Current& current)
const = 0;
949 [[nodiscard]]
virtual std::optional<Ice::ObjectPrx> getNonReplicatedPublisher(
const Ice::Current& current)
const = 0;
962 virtual std::optional<Ice::ObjectPrx> subscribeAndGetPublisher(
QoS theQoS, std::optional<Ice::ObjectPrx> subscriber,
const Ice::Current& current) = 0;
971 virtual void unsubscribe(std::optional<Ice::ObjectPrx> subscriber,
const Ice::Current& current) = 0;
981 virtual void link(std::optional<TopicPrx> linkTo, std::int32_t cost,
const Ice::Current& current) = 0;
990 virtual void unlink(std::optional<TopicPrx> linkTo,
const Ice::Current& current) = 0;
1006 [[nodiscard]] virtual ::Ice::IdentitySeq getSubscribers(
const Ice::Current& current)
const = 0;
1029 class ICESTORM_API TopicManager :
public virtual Ice::Object
1040 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
1042 [[nodiscard]] std::string ice_id(
const Ice::Current& current)
const override;
1049 virtual std::optional<TopicPrx> create(std::string name,
const Ice::Current& current) = 0;
1059 virtual std::optional<TopicPrx> retrieve(std::string name,
const Ice::Current& current) = 0;
1074 static const char* ice_staticId()
noexcept;
1086 class ICESTORM_API Finder :
public virtual Ice::Object
1097 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
1099 [[nodiscard]] std::string ice_id(
const Ice::Current& current)
const override;
1104 virtual std::optional<TopicManagerPrx> getTopicManager(
const Ice::Current& current) = 0;
1111 static const char* ice_staticId()
noexcept;
1145 virtual void getNameAsync(std::function<
void(std::string_view returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current)
const = 0;
1157 virtual void getPublisherAsync(std::function<
void(
const std::optional<Ice::ObjectPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current)
const = 0;
1183 virtual void subscribeAndGetPublisherAsync(
QoS theQoS, std::optional<Ice::ObjectPrx> subscriber, std::function<
void(
const std::optional<Ice::ObjectPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1194 virtual void unsubscribeAsync(std::optional<Ice::ObjectPrx> subscriber, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1206 virtual void linkAsync(std::optional<TopicPrx> linkTo, std::int32_t cost, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1217 virtual void unlinkAsync(std::optional<TopicPrx> linkTo, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1237 virtual void getSubscribersAsync(std::function<
void(const ::Ice::IdentitySeq& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current)
const = 0;
1246 virtual void destroyAsync(std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1284 virtual void createAsync(std::string name, std::function<
void(
const std::optional<TopicPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1296 virtual void retrieveAsync(std::string name, std::function<
void(
const std::optional<TopicPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1345 virtual void getTopicManagerAsync(std::function<
void(
const std::optional<TopicManagerPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1365 static constexpr StreamHelperCategory helper = StreamHelperCategoryStruct;
1366 static constexpr int minWireSize = 7;
1367 static constexpr bool fixedLength =
false;
const char * ice_id() const noexcept override
Returns the type ID of this exception.
void ice_throw() const override
Throws this exception.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
The exception that is thrown when attempting to subscribe a proxy for which a subscription already ex...
std::vector< std::string > ice_ids(const Ice::Current ¤t) const override
Gets the Slice interfaces supported by this object as a list of type IDs.
FinderPrx ProxyType
The associated proxy type.
virtual void getTopicManagerAsync(std::function< void(const std::optional< TopicManagerPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Gets a proxy to the associated IceStorm::TopicManagerPrx.
void dispatch(Ice::IncomingRequest &request, std::function< void(Ice::OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
std::string ice_id(const Ice::Current ¤t) const override
Gets the type ID of the most-derived Slice interface supported by this object.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
Provides access to a TopicManagerPrx object via a fixed identity.
virtual void createAsync(std::string name, std::function< void(const std::optional< TopicPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Creates a new topic.
void dispatch(Ice::IncomingRequest &request, std::function< void(Ice::OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
virtual void retrieveAsync(std::string name, std::function< void(const std::optional< TopicPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Retrieves a topic by name.
std::string ice_id(const Ice::Current ¤t) const override
Gets the type ID of the most-derived Slice interface supported by this object.
virtual void retrieveAllAsync(std::function< void(const TopicDict &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Retrieves all topics managed by this topic manager.
TopicManagerPrx ProxyType
The associated proxy type.
std::vector< std::string > ice_ids(const Ice::Current ¤t) const override
Gets the Slice interfaces supported by this object as a list of type IDs.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
Represents an object that manages topics.
virtual void getNonReplicatedPublisherAsync(std::function< void(const std::optional< Ice::ObjectPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t) const =0
Gets a non-replicated proxy to a publisher object for this topic.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
virtual void unlinkAsync(std::optional< TopicPrx > linkTo, std::function< void()> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Destroys a link from this topic to the provided topic.
virtual void getLinkInfoSeqAsync(std::function< void(const LinkInfoSeq &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t) const =0
Gets information on the current links.
virtual void destroyAsync(std::function< void()> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Destroys this topic.
std::vector< std::string > ice_ids(const Ice::Current ¤t) const override
Gets the Slice interfaces supported by this object as a list of type IDs.
virtual void subscribeAndGetPublisherAsync(QoS theQoS, std::optional< Ice::ObjectPrx > subscriber, std::function< void(const std::optional< Ice::ObjectPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Subscribes to this topic.
std::string ice_id(const Ice::Current ¤t) const override
Gets the type ID of the most-derived Slice interface supported by this object.
void dispatch(Ice::IncomingRequest &request, std::function< void(Ice::OutgoingResponse)> sendResponse) override
Dispatches an incoming request to one of the member functions of this generated class,...
virtual void getSubscribersAsync(std::function< void(const ::Ice::IdentitySeq &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t) const =0
Gets the list of subscribers for this topic.
virtual void linkAsync(std::optional< TopicPrx > linkTo, std::int32_t cost, std::function< void()> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Creates a link to another topic.
TopicPrx ProxyType
The associated proxy type.
virtual void getPublisherAsync(std::function< void(const std::optional< Ice::ObjectPrx > &returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t) const =0
Gets a proxy to a publisher object for this topic.
virtual void getNameAsync(std::function< void(std::string_view returnValue)> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t) const =0
Gets the name of this topic.
virtual void unsubscribeAsync(std::optional< Ice::ObjectPrx > subscriber, std::function< void()> response, std::function< void(std::exception_ptr)> exception, const Ice::Current ¤t)=0
Unsubscribes the provided subscriber from this topic.
Represents an IceStorm topic.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this exception.
const char * ice_id() const noexcept override
Returns the type ID of this exception.
void ice_throw() const override
Throws this exception.
std::string reason
The reason for the failure.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
BadQoS(const BadQoS &) noexcept=default
Copy constructor.
BadQoS() noexcept=default
Default constructor.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
FinderPrx(const FinderPrx &other) noexcept
Copy constructor.
FinderPrx(FinderPrx &&other) noexcept
Move constructor.
FinderPrx(const Ice::CommunicatorPtr &communicator, std::string_view proxyString)
Constructs a proxy from a Communicator and a proxy string.
std::function< void()> getTopicManagerAsync(std::function< void(std::optional<::IceStorm::TopicManagerPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated IceStorm::TopicManagerPrx.
std::future< std::optional< TopicManagerPrx > > getTopicManagerAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated IceStorm::TopicManagerPrx.
FinderPrx & operator=(FinderPrx &&rhs) noexcept
Move assignment operator.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
FinderPrx & operator=(const FinderPrx &rhs) noexcept
Copy assignment operator.
std::optional< TopicManagerPrx > getTopicManager(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to the associated IceStorm::TopicManagerPrx.
Provides access to a TopicManagerPrx object via a fixed identity.
LinkExists() noexcept=default
Default constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
LinkExists(const LinkExists &) noexcept=default
Copy constructor.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
const char * ice_id() const noexcept override
Returns the type ID of this exception.
std::string name
The name of the linked topic.
void ice_throw() const override
Throws this exception.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this exception.
const char * ice_id() const noexcept override
Returns the type ID of this exception.
void ice_throw() const override
Throws this exception.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this exception.
std::string name
The name of the link that does not exist.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
NoSuchLink() noexcept=default
Default constructor.
NoSuchLink(const NoSuchLink &) noexcept=default
Copy constructor.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this exception.
void ice_throw() const override
Throws this exception.
std::string name
The name of the topic that does not exist.
NoSuchTopic(const NoSuchTopic &) noexcept=default
Copy constructor.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
NoSuchTopic() noexcept=default
Default constructor.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
const char * ice_id() const noexcept override
Returns the type ID of this exception.
const char * ice_id() const noexcept override
Returns the type ID of this exception.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice exception.
void ice_printFields(std::ostream &os) const override
Outputs the name and value of each field of this instance, including inherited fields,...
std::string name
The name of the topic that already exists.
TopicExists(const TopicExists &) noexcept=default
Copy constructor.
TopicExists() noexcept=default
Default constructor.
void ice_throw() const override
Throws this exception.
std::tuple< const std::string & > ice_tuple() const
Creates a tuple with all the fields of this exception.
TopicManagerPrx & operator=(const TopicManagerPrx &rhs) noexcept
Copy assignment operator.
TopicManagerPrx(TopicManagerPrx &&other) noexcept
Move constructor.
TopicDict retrieveAll(const Ice::Context &context=Ice::noExplicitContext) const
Retrieves all topics managed by this topic manager.
TopicManagerPrx(const TopicManagerPrx &other) noexcept
Copy constructor.
std::function< void()> createAsync(std::string_view name, std::function< void(std::optional<::IceStorm::TopicPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Creates a new topic.
std::optional< TopicPrx > retrieve(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Retrieves a topic by name.
std::function< void()> retrieveAsync(std::string_view name, std::function< void(std::optional<::IceStorm::TopicPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Retrieves a topic by name.
std::future< TopicDict > retrieveAllAsync(const Ice::Context &context=Ice::noExplicitContext) const
Retrieves all topics managed by this topic manager.
std::function< void()> retrieveAllAsync(std::function< void(::IceStorm::TopicDict)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Retrieves all topics managed by this topic manager.
std::future< std::optional< TopicPrx > > createAsync(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Creates a new topic.
std::optional< TopicPrx > create(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Creates a new topic.
TopicManagerPrx(const Ice::CommunicatorPtr &communicator, std::string_view proxyString)
Constructs a proxy from a Communicator and a proxy string.
std::future< std::optional< TopicPrx > > retrieveAsync(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Retrieves a topic by name.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
TopicManagerPrx & operator=(TopicManagerPrx &&rhs) noexcept
Move assignment operator.
Represents an object that manages topics.
void link(const std::optional< TopicPrx > &linkTo, std::int32_t cost, const Ice::Context &context=Ice::noExplicitContext) const
Creates a link to another topic.
void unsubscribe(const std::optional< Ice::ObjectPrx > &subscriber, const Ice::Context &context=Ice::noExplicitContext) const
Unsubscribes the provided subscriber from this topic.
std::future< LinkInfoSeq > getLinkInfoSeqAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets information on the current links.
std::function< void()> getNonReplicatedPublisherAsync(std::function< void(std::optional< Ice::ObjectPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets a non-replicated proxy to a publisher object for this topic.
std::function< void()> getSubscribersAsync(std::function< void(::Ice::IdentitySeq)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets the list of subscribers for this topic.
TopicPrx(const Ice::CommunicatorPtr &communicator, std::string_view proxyString)
Constructs a proxy from a Communicator and a proxy string.
std::optional< Ice::ObjectPrx > subscribeAndGetPublisher(const QoS &theQoS, const std::optional< Ice::ObjectPrx > &subscriber, const Ice::Context &context=Ice::noExplicitContext) const
Subscribes to this topic.
std::future< std::optional< Ice::ObjectPrx > > subscribeAndGetPublisherAsync(const QoS &theQoS, const std::optional< Ice::ObjectPrx > &subscriber, const Ice::Context &context=Ice::noExplicitContext) const
Subscribes to this topic.
std::function< void()> linkAsync(const std::optional< TopicPrx > &linkTo, std::int32_t cost, std::function< void()> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Creates a link to another topic.
std::function< void()> destroyAsync(std::function< void()> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Destroys this topic.
TopicPrx(TopicPrx &&other) noexcept
Move constructor.
TopicPrx & operator=(TopicPrx &&rhs) noexcept
Move assignment operator.
std::future< void > unsubscribeAsync(const std::optional< Ice::ObjectPrx > &subscriber, const Ice::Context &context=Ice::noExplicitContext) const
Unsubscribes the provided subscriber from this topic.
std::future<::Ice::IdentitySeq > getSubscribersAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets the list of subscribers for this topic.
LinkInfoSeq getLinkInfoSeq(const Ice::Context &context=Ice::noExplicitContext) const
Gets information on the current links.
std::optional< Ice::ObjectPrx > getPublisher(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to a publisher object for this topic.
std::future< void > linkAsync(const std::optional< TopicPrx > &linkTo, std::int32_t cost, const Ice::Context &context=Ice::noExplicitContext) const
Creates a link to another topic.
TopicPrx & operator=(const TopicPrx &rhs) noexcept
Copy assignment operator.
std::function< void()> getPublisherAsync(std::function< void(std::optional< Ice::ObjectPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to a publisher object for this topic.
std::future< void > destroyAsync(const Ice::Context &context=Ice::noExplicitContext) const
Destroys this topic.
std::function< void()> getLinkInfoSeqAsync(std::function< void(::IceStorm::LinkInfoSeq)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets information on the current links.
std::function< void()> unsubscribeAsync(const std::optional< Ice::ObjectPrx > &subscriber, std::function< void()> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Unsubscribes the provided subscriber from this topic.
std::optional< Ice::ObjectPrx > getNonReplicatedPublisher(const Ice::Context &context=Ice::noExplicitContext) const
Gets a non-replicated proxy to a publisher object for this topic.
std::function< void()> subscribeAndGetPublisherAsync(const QoS &theQoS, const std::optional< Ice::ObjectPrx > &subscriber, std::function< void(std::optional< Ice::ObjectPrx >)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Subscribes to this topic.
std::future< std::optional< Ice::ObjectPrx > > getNonReplicatedPublisherAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets a non-replicated proxy to a publisher object for this topic.
void destroy(const Ice::Context &context=Ice::noExplicitContext) const
Destroys this topic.
std::function< void()> unlinkAsync(const std::optional< TopicPrx > &linkTo, std::function< void()> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Destroys a link from this topic to the provided topic.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
std::function< void()> getNameAsync(std::function< void(std::string)> response, std::function< void(std::exception_ptr)> exception=nullptr, std::function< void(bool)> sent=nullptr, const Ice::Context &context=Ice::noExplicitContext) const
Gets the name of this topic.
std::future< void > unlinkAsync(const std::optional< TopicPrx > &linkTo, const Ice::Context &context=Ice::noExplicitContext) const
Destroys a link from this topic to the provided topic.
std::string getName(const Ice::Context &context=Ice::noExplicitContext) const
Gets the name of this topic.
::Ice::IdentitySeq getSubscribers(const Ice::Context &context=Ice::noExplicitContext) const
Gets the list of subscribers for this topic.
std::future< std::string > getNameAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets the name of this topic.
TopicPrx(const TopicPrx &other) noexcept
Copy constructor.
std::future< std::optional< Ice::ObjectPrx > > getPublisherAsync(const Ice::Context &context=Ice::noExplicitContext) const
Gets a proxy to a publisher object for this topic.
void unlink(const std::optional< TopicPrx > &linkTo, const Ice::Context &context=Ice::noExplicitContext) const
Destroys a link from this topic to the provided topic.
Represents an IceStorm topic.
Represents a request received by a connection.
ObjectPrx & operator=(const ObjectPrx &rhs) noexcept=default
Copy assignment operator.
The base class for all Ice proxies.
Object() noexcept=default
Default constructor.
The base class for servants.
Represents the response to an incoming request.
Provides typed proxy functions.
Abstract base class for all Ice exceptions defined in Slice.
std::shared_ptr< TopicManager > TopicManagerPtr
A shared pointer to a TopicManager.
std::map< std::string, std::optional< TopicPrx > > TopicDict
A dictionary of topic name to topic proxy.
std::shared_ptr< AsyncTopic > AsyncTopicPtr
A shared pointer to an AsyncTopic.
std::vector< LinkInfo > LinkInfoSeq
A sequence of LinkInfo objects.
std::shared_ptr< Topic > TopicPtr
A shared pointer to a Topic.
std::shared_ptr< AsyncFinder > AsyncFinderPtr
A shared pointer to an AsyncFinder.
std::shared_ptr< Finder > FinderPtr
A shared pointer to a Finder.
std::map< std::string, std::string > QoS
Quality of service parameters.
std::ostream & operator<<(std::ostream &os, const LinkInfo &value)
Outputs the description of a LinkInfo to a stream, including all its fields.
std::shared_ptr< AsyncTopicManager > AsyncTopicManagerPtr
A shared pointer to an AsyncTopicManager.
Lightweight publish/subscribe framework, available for all Ice language mappings.
std::vector< Identity > IdentitySeq
A sequence of identities.
std::shared_ptr< Communicator > CommunicatorPtr
A shared pointer to a Communicator.
const Context noExplicitContext
Marker value used to indicate that no explicit request context was passed to a proxy invocation.
std::map< std::string, std::string, std::less<> > Context
Represents additional information carried by an Ice request.
std::int32_t cost
The cost of traversing this link.
void ice_printFields(std::ostream &os) const
Outputs the name and value of each field of this instance to the stream.
std::optional<::IceStorm::TopicPrx > theTopic
The linked topic proxy. This proxy is never null.
std::tuple< const std::optional<::IceStorm::TopicPrx > &, const std::string &, const std::int32_t & > ice_tuple() const
Creates a tuple with all the fields of this struct.
std::string name
The name of the linked topic.
Information about a topic link.
Provides information about an incoming request being dispatched.