8#include <QtCore/QTextStream>
59 I_ASSIGN(m_packagesManagerCompPtr,
"PackagesManager",
"Packages manager providing access to package informations",
true,
"PackagesManager");
60 I_ASSIGN_TO(m_extPackagesManagerCompPtr, m_packagesManagerCompPtr,
false);
61 I_ASSIGN(m_registriesManagerCompPtr,
"RegistriesManager",
"Registries manager providing access to all composite component registries",
true,
"RegistriesManager");
62 I_ASSIGN(m_workingModeAttrPtr,
"WorkingMode",
"Working mode\n\t0 - generate sources\n\t1 - generate dependencies to registries\n\t2 - generate all dependencies",
true, 0);
63 I_ASSIGN(m_translationLevelAttrPtr,
"TranslationLevel",
"Level of configuration used for translation all packages, if disabled all levels of used packages will be stored",
false, 0);
64 I_ASSIGN(m_useBinaryCodeAttrPtr,
"UseBinaryCode",
"If true, binary serialized registries will be used instead of generated by code",
true,
false);
65 I_ASSIGN(m_depfilePathAttrPtr,
"DepfilePath",
"Optional path where the dependency file will be stored",
false,
"");
73 const QString* filePathPtr =
NULL,
75 bool beQuiet =
true)
const override;
78 const QString& filePath = QString(),
82 const QString& filePath = QString(),
91 typedef QSet<QByteArray>
Ids;
98 const QStringList& registryPath,
105 const QByteArray& className,
109 QTextStream& stream)
const;
111 const QByteArray& className,
113 QTextStream& stream)
const;
115 const QByteArray& className,
119 QTextStream& stream)
const;
124 QTextStream& stream)
const;
127 const QByteArray& registryCallPrefix,
128 QTextStream& stream)
const;
131 const QByteArray& registryCallPrefix,
132 const QByteArray& componentId,
134 QTextStream& stream)
const;
136 const QByteArray& attributeId,
137 const QByteArray& componentId,
138 const QByteArray& attributeName,
140 QTextStream& stream)
const;
147 bool& translationFound,
148 QTextStream& stream)
const;
154 bool& translationFound,
155 QTextStream& stream)
const;
161 const QByteArray& componentId,
163 bool& translationFound,
164 QTextStream& stream)
const;
167 const QByteArray& baseClassName,
168 const QByteArray& registryClassName,
170 QTextStream& stream)
const;
172 const QByteArray& baseClassName,
173 const QByteArray& registryClassName,
175 QTextStream& stream)
const;
183 QByteArray& valueString,
184 QByteArray& typeName)
const;
187 QList<QByteArray>& valueStrings,
188 QByteArray& typeName)
const;
223 I_ATTR(
int, m_workingModeAttrPtr);
224 I_ATTR(
int, m_translationLevelAttrPtr);
225 I_ATTR(
bool, m_useBinaryCodeAttrPtr);
226 I_ATTR(QString, m_depfilePathAttrPtr);
228 mutable int m_indentCount;
Consume information about progress of some process.
Allow access to registries defined by composed components.
Interface representing information stored in component registry.
Interface providing loading and saving of data objects.
OperationState
Result of operation.
Provide loading and saving of objects.
Template wrapper adding comprehensive logging functionality to components.
Save registry as C++ code (it generates C++ class with the same functionality) and/or dependencies li...
virtual OperationState LoadFromFile(istd::IChangeable &data, const QString &filePath=QString(), ibase::IProgressManager *progressManagerPtr=NULL) const override
This function loads data data from file filePath.
bool WriteHeader(const QByteArray &className, const icomp::IRegistry ®istry, const Addresses &composedAddresses, const Addresses &realAddresses, QTextStream &stream) const
bool AppendAddresses(const icomp::IRegistry ®istry, const QStringList ®istryPath, Addresses &realAddresses, Addresses &composedAddresses) const
Get component addresses used by given registry and its elements (recursively).
QByteArray GetIdValueLiteral(const QByteArray &text) const
Get some string as C++ string literal.
bool WritePackagesTranslation(int level, bool &translationFound, QTextStream &stream) const
Write translation macro of all string attributes from packages till some level of package depth.
bool ExtractInfoFromFile(const QString &filePath, QByteArray &className, QString &baseFilePath) const
Extract class name and absolute header path from a file name.
QByteArray GetStringLiteral(const QString &text) const
Get some wide string as C++ string literal.
bool WriteRegistryTranslation(const icomp::IRegistry ®istry, bool &translationFound, QTextStream &stream) const
Write translation macro of all string attributes from registry.
bool WriteAttribute(const QByteArray &attributeId, const QByteArray &componentId, const QByteArray &attributeName, const iser::IObject &attribute, QTextStream &stream) const
bool WriteComponentInfo(const icomp::IRegistry ®istry, const QByteArray ®istryCallPrefix, const QByteArray &componentId, const icomp::IRegistry::ElementInfo &componentInfo, QTextStream &stream) const
bool WriteRegistryInfo(const icomp::IRegistry ®istry, const QByteArray ®istryCallPrefix, QTextStream &stream) const
QSet< icomp::CComponentAddress > Addresses
ilog::CLoggerComponentBase BaseClass
bool WriteRegistryClassDeclaration(const QByteArray &baseClassName, const QByteArray ®istryClassName, const icomp::IRegistry ®istry, QTextStream &stream) const
QByteArray GetPackageName(const QByteArray &packageId) const
Ensure that a package name ends with 'Pck'.
bool GetMultiAttributeValue(const iser::ISerializable &attribute, QList< QByteArray > &valueStrings, QByteArray &typeName) const
bool WriteDependencies(const Addresses &composedAddresses, const Addresses &realAddresses, bool singleLine, QTextStream &stream) const
bool WriteClassDefinitions(const QByteArray &className, const icomp::IRegistry ®istry, const Addresses &composedAddresses, const Addresses &realAddresses, QTextStream &stream) const
virtual bool IsOperationSupported(const istd::IChangeable *dataObjectPtr, const QString *filePathPtr=NULL, int flags=-1, bool beQuiet=true) const override
Returns true if object dataObject can be loaded/saved.
bool NextLine(QTextStream &stream) const
Insert a new line and indentation tabs.
virtual bool GetFileExtensions(QStringList &result, const istd::IChangeable *dataObjectPtr=NULL, int flags=-1, bool doAppend=false) const override
Get file extensions supported by this loader.
bool WriteDeserializingCode(const iser::ISerializable &object, QTextStream &stream) const
Write code deserializing some object from data buffer.
int ChangeIndent(int difference) const
bool WriteIncludes(const QByteArray &className, const Addresses &addresses, QTextStream &stream) const
bool WriteComponentTranslation(const QByteArray &componentId, const icomp::IRegistry::ElementInfo &componentInfo, bool &translationFound, QTextStream &stream) const
Write translation macro of all string attributes from component.
Ids ExtractComponentIds(const Addresses &addresses, const QByteArray &packageId) const
virtual QString GetTypeDescription(const QString *extensionPtr=NULL) const override
Get description of object type associated with single extension.
Ids ExtractPackageIds(const Addresses &addresses) const
virtual OperationState SaveToFile(const istd::IChangeable &data, const QString &filePath=QString(), ibase::IProgressManager *progressManagerPtr=NULL) const override
This function saves data data to file filePath.
bool WriteRegistryClassBody(const QByteArray &baseClassName, const QByteArray ®istryClassName, const icomp::IRegistry ®istry, QTextStream &stream) const
bool GetAttributeValue(const iser::ISerializable &attribute, QByteArray &valueString, QByteArray &typeName) const
QByteArray GetValidIdentifier(const QByteArray &identifier) const
Get valid C++ identifier (used for variable names) from arbitrary string.
@ WM_DEPENDENCIES
Generation of dependencies to all related ACF registry files.
@ WM_SOURCES
Generation of sources.
Constraints of selection from set of possibilities.
Common interface for factorisable model objects.
Common class for all classes which objects can be archived or restored from archive.
Common interface for data model objects, which can be changed.
Package contains implementation for the management of ACF environment.
Describe information stored with each element.