21#ifndef BM_BM_SIM_TRANSPORT_H_
22#define BM_BM_SIM_TRANSPORT_H_
27#include <initializer_list>
40 virtual ~TransportIface() { }
48 int send(
const std::string &msg)
const {
52 int send(
const char *msg,
int len)
const {
53 return send_(msg, len);
56 int send_msgs(
const std::initializer_list<std::string> &msgs)
const {
57 return send_msgs_(msgs);
60 int send_msgs(
const std::initializer_list<MsgBuf> &msgs)
const {
61 return send_msgs_(msgs);
65 static std::unique_ptr<TransportIface> make_nanomsg(
const std::string &addr);
67 static std::unique_ptr<TransportIface> make_dummy();
68 static std::unique_ptr<TransportIface> make_stdout();
71 virtual int open_() = 0;
73 virtual int send_(
const std::string &msg)
const = 0;
74 virtual int send_(
const char *msg,
int len)
const = 0;
76 virtual int send_msgs_(
77 const std::initializer_list<std::string> &msgs)
const = 0;
78 virtual int send_msgs_(
const std::initializer_list<MsgBuf> &msgs)
const = 0;