Beispiel #1
0
        public void Serialize(ISnapshot baseSnap, ISnapshot snap, Stream stream)
        {
//            _binaryWriter = new MyBinaryWriter(stream);
            _binaryWriter = MyBinaryWriter.Allocate(stream);
            Reset();
            snap.Header.Serialize(_binaryWriter, _version);
            var baseMap    = baseSnap.EntityMap;
            var currentMap = snap.EntityMap;
            SnapshotPatchGenerator handler = new SnapshotPatchGenerator(_serializerManager);

            EntityMapComparator.Diff(baseMap, currentMap, handler, "serialize");
            SnapshotPatch patch = handler.Detach();

            patch.BaseSnapshotSeq = baseSnap.SnapshotSeq;
            patch.Serialize(_binaryWriter, _serializerManager);
            _binaryWriter.ReleaseReference();
            patch.ReleaseReference();
        }