OpenHiva::TopicOptions
TopicOptions is required when you invoke OpenHiva::Node::CreatePublisher and OpenHiva::Node::CreateSubscriber. TopicOptions is a set of topic message attribute values, including the topic communication mode and attribute configuration in each communication mode.
In addition to configuring parameters using YAML files, you can use a series of Build interfaces to configure parameters. The definition is as follows:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | namespace OpenHiva { using TransportOptions = std::unordered_map<std::string, std::string>; class TopicOptions { public: TopicOptions(); ~TopicOptions(); template <typename M> TopicOptions &BuildMessageTraits(); // In SHM communication mode, the value of maxMsgSize cannot exceed 30000000 bytes. TopicOptions &BuildShmOptions(const uint32_t maxMsgSize, const uint32_t blockNum); TopicOptions &BuildQueueOptions(const uint32_t queueSize, const bool overwrite = false, const bool queueFCFlag = false, const uint16_t queueTTL = 0U); TopicOptions &BuildGroupName(const std::string &groupName); TopicOptions &BuildTransportOptions(const std::string &transType, const TransportOptions &opts); TopicOptions &BuildTopicName(const std::string &topicName); template <typename M, enable_if_t_self_topic_options<!is_shared_ptr_topic_options<M>::value, int> = 0> TopicOptions &BuildCallback(const std::function<void(M)> &callback); // Set the callback function. In this template function, M must be a common message type. template <typename M, enable_if_t_self_topic_options<is_shared_ptr_topic_options<M>::value, int> = 0> TopicOptions &BuildCallback(const std::function<void(M)> &callback); // Set the callback function. In this template function, M must be a std::shared_ptr message type. const std::vector<std::string> &GetTransportTypes(); const std::unordered_map<std::string, OpenHiva::TransportOptions> &GetTransportOptions() const; Hiva::AdvertiseOptions CreateAdvertiseOps() const; Hiva::SubscribeOptions CreateSubscribeOps() const; }; } |
Parent topic: OpenHiva FAQs