Dawn Framework 1.0
Universal data acquisition framework for embedded systems
viewdata.hxx
1// dawn/include/dawn/io/viewdata.hxx
2//
3// SPDX-License-Identifier: Apache-2.0
4//
5
6#pragma once
7
8#include <cstddef>
9
10#include "dawn/io/idata.hxx"
11#include "dawn/porting/config.hxx"
12
13namespace dawn
14{
17struct io_data_view_t : public io_data_cmn_t
18{
19 void *buffer;
20 size_t bytes;
21 size_t items;
23
32 io_data_view_t(void *dataBuffer, size_t dataBytes, size_t dataItems = 1)
33 : buffer(dataBuffer)
34 , bytes(dataBytes)
35 , items(dataItems)
36 , dummyTs(0)
37 {
38 }
39
42 size_t getItems() override
43 {
44 return items;
45 }
46
49 size_t getDataSize() override
50 {
51 return bytes;
52 }
53
61 void *getPtr(size_t batch = 0) override
62 {
63 (void)batch;
64 return buffer;
65 }
66
74 void *getDataPtr(size_t batch = 0) override
75 {
76 (void)batch;
77 return buffer;
78 }
79
82 bool hasTimestamp() override
83 {
84 return false;
85 }
86
94 io_ts_t &getTs(size_t batch = 0) override
95 {
96 (void)batch;
97 return dummyTs;
98 }
99};
100
101} // Namespace dawn
Out-of-tree user-extension hooks for Dawn.
Definition bindable.hxx:13
uint64_t io_ts_t
Timestamp data type (uint64_t, typically microseconds since boot).
Definition idata.hxx:16
Non-owning I/O data view over caller-provided storage.
Definition viewdata.hxx:18
void * buffer
Caller-owned data buffer.
Definition viewdata.hxx:19
size_t getItems()
Get number of items in the viewed buffer.
Definition viewdata.hxx:42
io_ts_t & getTs(size_t batch=0)
Get timestamp reference (returns shared dummy).
Definition viewdata.hxx:94
size_t bytes
Buffer size in bytes.
Definition viewdata.hxx:20
io_data_view_t(void *dataBuffer, size_t dataBytes, size_t dataItems=1)
Constructor.
Definition viewdata.hxx:32
bool hasTimestamp()
This view has no per-batch timestamp storage.
Definition viewdata.hxx:82
size_t getDataSize()
Get viewed data size in bytes.
Definition viewdata.hxx:49
void * getPtr(size_t batch=0)
Get pointer to viewed buffer.
Definition viewdata.hxx:61
io_ts_t dummyTs
Dummy timestamp for API compatibility.
Definition viewdata.hxx:22
size_t items
Number of data items in the buffer.
Definition viewdata.hxx:21
void * getDataPtr(size_t batch=0)
Get pointer to viewed data.
Definition viewdata.hxx:74