Beispiel #1
0
        private PersistentPayload.Builder PayloadBuilder(object payload)
        {
            var serializer = system.Serialization.FindSerializerFor(payload);
            var builder    = PersistentPayload.CreateBuilder();

            if (serializer is SerializerWithStringManifest)
            {
                var manifest = ((SerializerWithStringManifest)serializer).Manifest(payload);
                if (manifest != null)
                {
                    builder.SetPayloadManifest(ByteString.CopyFromUtf8(manifest));
                }
            }
            else if (serializer.IncludeManifest)
            {
                builder.SetPayloadManifest(ByteString.CopyFromUtf8(payload.GetType().TypeQualifiedName()));
            }

            var bytes = serializer.ToBinary(payload);

            builder
            .SetPayload(ByteString.CopyFrom(bytes))
            .SetSerializerId(serializer.Identifier);

            return(builder);
        }
        private object PayloadFromProto(PersistentPayload persistentPayload)
        {
            var payloadType = persistentPayload.HasPayloadManifest
                ? Type.GetType(persistentPayload.PayloadManifest.ToStringUtf8())
                : null;

            return(system.Serialization.Deserialize(persistentPayload.Payload.ToByteArray(), persistentPayload.SerializerId, payloadType));
        }
        private object PayloadFromProto(PersistentPayload persistentPayload)
        {
            var payloadType = persistentPayload.HasPayloadManifest
                ? Type.GetType(persistentPayload.PayloadManifest.ToStringUtf8())
                : null;

            return system.Serialization.Deserialize(persistentPayload.Payload.ToByteArray(), persistentPayload.SerializerId, payloadType);
        }
Beispiel #4
0
        private object PayloadFromProto(PersistentPayload persistentPayload)
        {
            var manifest = persistentPayload.HasPayloadManifest
                ? persistentPayload.PayloadManifest.ToStringUtf8()
                : string.Empty;

            return(system.Serialization.Deserialize(persistentPayload.Payload.ToByteArray(), persistentPayload.SerializerId, manifest));
        }
        private object GetPayload(PersistentPayload payload)
        {
            string manifest = "";

            if (payload.PayloadManifest != null)
            {
                manifest = payload.PayloadManifest.ToStringUtf8();
            }

            return(system.Serialization.Deserialize(payload.Payload.ToByteArray(), payload.SerializerId, manifest));
        }
        private Snapshot GetSnapshot(byte[] bytes)
        {
            PersistentPayload payload = PersistentPayload.Parser.ParseFrom(bytes);

            string manifest = "";

            if (payload.PayloadManifest != null)
            {
                manifest = payload.PayloadManifest.ToStringUtf8();
            }

            return(new Snapshot(system.Serialization.Deserialize(payload.Payload.ToByteArray(), payload.SerializerId, manifest)));
        }
        private PersistentPayload.Builder PersistentPayloadToProto(object payload)
        {
            var serializer = system.Serialization.FindSerializerFor(payload);
            var builder    = PersistentPayload.CreateBuilder();

            if (serializer.IncludeManifest)
            {
                builder.SetPayloadManifest(ByteString.CopyFromUtf8(payload.GetType().FullName));
            }

            var bytes = serializer.ToBinaryWithAddress(TransportInformation.Address, payload);

            builder
            .SetPayload(ByteString.CopyFrom(bytes))
            .SetSerializerId(serializer.Identifier);

            return(builder);
        }
Beispiel #8
0
        private PersistentPayload GetPersistentPayload(Snapshot snapshot)
        {
            PersistentPayload Serialize()
            {
                var serializer = system.Serialization.FindSerializerFor(snapshot.Data);
                var payload    = new PersistentPayload();

                if (serializer is SerializerWithStringManifest stringManifest)
                {
                    var manifest = stringManifest.Manifest(snapshot.Data);
                    payload.PayloadManifest = ByteString.CopyFromUtf8(manifest);
                }
                else
                {
                    if (serializer.IncludeManifest)
                    {
                        var payloadType = snapshot.Data.GetType();
                        payload.PayloadManifest = ByteString.CopyFromUtf8(payloadType.AssemblyQualifiedName);
                    }
                }

                payload.Payload      = ByteString.CopyFrom(serializer.ToBinary(snapshot.Data));
                payload.SerializerId = serializer.Identifier;

                return(payload);
            }

            var oldInfo = Akka.Serialization.Serialization.CurrentTransportInformation;

            try
            {
                if (oldInfo == null)
                {
                    Akka.Serialization.Serialization.CurrentTransportInformation =
                        system.Provider.SerializationInformation;
                }
                return(Serialize());
            }
            finally
            {
                Akka.Serialization.Serialization.CurrentTransportInformation = oldInfo;
            }
        }
        private PersistentPayload GetPersistentPayload(object obj)
        {
            PersistentPayload BuildPayload()
            {
                var serializer = system.Serialization.FindSerializerFor(obj);
                var payload    = new PersistentPayload();

                if (serializer is SerializerWithStringManifest serializer2)
                {
                    var manifest = serializer2.Manifest(obj);
                    payload.PayloadManifest = ByteString.CopyFromUtf8(manifest);
                }
                else
                {
                    if (serializer.IncludeManifest)
                    {
                        payload.PayloadManifest = ByteString.CopyFromUtf8(obj.GetType().TypeQualifiedName());
                    }
                }

                payload.Payload      = ByteString.CopyFrom(serializer.ToBinary(obj));
                payload.SerializerId = serializer.Identifier;

                return(payload);
            }

            var oldInfo = Akka.Serialization.Serialization.CurrentTransportInformation;

            try
            {
                if (oldInfo == null)
                {
                    Akka.Serialization.Serialization.CurrentTransportInformation =
                        system.Provider.SerializationInformation;
                }
                return(BuildPayload());
            }
            finally
            {
                Akka.Serialization.Serialization.CurrentTransportInformation = oldInfo;
            }
        }
        private PersistentPayload.Builder PersistentPayloadToProto(object payload)
        {
            if (TransportInformation != null)
            {
                Akka.Serialization.Serialization.CurrentTransportInformation = TransportInformation;
            }

            var serializer = system.Serialization.FindSerializerFor(payload);
            var builder    = PersistentPayload.CreateBuilder();

            if (serializer.IncludeManifest)
            {
                builder.SetPayloadManifest(ByteString.CopyFromUtf8(payload.GetType().FullName));
            }

            builder
            .SetPayload(ByteString.CopyFrom(serializer.ToBinary(payload)))
            .SetSerializerId(serializer.Identifier);

            return(builder);
        }
        private PersistentPayload GetPersistentPayload(object obj)
        {
            Serializer serializer = system.Serialization.FindSerializerFor(obj);
            var        payload    = new PersistentPayload();

            if (serializer is SerializerWithStringManifest serializer2)
            {
                string manifest = serializer2.Manifest(obj);
                payload.PayloadManifest = ByteString.CopyFromUtf8(manifest);
            }
            else
            {
                if (serializer.IncludeManifest)
                {
                    payload.PayloadManifest = ByteString.CopyFromUtf8(obj.GetType().TypeQualifiedName());
                }
            }

            payload.Payload      = ByteString.CopyFrom(serializer.ToBinary(obj));
            payload.SerializerId = serializer.Identifier;

            return(payload);
        }
        private PersistentPayload GetPersistentPayload(Snapshot snapshot)
        {
            Serializer        serializer = system.Serialization.FindSerializerFor(snapshot.Data);
            PersistentPayload payload    = new PersistentPayload();

            if (serializer is SerializerWithStringManifest)
            {
                string manifest = ((SerializerWithStringManifest)serializer).Manifest(snapshot.Data);
                payload.PayloadManifest = ByteString.CopyFromUtf8(manifest);
            }
            else
            {
                if (serializer.IncludeManifest)
                {
                    var payloadType = snapshot.Data.GetType();
                    payload.PayloadManifest = ByteString.CopyFromUtf8(payloadType.AssemblyQualifiedName);
                }
            }

            payload.Payload      = ByteString.CopyFrom(serializer.ToBinary(snapshot.Data));
            payload.SerializerId = serializer.Identifier;

            return(payload);
        }
Beispiel #13
0
        private PersistentPayload GetPersistentPayload(object obj)
        {
            PersistentPayload BuildPayload()
            {
                var serializer = system.Serialization.FindSerializerFor(obj);
                var payload    = new PersistentPayload();

                var manifest = Akka.Serialization.Serialization.ManifestFor(serializer, obj);

                if (!string.IsNullOrEmpty(manifest))
                {
                    payload.PayloadManifest = ByteString.CopyFromUtf8(manifest);
                }

                payload.Payload      = ByteString.CopyFrom(serializer.ToBinary(obj));
                payload.SerializerId = serializer.Identifier;

                return(payload);
            }

            var oldInfo = Akka.Serialization.Serialization.CurrentTransportInformation;

            try
            {
                if (oldInfo == null)
                {
                    Akka.Serialization.Serialization.CurrentTransportInformation =
                        system.Provider.SerializationInformation;
                }
                return(BuildPayload());
            }
            finally
            {
                Akka.Serialization.Serialization.CurrentTransportInformation = oldInfo;
            }
        }
Beispiel #14
0
        private object PayloadFromProto(PersistentPayload persistentPayload)
        {
            var manifest = persistentPayload.HasPayloadManifest
                ? persistentPayload.PayloadManifest.ToStringUtf8()
                : string.Empty;

            return system.Serialization.Deserialize(persistentPayload.Payload.ToByteArray(), persistentPayload.SerializerId, manifest);
        }