725 |
*/ |
*/ |
726 |
class Archive { |
class Archive { |
727 |
public: |
public: |
728 |
|
/** @brief Current activity of @c Archive object. |
729 |
|
*/ |
730 |
|
enum operation_t { |
731 |
|
OPERATION_NONE, ///< Archive is currently neither serializing, nor deserializing. |
732 |
|
OPERATION_SERIALIZE, ///< Archive is currently serializing. |
733 |
|
OPERATION_DESERIALIZE ///< Archive is currently deserializing. |
734 |
|
}; |
735 |
|
|
736 |
Archive(); |
Archive(); |
737 |
Archive(const RawData& data); |
Archive(const RawData& data); |
738 |
Archive(const uint8_t* data, size_t size); |
Archive(const uint8_t* data, size_t size); |
801 |
template<typename T> |
template<typename T> |
802 |
void deserialize(T* obj) { |
void deserialize(T* obj) { |
803 |
Archive a; |
Archive a; |
804 |
m_operation = OPERATION_DESERIALIZE; |
a.m_operation = m_operation = OPERATION_DESERIALIZE; |
805 |
obj->serialize(&a); |
obj->serialize(&a); |
806 |
a.m_root = UID::from(obj); |
a.m_root = UID::from(obj); |
807 |
Syncer s(a, *this); |
Syncer s(a, *this); |
808 |
m_operation = OPERATION_NONE; |
a.m_operation = m_operation = OPERATION_NONE; |
809 |
} |
} |
810 |
|
|
811 |
/** @brief Initiate serialization of your C++ objects. |
/** @brief Initiate serialization of your C++ objects. |
1076 |
time_t timeStampModified() const; |
time_t timeStampModified() const; |
1077 |
tm dateTimeCreated(time_base_t base = LOCAL_TIME) const; |
tm dateTimeCreated(time_base_t base = LOCAL_TIME) const; |
1078 |
tm dateTimeModified(time_base_t base = LOCAL_TIME) const; |
tm dateTimeModified(time_base_t base = LOCAL_TIME) const; |
1079 |
|
operation_t operation() const; |
1080 |
|
|
1081 |
protected: |
protected: |
1082 |
// UID resolver for non-pointer types |
// UID resolver for non-pointer types |
1194 |
Archive& m_src; |
Archive& m_src; |
1195 |
}; |
}; |
1196 |
|
|
|
enum operation_t { |
|
|
OPERATION_NONE, |
|
|
OPERATION_SERIALIZE, |
|
|
OPERATION_DESERIALIZE |
|
|
}; |
|
|
|
|
1197 |
virtual void encode(); |
virtual void encode(); |
1198 |
|
|
1199 |
ObjectPool m_allObjects; |
ObjectPool m_allObjects; |