15 #ifndef _GAMS_UTILITY_OSC_HELPER_H_
16 #define _GAMS_UTILITY_OSC_HELPER_H_
25 #include "madara/transport/udp/UdpTransport.h"
26 #include "madara/transport/multicast/MulticastTransport.h"
27 #include "madara/transport/broadcast/BroadcastTransport.h"
28 #include "madara/utility/EpochEnforcer.h"
30 #include "madara/knowledge/KnowledgeRecord.h"
35 #include "osc/OscReceivedElements.h"
45 std::shared_ptr<madara::transport::UdpTransport> transport_ = 0;
48 madara::transport::QoSTransportSettings settings_;
51 madara::knowledge::KnowledgeBase kb_;
54 madara::utility::ScopedArray<char> buffer_ =
58 typedef std::map<std::string,
59 madara::knowledge::KnowledgeRecord> OscMap;
78 size_t pack (
void* buffer,
size_t size,
const OscMap& map);
86 void unpack (
void* buffer,
size_t size, OscMap & map);
91 inline bool has_socket (
void)
93 return transport_.get() != 0;
103 madara::transport::QoSTransportSettings& settings);
111 int receive (OscMap & values,
double max_wait_seconds = 0.5);
118 int send (
const OscMap & values);
121 void process_bundle(
const osc::ReceivedBundle& b, OscMap & map);
122 void process_message(
const osc::ReceivedMessage& m, OscMap & map);
Contains all GAMS-related tools, classes and code.