/[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 3184 by schoenebeck, Mon May 15 18:44:32 2017 UTC revision 3185 by schoenebeck, Wed May 17 15:42:58 2017 UTC
# Line 222  namespace Serialization { Line 222  namespace Serialization {
222          return __is_pod(T);          return __is_pod(T);
223      }*/      }*/
224    
225      /** @brief Unique identifier for one specific C++ object, member or fundamental variable.      /** @brief Unique identifier referring to one specific native C++ object, member, fundamental variable, or any other native C++ data.
226       *       *
227       * Reflects a unique identifier for one specific serialized C++ class       * Reflects a unique identifier for one specific serialized C++ data, i.e.
228       * instance, C/C++ struct instance, member, primitive pointer, or       * C++ class instance, C/C++ struct instance, member, primitive pointer,
229       * fundamental variables.       * fundamental variables, or any other native C/C++ data originally being
230         * serialized.
231       *       *
232       * A unique identifier is composed of an id (an identifier which is not       * A unique identifier is composed of an id (an identifier which is not
233       * necessarily unique) and a size. Since the underlying ID is derived from       * necessarily unique) and a size. Since the underlying ID is derived from
# Line 506  namespace Serialization { Line 507  namespace Serialization {
507          friend Member _popMemberBlob(const char*& p, const char* end);          friend Member _popMemberBlob(const char*& p, const char* end);
508      };      };
509    
510      /** @brief Abstract reflection of a native C++ class/struct instance.      /** @brief Abstract reflection of some native serialized C/C++ data.
511       *       *
512       * Provides detailed information about a specific serialized C++ object,       * When your native C++ objects are serialized, all native data is
513       * like its C++ member variables, its C++ class/struct name, its native       * translated and reflected by such an Object reflection. So each instance
514       * memory size and more. When your native C++ objects are serialized, all       * of your serialized native C++ class objects become available as an
515       * native data is translated reflected by such an Object reflection. So each       * Object, but also each member variable of your C++ objects is translated
516       * instance of your serialized C++ class objects become available as an       * into an Object, and any other native C/C++ data. So essentially every
517       * Object, but also each member variable of your C++ objects, and all other       * native data is turned into its own Object and accessible by this API.
518       * native C/C++ data. So essentially every native data is turned into its       *
519       * own Object and accessible by this API.       * For each one of those Object reflections, this class provides detailed
520         * information about their native origin. For example if an Object
521         * represents a native C++ class instante, then it provides access to its
522         * C++ class/struct name, to its C++ member variables, its native memory
523         * size and much more.
524       *       *
525       * Even though this framework allows you to adjust abstract Object instances       * Even though this framework allows you to adjust abstract Object instances
526       * to a certain extent, most of the methods of this Object class are       * to a certain extent, most of the methods of this Object class are
527       * read-only though and the actual modifyable methods are made available       * read-only though and the actual modifyable methods are made available
528       * not as part of this Object class, but as part of the Archive class       * not as part of this Object class, but as part of the Archive class
529       * instead. This was designed like this for performance and safety reasons.       * instead. This design decision was made for performance and safety
530         * reasons.
531       *       *
532       * @see Archive::setIntValue() as an example for modifying Object instances.       * @see Archive::setIntValue() as an example for modifying Object instances.
533       */       */

Legend:
Removed from v.3184  
changed lines
  Added in v.3185

  ViewVC Help
Powered by ViewVC