Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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);
        }