ImagingTools Core SDK
CSdlEnumGeneratorComp.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//Qt includes
6#include <QtCore/QFile>
7
8// ACF includes
9#include <istd/TDelPtr.h>
10#include <iprm/ITextParam.h>
11#include <iprm/IOptionsManager.h>
12#include <iproc/TSyncProcessorCompBase.h>
13
14// ImtCore includes
15#include <imtsdl/ISdlProcessArgumentsParser.h>
16#include <imtsdl/CSdlTools.h>
17#include <imtsdl/CSdlEnumConverter.h>
18#include <imtsdlgencpp/IIncludeDirectivesProvider.h>
19#include <imtsdlgencpp/CSdlGenTools.h>
20#include <imtsdlgencpp/CCxxProcessorCompBase.h>
21
22
23namespace imtsdlgencpp
24{
25
31 private imtsdl::CSdlTools,
32 private CSdlGenTools,
33 private imtsdl::CSdlEnumConverter
34{
35
36public:
38
39 I_BEGIN_COMPONENT(CSdlEnumGeneratorComp)
40 I_ASSIGN(m_argumentParserCompPtr, "ArgumentParser", "Command line process argument parser", true, "ArgumentParser")
41 I_ASSIGN(m_customSchemaParamsCompPtr, "CustomSchemaParams", "Custom schema parameters, that contains additional options", false, "CustomSchemaParams")
42 I_ASSIGN(m_originalSchemaNamespaceCompPtr, "OriginalSchemaNamespace", "The namespace of the original(root) schema", true, "OriginalSchemaNamespace")
43 I_ASSIGN(m_dependentSchemaListCompPtr, "DependentSchemaList", "The list of dependent schemas, used to generate dependencies of output file", true, "DependentSchemaList")
44 I_END_COMPONENT
45
46 // reimplemented (ICxxFileProcessor)
47 virtual bool ProcessEntry(
48 const imtsdl::CSdlEntryBase& sdlEntry,
49 QIODevice* headerDevicePtr,
50 QIODevice* sourceDevicePtr = nullptr,
51 const iprm::IParamsSet* paramsPtr = nullptr) const override;
52
53 // reimplemented (IIncludeDirectivesProvider)
54 virtual QList<imtsdl::IncludeDirective> GetIncludeDirectives() const override;
55
56private:
57 I_REF(imtsdl::ISdlProcessArgumentsParser, m_argumentParserCompPtr);
58 I_REF(iprm::IParamsSet, m_customSchemaParamsCompPtr);
59 I_REF(iprm::ITextParam, m_originalSchemaNamespaceCompPtr);
60 I_REF(iprm::IOptionsManager, m_dependentSchemaListCompPtr);
61};
62
63
64} // namespace imtsdlgencpp
65