31 class PubSubTopicListenerHelper;
128 virtual void OnTopicMessageReceived(
PubSubClient* source,
const std::string& topic,
const json::Value& msg) = 0;
142 std::shared_ptr<User> GetUser();
146 void AddListener(std::shared_ptr<IListener> listener);
147 void RemoveListener(std::shared_ptr<IListener> listener);
158 TTV_ErrorCode AddTopicListener(
const std::string& topic, std::shared_ptr<ITopicListener> listener);
159 TTV_ErrorCode RemoveTopicListener(
const std::string& topic, std::shared_ptr<ITopicListener> listener);
163 virtual void Update()
override;
166 virtual std::string GetLoggerName()
const override;
210 virtual bool CheckShutdown()
override;
211 virtual void CompleteShutdown()
override;
213 bool AnyConnected()
const;
214 bool MainConnected()
const;
218 void UpdateTopicSubscription(
const std::string& topic);
219 void PerformReconnect();
224 TTV_ErrorCode ProcessConnectionPreference(std::shared_ptr<pubsub::ConnectionPreferenceServerMessage> msg);
225 TTV_ErrorCode ProcessConnect(std::shared_ptr<pubsub::ConnectServerMessage> msg);
226 TTV_ErrorCode ProcessDisconnect(std::shared_ptr<pubsub::DisconnectServerMessage> msg);
227 TTV_ErrorCode ProcessSendMessage(std::shared_ptr<pubsub::SendMessageServerMessage> msg);
228 TTV_ErrorCode ProcessSubscribeToTopic(std::shared_ptr<pubsub::SubscribeToTopicServerMessage> msg);
229 TTV_ErrorCode ProcessUnsubscribeFromTopic(std::shared_ptr<pubsub::UnsubscribeFromTopicServerMessage> msg);
230 TTV_ErrorCode ProcessShutdown(std::shared_ptr<pubsub::ShutdownServerMessage> msg);
239 std::map<std::string, std::shared_ptr<Topic>>
mTopics;
258 public std::enable_shared_from_this<PubSubTopicListenerHelper>
277 bool ContainsTopic(
const std::string& topic)
const;
283 virtual void OnTopicMessageReceived(
PubSubClient* source,
const std::string& topic,
const json::Value& msg)
override;
ConnectionPreference::Enum mConnectionPreference
Definition: pubsubclient.h:249
Enum
Definition: pubsubclientconnection.h:51
Definition: pubsubclient.h:94
Enum
Definition: pubsubclient.h:100
Definition: pubsubclientmessages.h:113
EventSource< ITopicListener > listeners
Definition: pubsubclient.h:176
Definition: pubsubclient.h:98
Definition: pubsubclientmessages.h:155
Definition: pubsubclient.h:93
Definition: pubsubclientconnection.h:46
State mState
Definition: pubsubclient.h:296
std::weak_ptr< PubSubClient::ITopicListener > mListener
Definition: pubsubclient.h:295
Enum
Definition: pubsubclient.h:91
static std::string GetComponentName()
Definition: pubsubclient.h:168
Definition: pubsubclient.h:287
SubscribeState::Enum state
The current state of the connection.
Definition: pubsubclient.h:181
JSON (JavaScript Object Notation).
Definition: adsapi.h:16
std::shared_ptr< ConnectionListener > mConnectionListener
Definition: pubsubclient.h:242
bool subscriptionDesired
Definition: pubsubclient.h:290
PubSubClient * mPubSub
Definition: pubsubclient.h:198
Represents a JSON value.
Definition: value.h:114
std::shared_ptr< PubSubClientConnection > mConnection
The active connection.
Definition: pubsubclient.h:243
std::shared_ptr< IThread > mThread
Definition: pubsubclient.h:241
Definition: pubsubclient.h:86
Definition: eventsource.h:18
Definition: pubsubclientconnection.h:60
Definition: pubsubclientmessages.h:130
Definition: pubsubclientmessages.h:147
uint32_t TTV_ErrorCode
Definition: errortypes.h:30
PubSubState
Definition: coretypes.h:152
Definition: component.h:87
std::string topic
Definition: pubsubclient.h:175
std::function< void()> ThreadProc
Definition: thread.h:22
PubSubClient::SubscribeState::Enum state
Definition: pubsubclient.h:289
Definition: pubsubclient.h:117
bool mConnectionDesired
Whether or not the client has called Connect().
Definition: pubsubclient.h:250
Definition: pubsubclient.h:179
Definition: pubsubclientmessages.h:108
Definition: pubsubclient.h:257
The client must manually call Connect() and Disconnect().
Definition: pubsubclient.h:102
Definition: concurrentqueue.h:16
Definition: pubsubclient.h:89
ConcurrentQueue< std::shared_ptr< pubsub::ClientMessage > > mIncomingQueue
Definition: pubsubclient.h:236
Definition: pubsubclientmessages.h:35
std::map< std::string, Entry > mSubscriptionStates
Definition: pubsubclient.h:293
ConcurrentQueue< std::shared_ptr< pubsub::ServerMessage > > mOutgoingQueue
Definition: pubsubclient.h:237
Initialize has been called.
std::map< std::string, std::shared_ptr< Topic > > mTopics
Definition: pubsubclient.h:239
PubSubState GetConnectionState() const
Definition: pubsubclient.h:143
std::shared_ptr< PubSubClient > mPubSub
Definition: pubsubclient.h:294
EventSource< IListener > mListeners
Definition: pubsubclient.h:245
ClientServerValue< PubSubState > mConnectionState
Definition: pubsubclient.h:248
State
Definition: pubsubclient.h:261
Definition: pubsubclientmessages.h:138
json::FastWriter mJsonWriter
Definition: pubsubclient.h:246
Definition: pubsubclient.h:107
Definition: pubsubclient.h:184
RetryTimer mConnectionRetryTimer
Definition: pubsubclient.h:247
State GetState() const
Definition: pubsubclient.h:272
Outputs a Value in JSON format without formatting (not human friendly).
Definition: writer.h:31
std::shared_ptr< PubSubClientConnection > mDyingConnection
The connection that might be alive for a short time after a RECONNECT is received from the server...
Definition: pubsubclient.h:244
Definition: pubsubclientmessages.h:120
Definition: pubsubclientmessages.h:125
Definition: pubsubclient.h:171
std::function< void(PubSubClient *source, TTV_ErrorCode ec)> SendMessageCallback
Definition: pubsubclient.h:136