|
| DataSource (size_t size=0) |
|
| DataSource (const DataSourceChunk &chunk) |
| Constructor for a single DataSourceChunk.
|
|
| DataSource (const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk) |
| Constructor for two DataSourceChunk objects.
|
|
| DataSource (const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk, const DataSourceChunk &thirdChunk) |
| Constructor for three DataSourceChunk objects.
|
|
| DataSource (DataLayout &dataLayout) |
| Constructor for a single DataLayout, no DataSourceChunk.
|
|
| DataSource (DataLayout &dataLayout, const DataSourceChunk &chunk) |
| Constructor for single DataLayout, single DataSourceChunk.
|
|
| DataSource (DataLayout &dataLayout, const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk) |
| Constructor for single DataLayout, two DataSourceChunk objects.
|
|
| DataSource (DataLayout &dataLayout, const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk, const DataSourceChunk &thirdChunk) |
| Constructor for single DataLayout, three DataSourceChunk objects.
|
|
| DataSource (DataLayout &dataLayout1, DataLayout &dataLayout2) |
| Constructor for two DataLayout objects, no DataSourceChunk.
|
|
| DataSource (DataLayout &dataLayout1, DataLayout &dataLayout2, const DataSourceChunk &chunk) |
| Constructor for two DataLayout objects, single DataSourceChunk.
|
|
| DataSource (DataLayout &dataLayout1, DataLayout &dataLayout2, const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk) |
| Two DataLayout objects, two DataSourceChunk objects.
|
|
| DataSource (DataLayout &dataLayout1, DataLayout &dataLayout2, const DataSourceChunk &firstChunk, const DataSourceChunk &secondChunk, const DataSourceChunk &thirdChunk) |
| Two DataLayout objects, three DataSourceChunk objects.
|
|
| DataSource (const DataSource &)=delete |
|
DataSource & | operator= (const DataSource &)=delete |
|
size_t | getDataSize () const |
|
virtual void | copyTo (uint8_t *buffer) const |
|
A class referencing data to be captured in a record at creation.
VRS records data content are passed to VRS using a single DataSource object.
DataSource objects point to data to be copied in a record's buffer when createRecord() is called to perform a deep copy. This reduces the number of data copy required, as each DataLayoutChunk and DataSourceChunk object may point to internal data buffers, possibly owned by device drivers.
DataSource's default implementation holds 2 DataLayoutChunk objects, and 3 DataSourceChunk objects, in that order, which covers standard use cases, as each only optionally contains data.
For more advanced needs, you can override copyTo() and copy data at the provided location the way you like, but you must provide the exact amount of data upfront in the constructor. Alternatively, you can use custom DataSourceChunk objects that override fillAndAdvanceBuffer(). DataSource objects are expected to be temporary object created on the stack each time createdRecord() is called.