Miscellanous fixes
This commit is contained in:
parent
f706404e6e
commit
cc1a4b9493
6 changed files with 15 additions and 11 deletions
|
@ -31,7 +31,7 @@
|
||||||
|
|
||||||
namespace MMSS {
|
namespace MMSS {
|
||||||
|
|
||||||
void dispatch(std::shared_ptr<packet_t> packet) {
|
void dispatch(const std::shared_ptr<packet_t> &packet) {
|
||||||
auto source = packet->source.lock();
|
auto source = packet->source.lock();
|
||||||
auto dest = packet->dest.lock();
|
auto dest = packet->dest.lock();
|
||||||
if (!source || !dest)
|
if (!source || !dest)
|
||||||
|
@ -44,7 +44,7 @@ void dispatch(std::shared_ptr<packet_t> packet) {
|
||||||
node->proto->handle_packet(node.get(), node->ctx, dest.get(), &source->address, packet->data.get(), packet->len);
|
node->proto->handle_packet(node.get(), node->ctx, dest.get(), &source->address, packet->data.get(), packet->len);
|
||||||
}
|
}
|
||||||
|
|
||||||
void add_iface(std::shared_ptr<node_t> node, std::shared_ptr<network_t> net, const std::string &name, const gmrf_addr_t *address) {
|
void add_iface(const std::shared_ptr<node_t> &node, const std::shared_ptr<network_t> &net, const std::string &name, const gmrf_addr_t *address) {
|
||||||
std::shared_ptr<iface_t> iface = iface_t::create();
|
std::shared_ptr<iface_t> iface = iface_t::create();
|
||||||
|
|
||||||
iface->name = name;
|
iface->name = name;
|
||||||
|
@ -59,7 +59,7 @@ void add_iface(std::shared_ptr<node_t> node, std::shared_ptr<network_t> net, con
|
||||||
node->proto->add_iface(node.get(), node->ctx, iface.get());
|
node->proto->add_iface(node.get(), node->ctx, iface.get());
|
||||||
}
|
}
|
||||||
|
|
||||||
void enqueue(context_t *mmss, std::shared_ptr<iface_t> source, std::shared_ptr<iface_t> dest, const void *data, size_t len) {
|
void enqueue(context_t *mmss, const std::shared_ptr<iface_t> &source, const std::shared_ptr<iface_t> &dest, const void *data, size_t len) {
|
||||||
std::shared_ptr<packet_t> packet = std::make_shared<packet_t>();
|
std::shared_ptr<packet_t> packet = std::make_shared<packet_t>();
|
||||||
|
|
||||||
packet->sent = mmss->now;
|
packet->sent = mmss->now;
|
||||||
|
|
|
@ -74,8 +74,8 @@ void main(int argc, char *argv[]) {
|
||||||
std::shared_ptr<network_t> net0 = std::make_shared<network_t>();
|
std::shared_ptr<network_t> net0 = std::make_shared<network_t>();
|
||||||
std::shared_ptr<network_t> net1 = std::make_shared<network_t>();
|
std::shared_ptr<network_t> net1 = std::make_shared<network_t>();
|
||||||
|
|
||||||
*net0 = (network_t){ .mtu = 1500 };
|
net0->mtu = 1500;
|
||||||
*net1 = (network_t){ .mtu = 1500 };
|
net1->mtu = 1500;
|
||||||
|
|
||||||
std::shared_ptr<node_t> node1 = node_t::create(&mmss, "node1", 1, proto);
|
std::shared_ptr<node_t> node1 = node_t::create(&mmss, "node1", 1, proto);
|
||||||
std::shared_ptr<node_t> node2 = node_t::create(&mmss, "node2", 2, proto);
|
std::shared_ptr<node_t> node2 = node_t::create(&mmss, "node2", 2, proto);
|
||||||
|
|
|
@ -138,13 +138,13 @@ const protocol_t* load_protocol(const char *module);
|
||||||
|
|
||||||
bool read_config(context_t *mmss, config_t *conf, const char *filename);
|
bool read_config(context_t *mmss, config_t *conf, const char *filename);
|
||||||
|
|
||||||
void add_iface(std::shared_ptr<node_t> node, std::shared_ptr<network_t> net, const std::string &name, const gmrf_addr_t *address);
|
void add_iface(const std::shared_ptr<node_t> &node, const std::shared_ptr<network_t> &net, const std::string &name, const gmrf_addr_t *address);
|
||||||
|
|
||||||
uint64_t now(const context_t *mmss);
|
uint64_t now(const context_t *mmss);
|
||||||
|
|
||||||
void dispatch(std::shared_ptr<packet_t> packet);
|
void dispatch(const std::shared_ptr<packet_t> &packet);
|
||||||
void run_scheduled(std::shared_ptr<scheduled_t> scheduled);
|
void run_scheduled(const std::shared_ptr<scheduled_t> &scheduled);
|
||||||
void enqueue(context_t *mmss, std::shared_ptr<iface_t> source, std::shared_ptr<iface_t> dest, const void *data, size_t len);
|
void enqueue(context_t *mmss, const std::shared_ptr<iface_t> &source, const std::shared_ptr<iface_t> &dest, const void *data, size_t len);
|
||||||
|
|
||||||
void logf(context_t *mmss, int priority, const char *format, ...);
|
void logf(context_t *mmss, int priority, const char *format, ...);
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
|
|
||||||
#include "types.hpp"
|
#include "types.hpp"
|
||||||
|
|
||||||
|
#include <deque>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#include <queue>
|
#include <queue>
|
||||||
|
|
||||||
|
@ -48,7 +49,7 @@ template<typename T> class timeout_queue_t {
|
||||||
|
|
||||||
context_t *mmss;
|
context_t *mmss;
|
||||||
|
|
||||||
std::priority_queue<element_t> queue;
|
std::priority_queue<element_t, std::deque<element_t>> queue;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
timeout_queue_t(context_t *mmss0) : mmss(mmss0) {}
|
timeout_queue_t(context_t *mmss0) : mmss(mmss0) {}
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
|
|
||||||
namespace MMSS {
|
namespace MMSS {
|
||||||
|
|
||||||
void run_scheduled(std::shared_ptr<scheduled_t> scheduled) {
|
void run_scheduled(const std::shared_ptr<scheduled_t> &scheduled) {
|
||||||
scheduled->f(scheduled->node.get(), scheduled->node->ctx, scheduled->arg);
|
scheduled->f(scheduled->node.get(), scheduled->node->ctx, scheduled->arg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,9 @@ typedef ::mmss_protocol_t protocol_t;
|
||||||
typedef ::gmrf_t node_t;
|
typedef ::gmrf_t node_t;
|
||||||
typedef ::gmrf_iface_t iface_t;
|
typedef ::gmrf_iface_t iface_t;
|
||||||
|
|
||||||
|
|
||||||
|
uint64_t now(const context_t *mmss);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _GMRF_MMSS_TYPES_HPP_ */
|
#endif /* _GMRF_MMSS_TYPES_HPP_ */
|
||||||
|
|
Reference in a new issue