diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-27 18:31:10 +0200 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2013-07-27 18:31:10 +0200 |
commit | 379b2b37010cff9343cb9cc468c5c0b17a37ff7e (patch) | |
tree | 1b4c3e3cedf45123a7a16084cfeecb5ac234bfbb /mmss/iface.cpp | |
parent | 49652b9e2882a1c3cd5203ea91f90cdd32a090e9 (diff) | |
download | gmrf-379b2b37010cff9343cb9cc468c5c0b17a37ff7e.tar gmrf-379b2b37010cff9343cb9cc468c5c0b17a37ff7e.zip |
Create a common base class event_t for packet_t and scheduled_t
Diffstat (limited to 'mmss/iface.cpp')
-rw-r--r-- | mmss/iface.cpp | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/mmss/iface.cpp b/mmss/iface.cpp index 38808f1..7e43dd2 100644 --- a/mmss/iface.cpp +++ b/mmss/iface.cpp @@ -31,19 +31,8 @@ namespace MMSS { -void dispatch(const std::shared_ptr<packet_t> &packet) { - auto source = packet->source.lock(); - auto dest = packet->dest.lock(); - if (!source || !dest) - return; - - node_t *node = dest->node; - - node->proto->handle_packet(node, node->ctx, dest.get(), &source->address, packet->data.get(), packet->len); -} - 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 = std::make_shared<iface_t>(); iface->name = name; iface->address = *address; @@ -61,14 +50,14 @@ void enqueue(context_t *mmss, const std::shared_ptr<iface_t> &source, const std: std::shared_ptr<packet_t> packet = std::make_shared<packet_t>(); packet->sent = mmss->now(); - packet->source = source; + packet->source_addr = source->address; packet->dest = dest; packet->len = len; packet->data.reset(new uint8_t[len]); std::memcpy(packet->data.get(), data, len); - mmss->packet_queue.put(std::move(packet), mmss->now()+1); + mmss->event_queue.put(std::move(packet), mmss->now()+1); } } |