Electroneum
transport.hpp File Reference
#include <boost/asio.hpp>
#include <boost/asio/deadline_timer.hpp>
#include <boost/array.hpp>
#include <boost/utility/string_ref.hpp>
#include <typeinfo>
#include <type_traits>
#include "net/http_client.h"
#include "rapidjson/document.h"
#include "rapidjson/writer.h"
#include "rapidjson/stringbuffer.h"
#include "exceptions.hpp"
#include "trezor_defs.hpp"
#include "messages_map.hpp"
#include "messages/messages.pb.h"
#include "messages/messages-common.pb.h"
#include "messages/messages-management.pb.h"
#include "messages/messages-electroneum.pb.h"
Include dependency graph for transport.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  hw::trezor::Protocol
 
class  hw::trezor::ProtocolV1
 
class  hw::trezor::Transport
 
class  hw::trezor::BridgeTransport
 
class  hw::trezor::UdpTransport
 
class  hw::trezor::exc::UnexpectedMessageException
 
class  hw::trezor::GenericMessage
 

Namespaces

 hw
 
 hw::trezor
 
 hw::trezor::exc
 

Typedefs

using hw::trezor::json = rapidjson::Document
 
using hw::trezor::json_val = rapidjson::Value
 
typedef std::vector< std::shared_ptr< Transport > > hw::trezor::t_transport_vect
 

Functions

uint64_t hw::trezor::pack_version (uint32_t major, uint32_t minor, uint32_t patch)
 
bool hw::trezor::t_serialize (const std::string &in, std::string &out)
 
bool hw::trezor::t_serialize (const json_val &in, std::string &out)
 
std::string hw::trezor::t_serialize (const json_val &in)
 
bool hw::trezor::t_deserialize (const std::string &in, std::string &out)
 
bool hw::trezor::t_deserialize (const std::string &in, json &out)
 
template<class t_req , class t_res , class t_transport >
bool hw::trezor::invoke_bridge_http (const boost::string_ref uri, const t_req &out_struct, t_res &result_struct, t_transport &transport, const boost::string_ref method="POST", std::chrono::milliseconds timeout=std::chrono::seconds(180))
 
void hw::trezor::enumerate (t_transport_vect &res)
 
void hw::trezor::sort_transports_by_env (t_transport_vect &res)
 
std::shared_ptr< Transport > hw::trezor::transport (const std::string &path)
 
template<class t_transport = Transport>
std::shared_ptr< t_transport > hw::trezor::transport_typed (const std::string &path)
 
void hw::trezor::throw_failure_exception (const messages::common::Failure *failure)
 
template<class t_message = google::protobuf::Message>
std::shared_ptr< t_message > hw::trezor::exchange_message (Transport &transport, const google::protobuf::Message &req, boost::optional< messages::MessageType > resp_type=boost::none)
 
std::ostream & hw::trezor::operator<< (std::ostream &o, hw::trezor::Transport const &t)
 
std::ostream & hw::trezor::operator<< (std::ostream &o, std::shared_ptr< hw::trezor::Transport > const &t)
 

Variables

const std::string hw::trezor::DEFAULT_BRIDGE = "127.0.0.1:21325"