TARAXA
Loading...
Searching...
No Matches
taraxa::net::WsSession Class Referenceabstract

#include <ws_session.hpp>

Collaboration diagram for taraxa::net::WsSession:

Public Member Functions

 WsSession (tcp::socket &&socket, std::shared_ptr< WsServer > ws_server)
 
void run ()
 
void close (bool normal=true)
 
bool is_closed () const
 
virtual std::string processRequest (const std::string_view &request)=0
 
void newEthBlock (const Json::Value &payload)
 
void newDagBlock (const Json::Value &blk)
 
void newDagBlockFinalized (const Json::Value &payload)
 
void newPbftBlockExecuted (const Json::Value &payload)
 
void newPendingTransaction (const Json::Value &payload)
 
void newPillarBlockData (const Json::Value &payload)
 
void newLogs (const final_chain::BlockHeader &header, TransactionHashes trx_hashes, const TransactionReceipts &receipts)
 

Protected Member Functions

void handleRequest ()
 
void do_write (std::string &&message)
 

Protected Attributes

websocket::stream< beast::tcp_stream > ws_
 
std::atomic< int > subscription_id_ = 0
 
std::weak_ptr< WsServerws_server_
 
Subscriptions subscriptions_
 
logger::Logger logger_
 

Private Member Functions

void on_close (beast::error_code ec)
 
void on_accept (beast::error_code ec)
 
void do_read ()
 
void on_read (beast::error_code ec, std::size_t bytes_transferred)
 
void write (std::string &&message)
 

Static Private Member Functions

static bool is_normal (const beast::error_code &ec)
 

Private Attributes

boost::asio::strand< boost::asio::any_io_executor > write_strand_
 
beast::flat_buffer read_buffer_
 
std::atomic< bool > closed_ = false
 
std::string ip_
 

Constructor & Destructor Documentation

◆ WsSession()

taraxa::net::WsSession::WsSession ( tcp::socket &&  socket,
std::shared_ptr< WsServer ws_server 
)
inlineexplicit

Member Function Documentation

◆ close()

void taraxa::net::WsSession::close ( bool  normal = true)

◆ do_read()

void taraxa::net::WsSession::do_read ( )
private

◆ do_write()

void taraxa::net::WsSession::do_write ( std::string &&  message)
protected

◆ handleRequest()

void taraxa::net::WsSession::handleRequest ( )
protected

◆ is_closed()

bool taraxa::net::WsSession::is_closed ( ) const

◆ is_normal()

bool taraxa::net::WsSession::is_normal ( const beast::error_code &  ec)
staticprivate

◆ newDagBlock()

void taraxa::net::WsSession::newDagBlock ( const Json::Value &  blk)

◆ newDagBlockFinalized()

void taraxa::net::WsSession::newDagBlockFinalized ( const Json::Value &  payload)

◆ newEthBlock()

void taraxa::net::WsSession::newEthBlock ( const Json::Value &  payload)

◆ newLogs()

void taraxa::net::WsSession::newLogs ( const final_chain::BlockHeader header,
TransactionHashes  trx_hashes,
const TransactionReceipts receipts 
)

◆ newPbftBlockExecuted()

void taraxa::net::WsSession::newPbftBlockExecuted ( const Json::Value &  payload)

◆ newPendingTransaction()

void taraxa::net::WsSession::newPendingTransaction ( const Json::Value &  payload)

◆ newPillarBlockData()

void taraxa::net::WsSession::newPillarBlockData ( const Json::Value &  payload)

◆ on_accept()

void taraxa::net::WsSession::on_accept ( beast::error_code  ec)
private

◆ on_close()

void taraxa::net::WsSession::on_close ( beast::error_code  ec)
private

◆ on_read()

void taraxa::net::WsSession::on_read ( beast::error_code  ec,
std::size_t  bytes_transferred 
)
private

◆ processRequest()

virtual std::string taraxa::net::WsSession::processRequest ( const std::string_view &  request)
pure virtual

◆ run()

void taraxa::net::WsSession::run ( )

◆ write()

void taraxa::net::WsSession::write ( std::string &&  message)
private

Member Data Documentation

◆ closed_

std::atomic<bool> taraxa::net::WsSession::closed_ = false
private

◆ ip_

std::string taraxa::net::WsSession::ip_
private

◆ logger_

logger::Logger taraxa::net::WsSession::logger_
protected

◆ read_buffer_

beast::flat_buffer taraxa::net::WsSession::read_buffer_
private

◆ subscription_id_

std::atomic<int> taraxa::net::WsSession::subscription_id_ = 0
protected

◆ subscriptions_

Subscriptions taraxa::net::WsSession::subscriptions_
protected

◆ write_strand_

boost::asio::strand<boost::asio::any_io_executor> taraxa::net::WsSession::write_strand_
private

◆ ws_

websocket::stream<beast::tcp_stream> taraxa::net::WsSession::ws_
protected

◆ ws_server_

std::weak_ptr<WsServer> taraxa::net::WsSession::ws_server_
protected

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