Struct: TReceiverChannel

template <typename T>
struct TReceiverChannel;

SPMC (single-prodicer, multiple-consumer) receiver channel.

See TSenderChannel.

Example

	auto Sender = TSenderChannel<int>();
	auto Receiver = Sender.Receiver(1);

	Sender.Send(42);
	while (const auto Value = Receiver.Receive())
	{
		UE_LOG(LogTemp, Warning, TEXT("Received value: %i"), Value);
	}

Methods

  • Clear

    public:
    void Clear();
    

    Clears internal queue.

    User would rather want to read and conume stored messages but sometimes user might have valid reasons to discard all messages without reading them.

  • IsEmpty

    public:
    bool IsEmpty() const;
    

    Checks if there are incoming messages in queue.

  • Receive

    public:
    TOptional<T> Receive();
    

    Consumes and returns one message from internal queue.

    Example

    	auto Sender = TSenderChannel<int>();
    	auto Receiver = Sender.Receiver(1);
    
    	Sender.Send(42);
    	while (const auto Value = Receiver.Receive())
    	{
    		UE_LOG(LogTemp, Warning, TEXT("Received value: %i"), Value);
    	}
    
  • Unbind

    public:
    void Unbind();
    

    Unbind from sender.

    This forcefully unbinds reciever from sender and clears internal queue, though user do not have to call this method when its lifetime ends - receivers unbind themselves as soon as they get destroyed. This method exists only in case user would want to stop receiving further messages on demand, useful in more advanced scenarios.


Documentation built with Unreal-Doc v1.0.8 tool by PsichiX