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 != 30950
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>>;
133 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;
136 void _iceI_getName(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::string>>&,
const Ice::Context&)
const;
175 void _iceI_getPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const Ice::Context&)
const;
211 void _iceI_getNonReplicatedPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const Ice::Context&)
const;
252 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;
255 void _iceI_subscribeAndGetPublisher(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<Ice::ObjectPrx>>>&,
const QoS&,
const std::optional<Ice::ObjectPrx>&,
const Ice::Context&)
const;
292 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;
295 void _iceI_unsubscribe(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<Ice::ObjectPrx>&,
const Ice::Context&)
const;
329 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;
332 void _iceI_link(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<TopicPrx>&, std::int32_t,
const Ice::Context&)
const;
363 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;
366 void _iceI_unlink(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const std::optional<TopicPrx>&,
const Ice::Context&)
const;
399 void _iceI_getLinkInfoSeq(
const std::shared_ptr<IceInternal::OutgoingAsyncT<LinkInfoSeq>>&,
const Ice::Context&)
const;
432 void _iceI_getSubscribers(
const std::shared_ptr<IceInternal::OutgoingAsyncT<::Ice::IdentitySeq>>&,
const Ice::Context&)
const;
466 void _iceI_destroy(
const std::shared_ptr<IceInternal::OutgoingAsyncT<void>>&,
const Ice::Context&)
const;
473 static
TopicPrx _fromReference(IceInternal::ReferencePtr ref) {
return TopicPrx{std::move(ref)}; }
480 explicit TopicPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
505 ~TopicManagerPrx()
override;
562 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;
565 void _iceI_create(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicPrx>>>&, std::string_view,
const Ice::Context&)
const;
599 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;
602 void _iceI_retrieve(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicPrx>>>&, std::string_view,
const Ice::Context&)
const;
638 std::function<void()>
createOrRetrieveAsync(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;
641 void _iceI_createOrRetrieve(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicPrx>>>&, std::string_view,
const Ice::Context&)
const;
674 void _iceI_retrieveAll(
const std::shared_ptr<IceInternal::OutgoingAsyncT<TopicDict>>&,
const Ice::Context&)
const;
688 explicit TopicManagerPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
716 ~FinderPrx()
override;
772 void _iceI_getTopicManager(
const std::shared_ptr<IceInternal::OutgoingAsyncT<std::optional<TopicManagerPrx>>>&,
const Ice::Context&)
const;
779 static
FinderPrx _fromReference(IceInternal::ReferencePtr ref) {
return FinderPrx{std::move(ref)}; }
786 explicit FinderPrx(IceInternal::ReferencePtr&& ref) :
Ice::ObjectPrx{std::move(ref)}
810 [[nodiscard]] std::tuple<const std::optional<::IceStorm::TopicPrx>&,
const std::string&,
const std::int32_t&>
ice_tuple()
const
847 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
849 return std::tie(
name);
857 [[nodiscard]] const
char*
ice_id() const noexcept override;
866 void _writeImpl(
Ice::OutputStream*) const override;
869 void _readImpl(
Ice::InputStream*) override;
893 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
895 return std::tie(
name);
903 [[nodiscard]] const
char*
ice_id() const noexcept override;
912 void _writeImpl(
Ice::OutputStream*) const override;
915 void _readImpl(
Ice::InputStream*) override;
928 [[nodiscard]] const
char*
ice_id() const noexcept override;
934 void _writeImpl(
Ice::OutputStream*) const override;
937 void _readImpl(
Ice::InputStream*) override;
961 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
971 [[nodiscard]] const
char*
ice_id() const noexcept override;
980 void _writeImpl(
Ice::OutputStream*) const override;
983 void _readImpl(
Ice::InputStream*) override;
1007 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
1009 return std::tie(
name);
1017 [[nodiscard]] const
char*
ice_id() const noexcept override;
1026 void _writeImpl(
Ice::OutputStream*) const override;
1029 void _readImpl(
Ice::InputStream*) override;
1053 [[nodiscard]] std::tuple<const std::string&>
ice_tuple()
const
1055 return std::tie(
name);
1063 [[nodiscard]] const
char*
ice_id() const noexcept override;
1072 void _writeImpl(
Ice::OutputStream*) const override;
1075 void _readImpl(
Ice::InputStream*) override;
1079 using
Ice::Tuple::operator<;
1080 using
Ice::Tuple::operator<=;
1081 using
Ice::Tuple::operator>;
1082 using
Ice::Tuple::operator>=;
1083 using
Ice::Tuple::operator==;
1084 using
Ice::Tuple::operator!=;
1095 class ICESTORM_API Topic :
public virtual Ice::Object
1106 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
1114 [[nodiscard]]
virtual std::string getName(
const Ice::Current& current)
const = 0;
1124 [[nodiscard]]
virtual std::optional<Ice::ObjectPrx> getPublisher(
const Ice::Current& current)
const = 0;
1133 [[nodiscard]]
virtual std::optional<Ice::ObjectPrx> getNonReplicatedPublisher(
const Ice::Current& current)
const = 0;
1146 virtual std::optional<Ice::ObjectPrx> subscribeAndGetPublisher(
QoS theQoS, std::optional<Ice::ObjectPrx> subscriber,
const Ice::Current& current) = 0;
1155 virtual void unsubscribe(std::optional<Ice::ObjectPrx> subscriber,
const Ice::Current& current) = 0;
1165 virtual void link(std::optional<TopicPrx> linkTo, std::int32_t cost,
const Ice::Current& current) = 0;
1174 virtual void unlink(std::optional<TopicPrx> linkTo,
const Ice::Current& current) = 0;
1190 [[nodiscard]] virtual ::Ice::IdentitySeq getSubscribers(
const Ice::Current& current)
const = 0;
1214 class ICESTORM_API TopicManager :
public virtual Ice::Object
1225 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
1227 [[nodiscard]] std::string ice_id(
const Ice::Current& current)
const override;
1234 virtual std::optional<TopicPrx> create(std::string name,
const Ice::Current& current) = 0;
1244 virtual std::optional<TopicPrx> retrieve(std::string name,
const Ice::Current& current) = 0;
1254 virtual std::optional<TopicPrx> createOrRetrieve(std::string name,
const Ice::Current& current) = 0;
1269 static const char* ice_staticId()
noexcept;
1282 class ICESTORM_API Finder :
public virtual Ice::Object
1293 [[nodiscard]] std::vector<std::string> ice_ids(
const Ice::Current& current)
const override;
1295 [[nodiscard]] std::string ice_id(
const Ice::Current& current)
const override;
1300 virtual std::optional<TopicManagerPrx> getTopicManager(
const Ice::Current& current) = 0;
1307 static const char* ice_staticId()
noexcept;
1342 virtual void getNameAsync(std::function<
void(std::string_view returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current)
const = 0;
1354 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;
1380 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;
1391 virtual void unsubscribeAsync(std::optional<Ice::ObjectPrx> subscriber, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1403 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;
1414 virtual void unlinkAsync(std::optional<TopicPrx> linkTo, std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1434 virtual void getSubscribersAsync(std::function<
void(const ::Ice::IdentitySeq& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current)
const = 0;
1443 virtual void destroyAsync(std::function<
void()> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1482 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;
1494 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;
1506 virtual void createOrRetrieveAsync(std::string name, std::function<
void(
const std::optional<TopicPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1556 virtual void getTopicManagerAsync(std::function<
void(
const std::optional<TopicManagerPrx>& returnValue)> response, std::function<
void(std::exception_ptr)> exception,
const Ice::Current& current) = 0;
1576 static constexpr StreamHelperCategory helper = StreamHelperCategoryStruct;
1577 static constexpr int minWireSize = 7;
1578 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 Slice 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 Slice type IDs.
static const char * ice_staticId() noexcept
Gets the type ID of the associated Slice interface.
virtual void createOrRetrieveAsync(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 with the given name, or retrieves the existing topic with this name if it already...
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 Slice 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.
std::optional< TopicPrx > createOrRetrieve(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Creates a new topic with the given name, or retrieves the existing topic with this name if it already...
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 > > createOrRetrieveAsync(std::string_view name, const Ice::Context &context=Ice::noExplicitContext) const
Creates a new topic with the given name, or retrieves the existing topic with this name if it already...
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.
std::function< void()> createOrRetrieveAsync(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 with the given name, or retrieves the existing topic with this name if it already...
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 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.