GenApi 3.5.1
ChunkAdapterUniversal.h
1//-----------------------------------------------------------------------------
2// (c) 2019-2022 by MVTec Software GmbH
3// Author: Jan Becvar
4//
5// License: This file is published under the license of the EMVA GenICam Standard Group.
6// A text file describing the legal terms is included in your installation as 'GenICam_license.pdf'.
7// If for some reason you are missing this file please contact the EMVA or visit the website
8// (http://www.genicam.org) for a full copy.
9//
10// THIS SOFTWARE IS PROVIDED BY THE EMVA GENICAM STANDARD GROUP "AS IS"
11// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
12// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
13// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE EMVA GENICAM STANDARD GROUP
14// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
15// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
16// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
17// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
18// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
19// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
20// POSSIBILITY OF SUCH DAMAGE.
21//
22//-----------------------------------------------------------------------------
28#ifndef GENAPI_CHUNKADAPTERUNIVERSAL_H
29#define GENAPI_CHUNKADAPTERUNIVERSAL_H
30
31#include <GenApi/ChunkAdapter.h>
32#include <GenApi/ChunkAdapterGeneric.h>
33
34
35namespace GENAPI_NAMESPACE
36{
38 class GENAPI_DECL CChunkAdapterUniversal : public CChunkAdapter
39 {
40
41 public:
43 CChunkAdapterUniversal(INodeMap* pNodeMap = NULL, int64_t MaxChunkCacheSize = -1);
44
47
48 // Does not have implementation, use one of the specific versions if needed
49 virtual bool CheckBufferLayout(uint8_t *pBuffer, int64_t BufferLength);
50
51 // Buffer layout checkers for big/little-endian standard chunk formats
52 bool CheckBufferLayoutBE(const uint8_t *pBuffer, int64_t BufferLength);
53 bool CheckBufferLayoutLE(const uint8_t *pBuffer, int64_t BufferLength);
54
55 // Does not have implementation, use one of the specific versions
56 virtual void AttachBuffer(uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
57
58 // Attach buffer containing standard big/little-endian chunk formats
59 void AttachBufferBE(const uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
60 void AttachBufferLE(const uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
61
62 // Named versions referring to particular standards defining the chunk formats
63 void AttachBufferGEV(const uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
64 void AttachBufferU3V(const uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
65 void AttachBufferGenDC(const uint8_t *pBuffer, int64_t BufferLength, AttachStatistics_t *pAttachStatistics = NULL);
66
67 // Generic version for use with GenTL-based chunk parsing functions for buffer with unknown format
68 void AttachBufferGeneric(const uint8_t *pBuffer, SingleChunkData_t *ChunkData, int64_t NumChunks, AttachStatistics_t *pAttachStatistics = NULL);
69 void AttachBufferGeneric(const uint8_t *pBuffer, SingleChunkDataStr_t *ChunkData, int64_t NumChunks, AttachStatistics_t *pAttachStatistics = NULL);
70 };
71
72}
73
74#endif // GENAPI_CHUNKADAPTERUNIVERSAL_H
Declaration of the CChunkAdapter class.
Connects a universal chunked buffer to a node map.
Definition ChunkAdapterUniversal.h:39
CChunkAdapterUniversal(INodeMap *pNodeMap=NULL, int64_t MaxChunkCacheSize=-1)
Constructor.
virtual ~CChunkAdapterUniversal()
Destructor.
Connects a chunked buffer to a node map.
Definition ChunkAdapter.h:56
Definition ChunkAdapter.h:44