-Logic::Logic(const struct sr_datafeed_logic *structure) : PacketPayload(),
- structure(structure),
- data(static_cast<uint8_t *>(structure->data),
- static_cast<uint8_t *>(structure->data) + structure->length) {}
+Header::Header(const struct sr_datafeed_header *structure) :
+ PacketPayload(),
+ StructureWrapper<Packet, const struct sr_datafeed_header>(structure)
+{
+}
+
+Header::~Header()
+{
+}
+
+int Header::get_feed_version()
+{
+ return structure->feed_version;
+}
+
+Glib::TimeVal Header::get_start_time()
+{
+ return Glib::TimeVal(
+ structure->starttime.tv_sec,
+ structure->starttime.tv_usec);
+}
+
+Meta::Meta(const struct sr_datafeed_meta *structure) :
+ PacketPayload(),
+ StructureWrapper<Packet, const struct sr_datafeed_meta>(structure)
+{
+}
+
+Meta::~Meta()
+{
+}
+
+map<const ConfigKey *, Glib::VariantBase> Meta::get_config()
+{
+ map<const ConfigKey *, Glib::VariantBase> result;
+ for (auto l = structure->config; l; l = l->next)
+ {
+ auto config = (struct sr_config *) l->data;
+ result[ConfigKey::get(config->key)] = Glib::VariantBase(config->data);
+ }
+ return result;
+}
+
+Logic::Logic(const struct sr_datafeed_logic *structure) :
+ PacketPayload(),
+ StructureWrapper<Packet, const struct sr_datafeed_logic>(structure)
+{
+}