ImagingTools Core SDK
CCxxProcessorCompBase.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 <ilog/TLoggerCompWrap.h>
7
8// imtCore includes
9#include <imtsdlgencpp/ICxxFileProcessor.h>
10#include <imtsdlgencpp/IIncludeDirectivesProvider.h>
11
12
13namespace imtsdlgencpp
14{
19 public ilog::CLoggerComponentBase,
20 virtual public IIncludeDirectivesProvider,
21 virtual public ICxxFileProcessor
22{
23public:
24 typedef ilog::CLoggerComponentBase BaseClass;
25
26 I_BEGIN_BASE_COMPONENT(CCxxProcessorCompBase);
27 I_REGISTER_INTERFACE(IIncludeDirectivesProvider)
28 I_REGISTER_INTERFACE(ICxxFileProcessor)
29 I_ASSIGN(m_processorTypeIdAttrPtr, "ProcessorTypeId", "Type ID of a processor and directives\n\tWARNING: MUST be set!", false ,"")
30 I_END_COMPONENT
31
32 // reimplemented (ICxxFileProcessor)
33 virtual QString GetProcessorTypeId() const override;
34
35 // reimplemented (IIncludeDirectivesProvider)
36 virtual QString GetDirectivesTypeId() const override;
37
38protected:
39 I_ATTR(QString, m_processorTypeIdAttrPtr);
40};
41
42
43// inline methods
44
45
46// reimplemented (ICxxFileProcessor)
47inline QString CCxxProcessorCompBase::GetProcessorTypeId() const
48{
49 Q_ASSERT(m_processorTypeIdAttrPtr.IsValid());
50 return m_processorTypeIdAttrPtr.IsValid() ? *m_processorTypeIdAttrPtr : QString();
51}
52
53
54// reimplemented (IIncludeDirectivesProvider)
55
56inline QString CCxxProcessorCompBase::GetDirectivesTypeId() const
57{
58 Q_ASSERT(m_processorTypeIdAttrPtr.IsValid());
59 return m_processorTypeIdAttrPtr.IsValid() ? *m_processorTypeIdAttrPtr : QString();
60}
61
62} // namespace imtsdlgencpp