MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ on_message_from()

MAYAFLUX_API Vruta::Event MayaFlux::Kriya::on_message_from ( std::shared_ptr< Vruta::NetworkSource source,
std::string  sender_address,
std::function< void(const Core::NetworkMessage &)>  callback 
)

Creates an Event coroutine that fires only for messages from a specific sender.

Parameters
sourceShared ownership of the NetworkSource
sender_addressIP address string matched against NetworkMessage::sender_address
callbackInvoked with each matching message
Returns
Event coroutine suitable for EventManager::add_event()
auto task = Kriya::on_message_from(src, "192.168.1.10",
[](const Core::NetworkMessage& msg) { });
Vruta::Event on_message_from(std::shared_ptr< Vruta::NetworkSource > source, std::string sender_address, std::function< void(const Core::NetworkMessage &)> callback)
Creates an Event coroutine that fires only for messages from a specific sender.
A received datagram or framed message with sender metadata.

Definition at line 26 of file NetworkEvents.cpp.

30{
31 auto& promise = co_await GetEventPromise { source };
32
33 while (true) {
34 if (promise.should_terminate) {
35 break;
36 }
37
38 auto msg = co_await source->next_message();
39
40 if (msg.sender_address == sender_address) {
41 callback(msg);
42 }
43 }
44}
Event-domain promise accessor with optional NetworkSource ownership transfer.

Referenced by MayaFlux::on_network_message_from().

+ Here is the caller graph for this function: