/[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 3138 by schoenebeck, Wed May 3 14:41:58 2017 UTC revision 3146 by schoenebeck, Wed May 3 19:54:08 2017 UTC
# Line 80  Line 80 
80   */   */
81  namespace Serialization {  namespace Serialization {
82    
83        // just symbol prototyping
84        class DataType;
85        class Object;
86        class Member;
87      class Archive;      class Archive;
88        class ObjectPool;
89      class Exception;      class Exception;
90    
91      typedef std::string String;      typedef std::string String;
# Line 172  namespace Serialization { Line 177  namespace Serialization {
177    
178      typedef std::vector<UID> UIDChain;      typedef std::vector<UID> UIDChain;
179    
180        // prototyping of private internal friend functions
181        static DataType _popDataTypeBlob(const char*& p, const char* end);
182        static Member _popMemberBlob(const char*& p, const char* end);
183        static Object _popObjectBlob(const char*& p, const char* end);
184        static void _popPrimitiveValue(const char*& p, const char* end, Object& obj);
185    
186      /** @brief Abstract reflection of a native C++ data type.      /** @brief Abstract reflection of a native C++ data type.
187       *       *
188       * Provides detailed information about a C++ data type, whether it is a       * Provides detailed information about a C++ data type, whether it is a
# Line 382  namespace Serialization { Line 393  namespace Serialization {
393       * @code       * @code
394       * Archive a;       * Archive a;
395       * a.serialize(&myRootObject);       * a.serialize(&myRootObject);
396       * @encode       * @endcode
397       * Or if you prefer the look of operator based code:       * Or if you prefer the look of operator based code:
398       * @code       * @code
399       * Archive a;       * Archive a;
400       * a << myRootObject;       * a << myRootObject;
401       * @encode       * @endcode
402       * The Archive object will then serialize all members of the passed C++       * The Archive object will then serialize all members of the passed C++
403       * object, and will recursively serialize all other C++ objects which it       * object, and will recursively serialize all other C++ objects which it
404       * contains or points to. So the root object is the starting point for the       * contains or points to. So the root object is the starting point for the
# Line 402  namespace Serialization { Line 413  namespace Serialization {
413       * @code       * @code
414       * Archive a(rawDataStream);       * Archive a(rawDataStream);
415       * a.deserialize(&myRootObject);       * a.deserialize(&myRootObject);
416       * @encode       * @endcode
417       * Or with operator instead:       * Or with operator instead:
418       * @code       * @code
419       * Archive a(rawDataStream);       * Archive a(rawDataStream);
420       * a >> myRootObject;       * a >> myRootObject;
421       * @encode       * @endcode
422       * Now this framework automatically handles serialization and       * Now this framework automatically handles serialization and
423       * deserialization of fundamental data types automatically for you (like       * deserialization of fundamental data types automatically for you (like
424       * i.e. char, int, long int, float, double, etc.). However for your own       * i.e. char, int, long int, float, double, etc.). However for your own

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

  ViewVC Help
Powered by ViewVC