TARAXA
taraxa::net::WsSession Class Referenceabstract

#include <ws_server.hpp>

Collaboration diagram for taraxa::net::WsSession:

Public Member Functions

 WsSession (tcp::socket &&socket, addr_t node_addr, std::shared_ptr< WsServer > ws_server)
 
void run ()
 
void close (bool normal=true)
 
void on_accept (beast::error_code ec)
 
void do_read ()
 
void on_read (beast::error_code ec, std::size_t bytes_transferred)
 
virtual std::string processRequest (const std::string_view &request)=0
 
void newEthBlock (const ::taraxa::final_chain::BlockHeader &payload, const TransactionHashes &trx_hashes)
 
void newDagBlock (const DagBlock &blk)
 
void newDagBlockFinalized (const blk_hash_t &blk, uint64_t period)
 
void newPbftBlockExecuted (const Json::Value &payload)
 
void newPendingTransaction (const trx_hash_t &trx_hash)
 
void newPillarBlockData (const pillar_chain::PillarBlockData &pillar_block_data)
 
bool is_closed () const
 
bool is_normal (const beast::error_code &ec) const
 
void on_write (beast::error_code ec, std::size_t bytes_transferred)
 

Protected Member Functions

void processAsync ()
 
void writeAsync (std::string &&message)
 
void writeImpl (std::string &&message)
 

Protected Attributes

websocket::stream< beast::tcp_stream > ws_
 
boost::asio::strand< boost::asio::any_io_executor > write_strand_
 
beast::flat_buffer read_buffer_
 
std::atomic< int > subscription_id_ = 0
 
int new_heads_subscription_ = 0
 
int new_dag_blocks_subscription_ = 0
 
int new_transactions_subscription_ = 0
 
int new_dag_block_finalized_subscription_ = 0
 
int new_pbft_block_executed_subscription_ = 0
 
int new_pillar_block_subscription_ = 0
 
bool include_pillar_block_signatures = false
 
std::atomic< bool > closed_ = false
 
std::weak_ptr< WsServerws_server_
 

Constructor & Destructor Documentation

◆ WsSession()

taraxa::net::WsSession::WsSession ( tcp::socket &&  socket,
addr_t  node_addr,
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 ( )

◆ is_closed()

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

◆ is_normal()

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

◆ newDagBlock()

void taraxa::net::WsSession::newDagBlock ( const DagBlock blk)

◆ newDagBlockFinalized()

void taraxa::net::WsSession::newDagBlockFinalized ( const blk_hash_t blk,
uint64_t  period 
)

◆ newEthBlock()

void taraxa::net::WsSession::newEthBlock ( const ::taraxa::final_chain::BlockHeader payload,
const TransactionHashes trx_hashes 
)

◆ newPbftBlockExecuted()

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

◆ newPendingTransaction()

void taraxa::net::WsSession::newPendingTransaction ( const trx_hash_t trx_hash)

◆ newPillarBlockData()

void taraxa::net::WsSession::newPillarBlockData ( const pillar_chain::PillarBlockData pillar_block_data)

◆ on_accept()

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

◆ on_read()

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

◆ on_write()

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

◆ processAsync()

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

◆ processRequest()

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

◆ run()

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

◆ writeAsync()

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

◆ writeImpl()

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

Member Data Documentation

◆ closed_

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

◆ include_pillar_block_signatures

bool taraxa::net::WsSession::include_pillar_block_signatures = false
protected

◆ new_dag_block_finalized_subscription_

int taraxa::net::WsSession::new_dag_block_finalized_subscription_ = 0
protected

◆ new_dag_blocks_subscription_

int taraxa::net::WsSession::new_dag_blocks_subscription_ = 0
protected

◆ new_heads_subscription_

int taraxa::net::WsSession::new_heads_subscription_ = 0
protected

◆ new_pbft_block_executed_subscription_

int taraxa::net::WsSession::new_pbft_block_executed_subscription_ = 0
protected

◆ new_pillar_block_subscription_

int taraxa::net::WsSession::new_pillar_block_subscription_ = 0
protected

◆ new_transactions_subscription_

int taraxa::net::WsSession::new_transactions_subscription_ = 0
protected

◆ read_buffer_

beast::flat_buffer taraxa::net::WsSession::read_buffer_
protected

◆ subscription_id_

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

◆ write_strand_

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

◆ 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: