12 #ifndef GCOMM_PROTONET_HPP
13 #define GCOMM_PROTONET_HPP
16 #include "gu_datetime.hpp"
17 #include "protostack.hpp"
18 #include "gu_config.hpp"
24 #ifndef GCOMM_PROTONET_MAX_VERSION
25 #define GCOMM_PROTONET_MAX_VERSION 0
26 #endif // GCOMM_PROTONET_MAX_VERSION
40 Protonet(gu::Config& conf,
const std::string& type,
int version)
72 virtual gcomm::SocketPtr socket(
const gu::URI& uri) = 0;
81 virtual Acceptor* acceptor(
const gu::URI& uri) = 0;
89 virtual void event_loop(
const gu::datetime::Period& p) = 0;
96 gu::datetime::Date handle_timers();
101 virtual void interrupt() = 0;
106 virtual void enter() = 0;
111 virtual void leave() = 0;
113 bool set_param(
const std::string& key,
const std::string& val);
114 gu::Config& conf() {
return conf_; }
119 static Protonet* create(gu::Config& conf);
121 const std::string& type()
const {
return type_; }
123 virtual size_t mtu()
const = 0;
127 std::deque<Protostack*> protos_;
129 static const int max_version_ = GCOMM_PROTONET_MAX_VERSION;
135 #endif // GCOMM_PROTONET_HPP
Definition: protostack.hpp:24
Definition: protonet.hpp:37
Definition: socket.hpp:72