adtf_file_library  0.13.2
sample.h
Go to the documentation of this file.
1 
17 #ifndef ADTF_FILE_SAMPLE
18 #define ADTF_FILE_SAMPLE
19 
20 #include <a_util/variant.h>
21 #include <functional>
22 #include <string>
23 #include <chrono>
24 
25 namespace adtf_file
26 {
27 
31 enum class DataType
32 {
33  uint8,
34  int8,
35  uint16,
36  int16,
37  uint32,
38  int32,
39  uint64,
40  int64,
41  float32,
42  float64
43 };
44 
48 enum SampleInfoKeys: uint32_t
49 {
50  sai_device_original_time = 1851393682,
51  sai_counter = 1660111993
52 };
53 
59 uint32_t createSampleInfoHashKey(const std::string& name);
65 uint32_t createAdtf2SampleInfoHashKey(uint32_t info_index);
66 
72 {
73  public:
78  virtual void setTimeStamp(std::chrono::nanoseconds time_stamp) = 0;
83  virtual void setFlags(uint32_t flags) = 0;
88  virtual void setSubStreamId(uint32_t substream_id) = 0;
95  virtual void* beginBufferWrite(size_t size) = 0;
99  virtual void endBufferWrite() = 0;
106  virtual void addInfo(uint32_t key, DataType type, uint64_t raw_bytes) = 0;
107 };
108 
114 {
115  public:
120  virtual std::chrono::nanoseconds getTimeStamp() const = 0;
125  virtual uint32_t getFlags() const = 0;
130  virtual uint32_t getSubStreamId() const = 0;
136  virtual std::pair<const void*, size_t> beginBufferRead() const = 0;
140  virtual void endBufferRead() const = 0;
145  virtual void iterateInfo(std::function<void(uint32_t key, DataType type, uint64_t raw_bytes)> functor) const = 0;
146 
147 };
148 
153 {
154  public:
161  virtual void setRawSampleInfo(const void* data, size_t data_size, uint8_t layout_version) = 0;
162 };
163 
168 {
169  public:
174  virtual void getRawSampleInfo(std::function<void(const void*, size_t, uint8_t)> handler) const = 0;
175 };
176 
177 }
178 
179 #endif
interface class for reading sample information.
Definition: sample.h:153
virtual void setRawSampleInfo(const void *data, size_t data_size, uint8_t layout_version)=0
Set the Raw Sample Info.
Interface class for samples that are read from a Reader.
Definition: sample.h:72
virtual void endBufferWrite()=0
ends writing to the memory allocated with beginBufferWrite
virtual void * beginBufferWrite(size_t size)=0
allocates the memory buffer for sample data
virtual void setFlags(uint32_t flags)=0
Set the Flags.
virtual void setTimeStamp(std::chrono::nanoseconds time_stamp)=0
Set the Time Stamp.
virtual void addInfo(uint32_t key, DataType type, uint64_t raw_bytes)=0
Adds a additional sample information.
virtual void setSubStreamId(uint32_t substream_id)=0
Set the Sub Stream Id, if needed.
interface class for writing sample information.
Definition: sample.h:168
virtual void getRawSampleInfo(std::function< void(const void *, size_t, uint8_t)> handler) const =0
Get the Raw Sample Info.
Interface class for samples that are written.
Definition: sample.h:114
virtual void endBufferRead() const =0
Ends reading from memory buffer retruned by beginBufferRead.
virtual std::chrono::nanoseconds getTimeStamp() const =0
Get the Time Stamp.
virtual std::pair< const void *, size_t > beginBufferRead() const =0
Retrieve a pointer to the memory buffer for user data and size in bytes.
virtual uint32_t getSubStreamId() const =0
Get the Sub Stream Id if set.
virtual uint32_t getFlags() const =0
Get the Flags.
virtual void iterateInfo(std::function< void(uint32_t key, DataType type, uint64_t raw_bytes)> functor) const =0
iterates all additional data information (if any) by calling the functor
namespace for ADTF File library
Definition: adtf2_adtf_core_media_sample_deserializer.h:25
uint32_t createAdtf2SampleInfoHashKey(uint32_t info_index)
Create a Adtf2 Sample Info Hash Key.
DataType
data type id for the adtf_file::ReadSample::addInfo call.
Definition: sample.h:32
uint32_t createSampleInfoHashKey(const std::string &name)
Create a Sample Info Hash Key.
SampleInfoKeys
predefefined keys for the adtf_file::ReadSample::addInfo call.
Definition: sample.h:49

Copyright © CARIAD SE.
Generated on Mon Jun 10 2024 by doxygen 1.9.1
GIT Commit Hash: eb3af397a6b49ad6fcad9a60d8277d909b458b48