/// <summary>
        /// TBD
        /// </summary>
        /// <param name="stream">TBD</param>
        /// <param name="snapshot">TBD</param>
        protected void Serialize(Stream stream, Serialization.Snapshot snapshot)
        {
            var serializer = _serialization.FindSerializerFor(snapshot, _defaultSerializer);
            var bytes      = serializer.ToBinary(snapshot);

            stream.Write(bytes, 0, bytes.Length);
        }
Example #2
0
        private void Serialize(Serialization.Snapshot snapshot, Stream stream)
        {
            var serializer = _serialization.FindSerializerFor(snapshot);
            var bytes      = serializer.ToBinary(snapshot);

            stream.Write(bytes, 0, bytes.Length);
        }
        private SnapshotEntry ToSnapshotEntry(SnapshotMetadata metadata, object snapshot)
        {
            if (_settings.LegacySerialization)
            {
                var manifest = snapshot.GetType().TypeQualifiedName();

                return(new SnapshotEntry
                {
                    Id = metadata.PersistenceId + "_" + metadata.SequenceNr,
                    PersistenceId = metadata.PersistenceId,
                    SequenceNr = metadata.SequenceNr,
                    Snapshot = snapshot,
                    Timestamp = metadata.Timestamp.Ticks,
                    Manifest = manifest,
                    SerializerId = null
                });
            }

            var snapshotRep    = new Serialization.Snapshot(snapshot);
            var serializer     = _serialization.FindSerializerFor(snapshotRep);
            var binary         = serializer.ToBinary(snapshotRep);
            var binaryManifest = Akka.Serialization.Serialization.ManifestFor(serializer, snapshotRep);

            return(new SnapshotEntry
            {
                Id = metadata.PersistenceId + "_" + metadata.SequenceNr,
                PersistenceId = metadata.PersistenceId,
                SequenceNr = metadata.SequenceNr,
                Snapshot = binary,
                Timestamp = metadata.Timestamp.Ticks,
                Manifest = binaryManifest,
                SerializerId = serializer?.Identifier
            });
        }
Example #4
0
        private void Save(SnapshotMetadata metadata, object payload)
        {
            var tempFile = GetSnapshotFile(metadata, ".tmp");

            using (var stream = tempFile.OpenWrite())
            {
                var snapshot = new Serialization.Snapshot(payload);
                Serialize(snapshot, stream);
            }

            // remove .tmp extension and rename
            var newFilePath = tempFile.FullName.Substring(0, tempFile.FullName.Length - 4);

            File.Move(tempFile.FullName, newFilePath);
        }
        public byte[] SnapshotToBytes(Serialization.Snapshot snapshot)
        {
            var serializer = _actorSystem.Serialization.FindSerializerForType(_snapshotType);

            return(serializer.ToBinary(snapshot));
        }
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="stream">TBD</param>
        /// <param name="snapshot">TBD</param>
        protected void Serialize(Stream stream, Serialization.Snapshot snapshot)
        {
            var bytes = _wrapperSerializer.ToBinary(snapshot);

            stream.Write(bytes, 0, bytes.Length);
        }
        private void Save(SnapshotMetadata metadata, object payload)
        {
            var tempFile = GetSnapshotFile(metadata, ".tmp");
            using (var stream = tempFile.OpenWrite())
            {
                var snapshot = new Serialization.Snapshot(payload);
                Serialize(snapshot, stream);
            }

            // remove .tmp extension and rename
            var newFilePath = tempFile.FullName.Substring(0, tempFile.FullName.Length - 4);
            File.Move(tempFile.FullName, newFilePath);
        }