7 #ifndef __PVCHUNKDATA_H__
8 #define __PVCHUNKDATA_H__
10 #include <PvBufferLib.h>
20 virtual void ResetChunks() = 0;
21 #ifdef EBUS_PYTHON_DOXYGEN
22 virtual PvResult AddChunk( uint32_t aID, bytes aData ) = 0;
24 virtual PvResult AddChunk( uint32_t aID,
const uint8_t *aData, uint32_t aLength ) = 0;
26 virtual void SetChunkLayoutID( uint32_t aChunkLayoutID ) = 0;
28 virtual bool HasChunks()
const = 0;
29 virtual uint32_t GetChunkCount() = 0;
30 virtual PvResult GetChunkIDByIndex( uint32_t aIndex, uint32_t &aID ) = 0;
31 virtual uint32_t GetChunkSizeByIndex( uint32_t aIndex ) = 0;
32 virtual uint32_t GetChunkSizeByID( uint32_t aID ) = 0;
33 #ifdef EBUS_PYTHON_DOXYGEN
34 virtual ndarray GetChunkRawDataByIndex(
int aIndex ) = 0;
35 virtual ndarray GetChunkRawDataByID(
int aID ) = 0;
37 virtual const uint8_t *GetChunkRawDataByIndex( uint32_t aIndex ) = 0;
38 virtual const uint8_t *GetChunkRawDataByID( uint32_t aID ) = 0;
40 virtual uint32_t GetChunkLayoutID() = 0;
42 virtual uint32_t GetChunkDataSize()
const = 0;
43 virtual uint32_t GetChunkDataCapacity()
const = 0;
55 virtual uint64_t GetChunkDataPayloadLength()
const = 0;
56 virtual PvResult Alloc( uint32_t aMaximumChunkLength ) = 0;
57 virtual void Free() = 0;
58 #ifdef EBUS_PYTHON_DOXYGEN
59 virtual PvResult Attach( ndarray aRawBuffer ) = 0;
60 virtual ndarray Detach() = 0;
62 virtual PvResult Attach(
void * aRawBuffer, uint32_t aMaximumChunkLength ) = 0;
63 virtual uint8_t *Detach() = 0;