1. 05 Sep, 2014 1 commit
  2. 04 Sep, 2014 12 commits
  3. 03 Sep, 2014 6 commits
  4. 02 Sep, 2014 6 commits
  5. 01 Sep, 2014 10 commits
  6. 31 Aug, 2014 4 commits
    • Pieter Wuille's avatar
    • Kamil Domanski's avatar
      rework overhauled serialization methods to non-static · 84881f8c
      Kamil Domanski authored
      Thanks to Pieter Wuille for most of the work on this commit.
      I did not fixup the overhaul commit, because a rebase conflicted
      with "remove fields of ser_streamplaceholder".
      I prefer not to risk making a mistake while resolving it.
      84881f8c
    • Kamil Domanski's avatar
      remove fields of ser_streamplaceholder · 5d96b4ae
      Kamil Domanski authored
      The nType and nVersion fields of stream objects are never accessed
      from outside the class (or perhaps from the inside too, I haven't checked).
      Thus no need to have them in a placeholder, whose only purpose is to
      fill the "Stream" template parameter in serialization implementation.
      5d96b4ae
    • Kamil Domanski's avatar
      overhaul serialization code · 3d796f89
      Kamil Domanski authored
      The implementation of each class' serialization/deserialization is no longer
      passed within a macro. The implementation now lies within a template of form:
      
      template <typename T, typename Stream, typename Operation>
      inline static size_t SerializationOp(T thisPtr, Stream& s, Operation ser_action, int nType, int nVersion) {
          size_t nSerSize = 0;
          /* CODE */
          return nSerSize;
      }
      
      In cases when codepath should depend on whether or not we are just deserializing
      (old fGetSize, fWrite, fRead flags) an additional clause can be used:
      bool fRead = boost::is_same<Operation, CSerActionUnserialize>();
      
      The IMPLEMENT_SERIALIZE macro will now be a freestanding clause added within
      class' body (similiar to Qt's Q_OBJECT) to implement GetSerializeSize,
      Serialize and Unserialize. These are now wrappers around
      the "SerializationOp" template.
      3d796f89
  7. 30 Aug, 2014 1 commit