ACF $AcfVersion:0$
ISerializable.h
Go to the documentation of this file.
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ACF-Commercial
2#pragma once
3
4
5// ACF includes
6#include <istd/IChangeable.h>
7#include <iser/IVersionInfo.h>
8
9
10namespace iser
11{
12
13
14class IArchive;
15
16
23class ISerializable: virtual public istd::IChangeable
24{
25public:
31 virtual bool Serialize(IArchive& archive) = 0;
36 virtual quint32 GetMinimalVersion(int versionId) const;
37};
38
39
40// inline methods
41
42inline quint32 ISerializable::GetMinimalVersion(int /*versionId*/) const
43{
44 return 0;
45}
46
47
50
51
52} // namespace iser
53
54
55
56
Represents an input/output persistence archive for object serialization.
Definition IArchive.h:164
Common class for all classes which objects can be archived or restored from archive.
virtual bool Serialize(IArchive &archive)=0
Load or store state of this object as a archive stream.
virtual quint32 GetMinimalVersion(int versionId) const
Get minimal needed version to correct storing of this data.
Common interface for data model objects, which can be changed.
Definition IChangeable.h:28
Shared ownership smart pointer for interface types.
Unique ownership smart pointer for interface types.
Contains general persistence mechanism with basic archives implementations.
istd::TSharedInterfacePtr< iser::ISerializable > ISerializableSharedPtr
istd::TUniqueInterfacePtr< iser::ISerializable > ISerializableUniquePtr