Pleora Technologies Inc. eBUS SDK v6.2.8.5877 API



PvChunkData.h
1 // *****************************************************************************
2 //
3 // Copyright (c) 2017, Pleora Technologies Inc., All rights reserved.
4 //
5 // *****************************************************************************
6 
7 #ifndef __PVCHUNKDATA_H__
8 #define __PVCHUNKDATA_H__
9 
10 #include <PvBufferLib.h>
11 #include <PvPixelType.h>
12 
13 
14 class PV_BUFFER_API IPvChunkData
15 {
16 public:
17 
18  virtual ~IPvChunkData() {}
19 
20  virtual void ResetChunks() = 0;
21 #ifdef EBUS_PYTHON_DOXYGEN
22  virtual PvResult AddChunk( uint32_t aID, bytes aData ) = 0;
23 #else
24  virtual PvResult AddChunk( uint32_t aID, const uint8_t *aData, uint32_t aLength ) = 0;
25 #endif
26  virtual void SetChunkLayoutID( uint32_t aChunkLayoutID ) = 0;
27 
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;
36 #else
37  virtual const uint8_t *GetChunkRawDataByIndex( uint32_t aIndex ) = 0;
38  virtual const uint8_t *GetChunkRawDataByID( uint32_t aID ) = 0;
39 #endif
40  virtual uint32_t GetChunkLayoutID() = 0;
41 
42  virtual uint32_t GetChunkDataSize() const = 0;
43  virtual uint32_t GetChunkDataCapacity() const = 0;
44 
45 };
46 
47 
48 class PV_BUFFER_API PvChunkData
49  : public IPvChunkData
50 {
51 public:
52 
53  virtual ~PvChunkData() {}
54 
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;
61 #else
62  virtual PvResult Attach( void * aRawBuffer, uint32_t aMaximumChunkLength ) = 0;
63  virtual uint8_t *Detach() = 0;
64 #endif
65 
66 };
67 
68 
69 #endif
Generic chunk data interface.
Definition: PvChunkData.h:14
Raw data interface to a PvBuffer.
Definition: PvChunkData.h:48
Result information.
Definition: PvResult.h:13

Copyright (c) 2002-2021 Pleora Technologies Inc.
www.pleora.com