/[svn]/libgig/trunk/src/Serialization.h
ViewVC logotype

Diff of /libgig/trunk/src/Serialization.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 3146 by schoenebeck, Wed May 3 19:54:08 2017 UTC revision 3150 by schoenebeck, Fri May 5 18:42:06 2017 UTC
# Line 178  namespace Serialization { Line 178  namespace Serialization {
178      typedef std::vector<UID> UIDChain;      typedef std::vector<UID> UIDChain;
179    
180      // prototyping of private internal friend functions      // prototyping of private internal friend functions
181        static String _encodePrimitiveValue(const Object& obj);
182      static DataType _popDataTypeBlob(const char*& p, const char* end);      static DataType _popDataTypeBlob(const char*& p, const char* end);
183      static Member _popMemberBlob(const char*& p, const char* end);      static Member _popMemberBlob(const char*& p, const char* end);
184      static Object _popObjectBlob(const char*& p, const char* end);      static Object _popObjectBlob(const char*& p, const char* end);
185      static void _popPrimitiveValue(const char*& p, const char* end, Object& obj);      static void _popPrimitiveValue(const char*& p, const char* end, Object& obj);
186        static String _primitiveObjectValueToString(const Object& obj);
187    
188      /** @brief Abstract reflection of a native C++ data type.      /** @brief Abstract reflection of a native C++ data type.
189       *       *
# Line 286  namespace Serialization { Line 288  namespace Serialization {
288          bool m_isPointer;          bool m_isPointer;
289    
290          friend DataType _popDataTypeBlob(const char*& p, const char* end);          friend DataType _popDataTypeBlob(const char*& p, const char* end);
291            friend class Archive;
292      };      };
293    
294      /** @brief Abstract reflection of a native C++ class/struct's member variable.      /** @brief Abstract reflection of a native C++ class/struct's member variable.
# Line 378  namespace Serialization { Line 381  namespace Serialization {
381          RawData m_data;          RawData m_data;
382          std::vector<Member> m_members;          std::vector<Member> m_members;
383    
384            friend String _encodePrimitiveValue(const Object& obj);
385          friend Object _popObjectBlob(const char*& p, const char* end);          friend Object _popObjectBlob(const char*& p, const char* end);
386          friend void _popPrimitiveValue(const char*& p, const char* end, Object& obj);          friend void _popPrimitiveValue(const char*& p, const char* end, Object& obj);
387            friend String _primitiveObjectValueToString(const Object& obj);
388            friend class Archive;
389      };      };
390    
391      /** @brief Destination container for serialization, and source container for deserialization.      /** @brief Destination container for serialization, and source container for deserialization.
# Line 533  namespace Serialization { Line 539  namespace Serialization {
539              deserialize(&obj);              deserialize(&obj);
540          }          }
541    
542          const RawData& rawData() const { return m_rawData; }          const RawData& rawData();
543          virtual String rawDataFormat() const;          virtual String rawDataFormat() const;
544    
545          template<typename T_classType, typename T_memberType>          template<typename T_classType, typename T_memberType>
# Line 567  namespace Serialization { Line 573  namespace Serialization {
573          virtual void decode(const RawData& data);          virtual void decode(const RawData& data);
574          virtual void decode(const uint8_t* data, size_t size);          virtual void decode(const uint8_t* data, size_t size);
575          void clear();          void clear();
576            bool isModified() const;
577          void remove(const Object& obj);          void remove(const Object& obj);
578          Object& rootObject();          Object& rootObject();
579          Object& objectByUID(const UID& uid);          Object& objectByUID(const UID& uid);
580            void setAutoValue(Object& object, String value);
581            void setIntValue(Object& object, int64_t value);
582            void setRealValue(Object& object, double value);
583            void setBoolValue(Object& object, bool value);
584            void setEnumValue(Object& object, uint64_t value);
585            String valueAsString(const Object& object);
586    
587      protected:      protected:
588          // UID resolver for non-pointer types          // UID resolver for non-pointer types
# Line 676  namespace Serialization { Line 689  namespace Serialization {
689          operation_t m_operation;          operation_t m_operation;
690          UID m_root;          UID m_root;
691          RawData m_rawData;          RawData m_rawData;
692            bool m_isModified;
693      };      };
694    
695      /**      /**

Legend:
Removed from v.3146  
changed lines
  Added in v.3150

  ViewVC Help
Powered by ViewVC