Skip to content

EntropyEngine::Core::Concurrency::NodeCompletedEvent

EntropyEngine::Core::Concurrency::NodeCompletedEvent

Section titled “EntropyEngine::Core::Concurrency::NodeCompletedEvent”

Success! More…

#include <WorkGraphEvents.h>

Inherits from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
NodeCompletedEvent(const WorkGraph * g, NodeHandle n, std::chrono::steady_clock::duration duration ={})
Name
NodeHandlenode
The successful node.
std::chrono::steady_clock::durationexecutionTime
How long it took.

Public Functions inherited from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
WorkGraphEvent(const WorkGraph * g)

Public Attributes inherited from EntropyEngine::Core::Concurrency::WorkGraphEvent

Name
std::chrono::steady_clock::time_pointtimestamp
When this event was created.
const WorkGraph *graph
Which graph emitted this event.
struct EntropyEngine::Core::Concurrency::NodeCompletedEvent;

Success!

A node finished without throwing

This is your “mission accomplished” notification. The node ran to completion without exceptions. Includes execution time for performance analysis - though this might be zero if timing wasn’t tracked.

// Performance monitoring
eventBus->subscribe<NodeCompletedEvent>([](const auto& event) {
auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(
event.executionTime).count();
LOG_INFO("Node {} completed in {}ms",
event.node.getData()->name, ms);
if (ms > 1000) {
LOG_WARN("Slow node detected!");
}
});
inline NodeCompletedEvent(
const WorkGraph * g,
NodeHandle n,
std::chrono::steady_clock::duration duration ={}
)
NodeHandle node;

The successful node.

std::chrono::steady_clock::duration executionTime;

How long it took.


Updated on 2026-01-26 at 17:14:35 -0500