Caching¤
The LatestValueCache caches the latest value in a receiver.
It provides a way to look up the latest value in a stream whenever required, as long as there has been one value received.
LatestValueCache takes a
Receiver as an argument and stores the latest
value received by that receiver. As soon as a value is received, its
has_value method returns
True, and its get method returns
the latest value received. The get method will raise an exception if called
before any messages have been received from the receiver.
Example:
from frequenz.channels import Broadcast, LatestValueCache
channel = Broadcast[int](name="lvc_test")
cache = LatestValueCache(channel.new_receiver())
sender = channel.new_sender()
assert not cache.has_value()
await sender.send(5)
assert cache.has_value()
assert cache.get() == 5