in cluster-sharding/src/main/scala/org/apache/pekko/cluster/sharding/protobuf/ClusterShardingMessageSerializer.scala [272:324]
override def toBinary(obj: AnyRef): Array[Byte] = obj match {
case m: State => compress(coordinatorStateToProto(m))
case ShardRegionRegistered(ref) => actorRefMessageToProto(ref).toByteArray
case ShardRegionProxyRegistered(ref) => actorRefMessageToProto(ref).toByteArray
case ShardRegionTerminated(ref) => actorRefMessageToProto(ref).toByteArray
case ShardRegionProxyTerminated(ref) => actorRefMessageToProto(ref).toByteArray
case m: ShardHomeAllocated => shardHomeAllocatedToProto(m).toByteArray
case ShardHomeDeallocated(shardId) => shardIdMessageToProto(shardId).toByteArray
case Register(ref) => actorRefMessageToProto(ref).toByteArray
case RegisterProxy(ref) => actorRefMessageToProto(ref).toByteArray
case RegisterAck(ref) => actorRefMessageToProto(ref).toByteArray
case GetShardHome(shardId) => shardIdMessageToProto(shardId).toByteArray
case m: ShardHome => shardHomeToProto(m).toByteArray
case sh: ShardHomes => shardHomesToProto(sh).toByteArray
case HostShard(shardId) => shardIdMessageToProto(shardId).toByteArray
case ShardStarted(shardId) => shardIdMessageToProto(shardId).toByteArray
case BeginHandOff(shardId) => shardIdMessageToProto(shardId).toByteArray
case BeginHandOffAck(shardId) => shardIdMessageToProto(shardId).toByteArray
case HandOff(shardId) => shardIdMessageToProto(shardId).toByteArray
case ShardStopped(shardId) => shardIdMessageToProto(shardId).toByteArray
case GracefulShutdownReq(ref) =>
actorRefMessageToProto(ref).toByteArray
case RegionStopped(ref) => actorRefMessageToProto(ref).toByteArray
case m: EntityState => entityStateToProto(m).toByteArray
case m: EntitiesStarted => entitiesStartedToProto(m).toByteArray
case m: EntitiesStopped => entitiesStoppedToProto(m).toByteArray
case s: StartEntity => startEntityToByteArray(s)
case s: StartEntityAck => startEntityAckToByteArray(s)
case GetShardStats => Array.emptyByteArray
case m: ShardStats => shardStatsToProto(m).toByteArray
case GetShardRegionStats => Array.emptyByteArray
case m: ShardRegionStats => shardRegionStatsToProto(m).toByteArray
case m: GetClusterShardingStats => getClusterShardingStatsToProto(m).toByteArray
case m: ClusterShardingStats => clusterShardingStatsToProto(m).toByteArray
case GetCurrentRegions => Array.emptyByteArray
case m: CurrentRegions => currentRegionsToProto(m).toByteArray
case GetCurrentShardState => Array.emptyByteArray
case m: CurrentShardState => currentShardStateToProto(m).toByteArray
case GetShardRegionState => Array.emptyByteArray
case m: ShardState => shardStateToProto(m).toByteArray
case m: CurrentShardRegionState => currentShardRegionStateToProto(m).toByteArray
case MigrationMarker => Array.emptyByteArray
case m: RememberShardsState => rememberShardsStateToProto(m).toByteArray
case _ =>
throw new IllegalArgumentException(s"Can't serialize object of type ${obj.getClass} in [${getClass.getName}]")
}