@@ -139,27 +139,28 @@ class PowerDistributingActor:
139139
140140 battery_status_channel = Broadcast[BatteryStatus]("battery-status")
141141
142- channel = Bidirectional[Request, Result]("user1", "power_distributor")
142+ channel = Broadcast[Request]("power_distributor")
143+ channel_registry = ChannelRegistry(name="power_distributor")
143144 power_distributor = PowerDistributingActor(
144- users_channels={"user1": channel.service_handle},
145+ requests_receiver=channel.new_receiver(),
146+ channel_registry=channel_registry,
145147 battery_status_sender=battery_status_channel.new_sender(),
146148 )
147149
148- # Start the actor
149- await actor.run(power_distributor)
150-
151- client_handle = channel.client_handle
152-
150+ sender = channel.new_sender()
151+ namespace: str = "namespace"
153152 # Set power 1200W to given batteries.
154- request = Request(power=1200.0, batteries=batteries_ids, request_timeout_sec=10.0)
155- await client_handle.send(request)
156-
157- # Set power 1200W to given batteries.
158- request = Request(power=1200, batteries=batteries_ids, request_timeout_sec=10.0)
159- await client_handle.send(request)
153+ request = Request(
154+ namespace=namespace,
155+ power=1200.0,
156+ batteries=batteries_ids,
157+ request_timeout_sec=10.0
158+ )
159+ await sender.send(request)
160+ result_rx = channel_registry.new_receiver(namespace)
160161
161162 # It is recommended to use timeout when waiting for the response!
162- result: Result = await asyncio.wait_for(client_handle .receive(), timeout=10)
163+ result: Result = await asyncio.wait_for(result_rx .receive(), timeout=10)
163164
164165 if isinstance(result, Success):
165166 print("Command succeed")
0 commit comments