Akka.Cluster.Sharding.Serialization.ClusterShardingMessageSerializer.ToBinary C# (CSharp) Method

ToBinary() public method

public ToBinary ( object obj ) : byte[]
obj object
return byte[]
        public override byte[] ToBinary(object obj)
        {
            if (obj is PersistentShardCoordinator.State) return Compress(CoordinatorStateToProto((PersistentShardCoordinator.State)obj));
            if (obj is PersistentShardCoordinator.ShardRegionRegistered) return ActorRefMessageToProto(((PersistentShardCoordinator.ShardRegionRegistered)obj).Region).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardRegionProxyRegistered) return ActorRefMessageToProto(((PersistentShardCoordinator.ShardRegionProxyRegistered)obj).RegionProxy).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardRegionTerminated) return ActorRefMessageToProto(((PersistentShardCoordinator.ShardRegionTerminated)obj).Region).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardRegionProxyTerminated) return ActorRefMessageToProto(((PersistentShardCoordinator.ShardRegionProxyTerminated)obj).RegionProxy).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardHomeAllocated) return ShardHomeAllocatedToProto((PersistentShardCoordinator.ShardHomeAllocated)obj).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardHomeDeallocated) return ShardIdMessageToProto(((PersistentShardCoordinator.ShardHomeDeallocated)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.Register) return ActorRefMessageToProto(((PersistentShardCoordinator.Register)obj).ShardRegion).ToByteArray();
            if (obj is PersistentShardCoordinator.RegisterProxy) return ActorRefMessageToProto(((PersistentShardCoordinator.RegisterProxy)obj).ShardRegionProxy).ToByteArray();
            if (obj is PersistentShardCoordinator.RegisterAck) return ActorRefMessageToProto(((PersistentShardCoordinator.RegisterAck)obj).Coordinator).ToByteArray();
            if (obj is PersistentShardCoordinator.GetShardHome) return ShardIdMessageToProto(((PersistentShardCoordinator.GetShardHome)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardHome) return ShardHomeToProto((PersistentShardCoordinator.ShardHome)obj).ToByteArray();
            if (obj is PersistentShardCoordinator.HostShard) return ShardIdMessageToProto(((PersistentShardCoordinator.HostShard)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardStarted) return ShardIdMessageToProto(((PersistentShardCoordinator.ShardStarted)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.BeginHandOff) return ShardIdMessageToProto(((PersistentShardCoordinator.BeginHandOff)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.BeginHandOffAck) return ShardIdMessageToProto(((PersistentShardCoordinator.BeginHandOffAck)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.HandOff) return ShardIdMessageToProto(((PersistentShardCoordinator.HandOff)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.ShardStopped) return ShardIdMessageToProto(((PersistentShardCoordinator.ShardStopped)obj).Shard).ToByteArray();
            if (obj is PersistentShardCoordinator.GracefulShutdownRequest) return ActorRefMessageToProto(((PersistentShardCoordinator.GracefulShutdownRequest)obj).ShardRegion).ToByteArray();
            if (obj is Shard.ShardState) return EntityStateToProto((Shard.ShardState)obj).ToByteArray();
            if (obj is Shard.EntityStarted) return EntityStartedToProto((Shard.EntityStarted)obj).ToByteArray();
            if (obj is Shard.EntityStopped) return EntityStoppedToProto((Shard.EntityStopped)obj).ToByteArray();
            if (obj is Shard.GetShardStats) return new byte[0];
            if (obj is Shard.ShardStats) return ShardStatsToProto((Shard.ShardStats)obj).ToByteArray();

            throw new ArgumentException(string.Format("Can't serialize object of type [{0}] in [{1}]", obj.GetType(), this.GetType()));
        }