Monero
Loading...
Searching...
No Matches
hw::trezor::UdpTransport Class Reference

#include <transport.hpp>

Inheritance diagram for hw::trezor::UdpTransport:
Collaboration diagram for hw::trezor::UdpTransport:

Public Member Functions

 UdpTransport (boost::optional< std::string > device_path=boost::none, boost::optional< std::shared_ptr< Protocol > > proto=boost::none)
virtual ~UdpTransport ()=default
bool ping () override
std::string get_path () const override
void enumerate (t_transport_vect &res) override
void open () override
void close () override
std::shared_ptr< Transportfind_debug () override
void write (const google::protobuf::Message &req) override
void read (std::shared_ptr< google::protobuf::Message > &msg, messages::MessageType *msg_type=nullptr) override
void write_chunk (const void *buff, size_t size) override
size_t read_chunk (void *buff, size_t size) override
std::ostream & dump (std::ostream &o) const override
Public Member Functions inherited from hw::trezor::Transport
 Transport ()
virtual ~Transport ()=default

Static Public Attributes

static const char * PATH_PREFIX = "udp:"
static const char * DEFAULT_HOST = "127.0.0.1"
static const int DEFAULT_PORT = 21324

Private Member Functions

void require_socket ()
ssize_t receive (void *buff, size_t size, boost::system::error_code *error_code=nullptr, bool no_throw=false, boost::posix_time::time_duration timeout=boost::posix_time::seconds(10))
void check_deadline ()
bool ping_int (boost::posix_time::time_duration timeout=boost::posix_time::milliseconds(1500))

Static Private Member Functions

static void handle_receive (const boost::system::error_code &ec, std::size_t length, boost::system::error_code *out_ec, std::size_t *out_length)

Private Attributes

std::shared_ptr< Protocolm_proto
std::string m_device_host
int m_device_port
std::unique_ptr< udp::socket > m_socket
boost::asio::io_context m_io_service
boost::asio::deadline_timer m_deadline
udp::endpoint m_endpoint

Additional Inherited Members

Protected Member Functions inherited from hw::trezor::Transport
virtual bool pre_open ()
virtual bool pre_close ()
Protected Attributes inherited from hw::trezor::Transport
long m_open_counter

Constructor & Destructor Documentation

◆ UdpTransport()

hw::trezor::UdpTransport::UdpTransport ( boost::optional< std::string > device_path = boost::none,
boost::optional< std::shared_ptr< Protocol > > proto = boost::none )
explicit

◆ ~UdpTransport()

virtual hw::trezor::UdpTransport::~UdpTransport ( )
virtualdefault

Member Function Documentation

◆ check_deadline()

void hw::trezor::UdpTransport::check_deadline ( )
private

◆ close()

void hw::trezor::UdpTransport::close ( )
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ dump()

std::ostream & hw::trezor::UdpTransport::dump ( std::ostream & o) const
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ enumerate()

void hw::trezor::UdpTransport::enumerate ( t_transport_vect & res)
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ find_debug()

std::shared_ptr< Transport > hw::trezor::UdpTransport::find_debug ( )
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ get_path()

std::string hw::trezor::UdpTransport::get_path ( ) const
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ handle_receive()

void hw::trezor::UdpTransport::handle_receive ( const boost::system::error_code & ec,
std::size_t length,
boost::system::error_code * out_ec,
std::size_t * out_length )
staticprivate

◆ open()

void hw::trezor::UdpTransport::open ( )
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ ping()

bool hw::trezor::UdpTransport::ping ( )
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ ping_int()

bool hw::trezor::UdpTransport::ping_int ( boost::posix_time::time_duration timeout = boost::posix_time::milliseconds(1500))
private

◆ read()

void hw::trezor::UdpTransport::read ( std::shared_ptr< google::protobuf::Message > & msg,
messages::MessageType * msg_type = nullptr )
overridevirtual

Implements hw::trezor::Transport.

◆ read_chunk()

size_t hw::trezor::UdpTransport::read_chunk ( void * buff,
size_t size )
overridevirtual

Reimplemented from hw::trezor::Transport.

◆ receive()

ssize_t hw::trezor::UdpTransport::receive ( void * buff,
size_t size,
boost::system::error_code * error_code = nullptr,
bool no_throw = false,
boost::posix_time::time_duration timeout = boost::posix_time::seconds(10) )
private

◆ require_socket()

void hw::trezor::UdpTransport::require_socket ( )
private

◆ write()

void hw::trezor::UdpTransport::write ( const google::protobuf::Message & req)
overridevirtual

Implements hw::trezor::Transport.

◆ write_chunk()

void hw::trezor::UdpTransport::write_chunk ( const void * buff,
size_t size )
overridevirtual

Reimplemented from hw::trezor::Transport.

Member Data Documentation

◆ DEFAULT_HOST

const char * hw::trezor::UdpTransport::DEFAULT_HOST = "127.0.0.1"
static

◆ DEFAULT_PORT

const int hw::trezor::UdpTransport::DEFAULT_PORT = 21324
static

◆ m_deadline

boost::asio::deadline_timer hw::trezor::UdpTransport::m_deadline
private

◆ m_device_host

std::string hw::trezor::UdpTransport::m_device_host
private

◆ m_device_port

int hw::trezor::UdpTransport::m_device_port
private

◆ m_endpoint

udp::endpoint hw::trezor::UdpTransport::m_endpoint
private

◆ m_io_service

boost::asio::io_context hw::trezor::UdpTransport::m_io_service
private

◆ m_proto

std::shared_ptr<Protocol> hw::trezor::UdpTransport::m_proto
private

◆ m_socket

std::unique_ptr<udp::socket> hw::trezor::UdpTransport::m_socket
private

◆ PATH_PREFIX

const char * hw::trezor::UdpTransport::PATH_PREFIX = "udp:"
static

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