Miscellanous fixes

This commit is contained in:
Matthias Schiffer 2013-07-26 20:35:31 +02:00
parent f706404e6e
commit cc1a4b9493
6 changed files with 15 additions and 11 deletions

View file

@ -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;

View file

@ -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);

View file

@ -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, ...);

View file

@ -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) {}

View file

@ -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);
} }

View file

@ -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_ */