6#include <ilog/TLoggerCompWrap.h>
7#include <ifile/IFilePersistence.h>
10#include <imtbase/IObjectCollection.h>
11#include <imtfile/IFileCompression.h>
18class CCompositeObjectPersistenceComp:
19 public ilog::CLoggerComponentBase,
20 virtual public ifile::IFilePersistence
23 typedef ilog::CLoggerComponentBase BaseClass;
38 I_BEGIN_COMPONENT(CCompositeObjectPersistenceComp);
39 I_REGISTER_INTERFACE(ifile::IFilePersistence);
40 I_REGISTER_INTERFACE(ifile::IFileTypeInfo);
41 I_ASSIGN(m_fileCompressionCompPtr,
"FileCompressor",
"File compressor",
false,
"FileCompressor");
42 I_ASSIGN_MULTI_0(m_objectTypeIdsAttrPtr,
"ObjectTypeIds",
"List of type-IDs for corresponding persistences",
true);
43 I_ASSIGN_MULTI_0(m_objectPresistencesCompPtr,
"ObjectPersistences",
"List of registered persistence according to the specified type-IDs",
true);
44 I_ASSIGN(m_workingModeAttrPtr,
"WorkingMode",
"Working mode.\n0 - Default processing\n1 - Ignore processing errors",
true, WM_IGNORE_ERRORS);
48 virtual bool IsOperationSupported(
49 const istd::IChangeable* dataObjectPtr,
50 const QString* filePathPtr = NULL,
52 bool beQuiet =
true)
const override;
53 virtual OperationState LoadFromFile(istd::IChangeable& data,
54 const QString& filePath = QString(),
55 ibase::IProgressManager* progressManagerPtr = NULL)
const override;
56 virtual OperationState SaveToFile(
const istd::IChangeable& data,
57 const QString& filePath = QString(),
58 ibase::IProgressManager* progressManagerPtr = NULL)
const override;
61 virtual bool GetFileExtensions(QStringList& result,
const istd::IChangeable* dataObjectPtr = NULL,
int flags = -1,
bool doAppend =
false)
const override;
62 virtual QString GetTypeDescription(
const QString* extensionPtr = NULL)
const override;
65 struct BundleElementInfo
75 const ifile::IFilePersistence* GetFilePersistenceForTypeId(
const QByteArray& typeId)
const;
76 virtual bool SerializeBundleMetaInfo(QVector<BundleElementInfo>& contentMetaInfo, iser::IArchive& archive)
const;
78 virtual bool LoadAdditionalData(istd::IChangeable& data,
const QString& path)
const;
79 virtual bool SaveAdditionalData(
const istd::IChangeable& data,
const QString& path)
const;
82 I_REF(imtfile::IFileCompression, m_fileCompressionCompPtr);
83 I_MULTIATTR(QByteArray, m_objectTypeIdsAttrPtr);
84 I_MULTIREF(ifile::IFilePersistence, m_objectPresistencesCompPtr);
85 I_ATTR(
bool, m_workingModeAttrPtr);