1 #ifndef ZIO_PORT_HPP_SEEN 2 #define ZIO_PORT_HPP_SEEN 38 Port(
const std::string&
name,
int stype,
39 const std::string& hostname =
"127.0.0.1");
48 const std::string&
name()
const {
return m_name; }
60 void bind(
const std::string& hostname,
int tcpportnum);
65 void bind(
const address_t& address);
70 void connect(
const address_t& address);
77 void connect(
const nodename_t&
node,
const portname_t& port);
87 void subscribe(
const std::string& prefix =
"");
93 void set_header(
const std::string& leafname,
const std::string& value);
129 const std::string m_name;
132 std::string m_hostname;
134 std::map<std::string, std::string> m_headers;
138 typedef std::function<address_t()> binder_t;
139 std::vector<binder_t> m_binders;
141 std::vector<address_t> m_connect_addresses, m_connected, m_bound;
142 std::vector< std::pair<nodename_t, portname_t> > m_connect_nodeports;
144 bool m_verbose{
false};
zio::socket_t & socket()
Access the underlying cppzmq socket.
void set_verbose(bool verbose=true)
bool recv(Message &msg, int timeout=-1)
Recieve a message, return false if timeout occurred.
std::map< header_key_t, header_value_t > headerset_t
void set_origin(origin_t origin)
Access the owning node's origin.
void online(Peer &peer)
Make any previously requested connections.
void offline()
Disconnect and unbind.
std::shared_ptr< Port > portptr_t
The context can't be copied and ports like to be shared.
A port holds a socket in the context of a node.
const std::string & name() const
Access this port's name.
void subscribe(const std::string &prefix="")
Subscribe to a PUB topic.
void send(Message &msg)
Send a message.
void bind()
Request a default bind.
void connect(const address_t &address)
Request connect to fully qualified ZeroMQ address string.
headerset_t do_binds()
Perform any requested binds.
implementation of ZIO data flow protocol endpoints
Port(const std::string &name, int stype, const std::string &hostname="127.0.0.1")
Create a port of given name and socket type.
Peer at the network to discover peers and advertise self.
void set_header(const std::string &leafname, const std::string &value)
Set an extra port header.