23 using PublicationId = std::string;
27 std::vector<uint8_t> data;
29 class InternalListener {
31 virtual bool OnWriteData(
const SendingData& buffer,
32 const PublicationId& publication_id) = 0;
37 void AddInternalListener(
const std::string& remote_member_id,
38 const PublicationId& publication_id,
39 InternalListener* listener);
40 void RemoveInternalListener(
const std::string& remote_member_id,
41 const PublicationId& publication_id);
44 bool Write(
const std::string& data)
const;
46 bool Write(
const uint8_t* data,
size_t length)
const;
50 bool Enable()
override;
52 bool Disable()
override;
56 std::unordered_map<std::string, std::unordered_map<PublicationId, InternalListener*>>
58 mutable std::mutex listener_mtx_;
59 std::atomic<bool> is_enabled_;