ImagingTools Core SDK
CDelegatedBinaryDataProviderComp.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// ACF includes
6#include <icomp/CComponentBase.h>
7
8// ImtCore includes
9#include <imtrest/IBinaryDataProvider.h>
10
11
12namespace imtrest
13{
14
15
16class CDelegatedBinaryDataProviderComp:
17 public icomp::CComponentBase,
18 virtual public imtrest::IBinaryDataProvider
19{
20public:
21 typedef icomp::CComponentBase BaseClass;
22
23 I_BEGIN_COMPONENT(CDelegatedBinaryDataProviderComp);
24 I_REGISTER_INTERFACE(imtrest::IBinaryDataProvider);
25 I_ASSIGN_MULTI_0(m_slaveBinaryDataProvidersCompPtr, "SlaveBinaryDataProviders", "Slave binary data provider", false);
26 I_END_COMPONENT
27
28 // reimplemented (IBinaryDataProvider)
29 virtual bool GetData(
30 QByteArray& data,
31 const QByteArray& dataId,
32 qint64 readFromPosition = 0,
33 qint64 readMaxLength = -1) const override;
34private:
35 I_MULTIREF(imtrest::IBinaryDataProvider, m_slaveBinaryDataProvidersCompPtr);
36};
37
38
39} // namespace imtrest
40
41
The IBinaryDataProvider class provides file from disc, resources or memory.