Electroneum
Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
hw::trezor::UdpTransport Class Reference

#include <transport.hpp>

Inheritance diagram for hw::trezor::UdpTransport:
Inheritance graph
[legend]
Collaboration diagram for hw::trezor::UdpTransport:
Collaboration graph
[legend]

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