Chatterino
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Friends | List of all members
chatterino::BasicPubSubClient< Subscription > Class Template Reference

#include <BasicPubSubClient.hpp>

Inheritance diagram for chatterino::BasicPubSubClient< Subscription >:
[legend]
Collaboration diagram for chatterino::BasicPubSubClient< Subscription >:
[legend]

Public Member Functions

 BasicPubSubClient (liveupdates::WebsocketClient &websocketClient, liveupdates::WebsocketHandle handle, size_t maxSubscriptions=100)
 
virtual ~BasicPubSubClient ()=default
 
 BasicPubSubClient (const BasicPubSubClient &)=delete
 
 BasicPubSubClient (const BasicPubSubClient &&)=delete
 
BasicPubSubClientoperator= (const BasicPubSubClient &)=delete
 
BasicPubSubClientoperator= (const BasicPubSubClient &&)=delete
 

Public Attributes

const size_t maxSubscriptions
 

Protected Member Functions

virtual void onConnectionEstablished ()
 
bool send (const char *payload)
 
bool subscribe (const Subscription &subscription)
 
bool unsubscribe (const Subscription &subscription)
 
void close (const std::string &reason, websocketpp::close::status::value code=websocketpp::close::status::normal)
 
bool isStarted () const
 

Protected Attributes

liveupdates::WebsocketClientwebsocketClient_
 

Friends

template<typename ManagerSubscription >
class BasicPubSubManager
 

Detailed Description

template<typename Subscription>
class chatterino::BasicPubSubClient< Subscription >

This class manages a single connection that has at most maxSubscriptions subscriptions.

You can safely overload the onConnectionEstablished method and e.g. add additional heartbeat logic.

You can use shared_from_this to get a shared_ptr of this client.

Template Parameters
Subscriptionsee BasicPubSubManager

Constructor & Destructor Documentation

◆ BasicPubSubClient() [1/3]

template<typename Subscription>
chatterino::BasicPubSubClient< Subscription >::BasicPubSubClient ( liveupdates::WebsocketClient websocketClient,
liveupdates::WebsocketHandle  handle,
size_t  maxSubscriptions = 100 
)
inline
Here is the caller graph for this function:

◆ ~BasicPubSubClient()

template<typename Subscription>
virtual chatterino::BasicPubSubClient< Subscription >::~BasicPubSubClient ( )
virtualdefault
Here is the caller graph for this function:

◆ BasicPubSubClient() [2/3]

template<typename Subscription>
chatterino::BasicPubSubClient< Subscription >::BasicPubSubClient ( const BasicPubSubClient< Subscription > &  )
delete

◆ BasicPubSubClient() [3/3]

template<typename Subscription>
chatterino::BasicPubSubClient< Subscription >::BasicPubSubClient ( const BasicPubSubClient< Subscription > &&  )
delete

Member Function Documentation

◆ close()

template<typename Subscription>
void chatterino::BasicPubSubClient< Subscription >::close ( const std::string &  reason,
websocketpp::close::status::value  code = websocketpp::close::status::normal 
)
inlineprotected

◆ isStarted()

template<typename Subscription>
bool chatterino::BasicPubSubClient< Subscription >::isStarted ( ) const
inlineprotected

◆ onConnectionEstablished()

template<typename Subscription>
virtual void chatterino::BasicPubSubClient< Subscription >::onConnectionEstablished ( )
inlineprotectedvirtual

◆ operator=() [1/2]

template<typename Subscription>
BasicPubSubClient& chatterino::BasicPubSubClient< Subscription >::operator= ( const BasicPubSubClient< Subscription > &  )
delete
Here is the caller graph for this function:

◆ operator=() [2/2]

template<typename Subscription>
BasicPubSubClient& chatterino::BasicPubSubClient< Subscription >::operator= ( const BasicPubSubClient< Subscription > &&  )
delete

◆ send()

template<typename Subscription>
bool chatterino::BasicPubSubClient< Subscription >::send ( const char *  payload)
inlineprotected
Here is the caller graph for this function:

◆ subscribe()

template<typename Subscription>
bool chatterino::BasicPubSubClient< Subscription >::subscribe ( const Subscription subscription)
inlineprotected
Returns
true if this client subscribed to this subscription and the current subscriptions don't exceed the maximum amount. It won't subscribe twice to the same subscription. Don't use this in place of subscription management in the BasicPubSubManager.

◆ unsubscribe()

template<typename Subscription>
bool chatterino::BasicPubSubClient< Subscription >::unsubscribe ( const Subscription subscription)
inlineprotected
Returns
true if this client previously subscribed and now unsubscribed from this subscription.

Friends And Related Function Documentation

◆ BasicPubSubManager

template<typename Subscription>
template<typename ManagerSubscription >
friend class BasicPubSubManager
friend

Member Data Documentation

◆ maxSubscriptions

template<typename Subscription>
const size_t chatterino::BasicPubSubClient< Subscription >::maxSubscriptions

◆ websocketClient_

template<typename Subscription>
liveupdates::WebsocketClient& chatterino::BasicPubSubClient< Subscription >::websocketClient_
protected

The documentation for this class was generated from the following file: