Skip to content

EntropyEngine::Core::Concurrency::WorkGraphConfig

EntropyEngine::Core::Concurrency::WorkGraphConfig

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

Configuration parameters and feature toggles for WorkGraph instances. More…

#include <WorkGraphTypes.h>

Name
std::shared_ptr< Core::EventBus >sharedEventBus
Use shared event bus instead of creating own - for system-wide event correlation.
std::function< void(void *)>nodeDeallocator
std::function< void *(size_t)>nodeAllocator
Custom allocator for node storage - integrate with your memory system.
size_tmaxDeferredProcessingIterations
Maximum iterations when processing deferred nodes - controls how aggressively we fill capacity Higher values ensure more aggressive filling of available capacity.
size_tmaxDeferredNodes
Maximum deferred queue size (0 = unlimited) - prevents unbounded memory growth.
size_texpectedNodeCount
Expected number of nodes (for pre-allocation) - avoids reallocation during execution.
boolenableStateManager
Enable advanced state management - for complex workflows with state machines.
boolenableEvents
Enable event bus for this graph - enables monitoring.
boolenableDebugRegistration
Enable debug registration - makes graph visible in debug tools.
boolenableDebugLogging
Enable debug logging - verbose output for troubleshooting.
boolenableAdvancedScheduling
Enable advanced scheduling features - priority queues, affinity, etc.
struct EntropyEngine::Core::Concurrency::WorkGraphConfig;

Configuration parameters and feature toggles for WorkGraph instances.

WorkGraph supports various complexity levels from minimal to feature-rich configurations. This structure provides control over optional features and tuning parameters. Default values provide a lightweight graph configuration.

The configuration allows customization of graph behavior through feature enablement, tuning, and resource management options to match specific use case requirements.

// Minimal config for simplified setup
WorkGraphConfig fastConfig;
fastConfig.expectedNodeCount = 1000; // Pre-allocate storage
// Rich config for debugging and monitoring
WorkGraphConfig debugConfig;
debugConfig.enableEvents = true;
debugConfig.enableDebugLogging = true;
debugConfig.enableDebugRegistration = true;
// Custom memory management
WorkGraphConfig customConfig;
customConfig.nodeAllocator = myPoolAllocator;
customConfig.nodeDeallocator = myPoolDeallocator;
std::shared_ptr< Core::EventBus > sharedEventBus = nullptr;

Use shared event bus instead of creating own - for system-wide event correlation.

std::function< void(void *)> nodeDeallocator = nullptr;
std::function< void *(size_t)> nodeAllocator = nullptr;

Custom allocator for node storage - integrate with your memory system.

size_t maxDeferredProcessingIterations = 10;

Maximum iterations when processing deferred nodes - controls how aggressively we fill capacity Higher values ensure more aggressive filling of available capacity.

size_t maxDeferredNodes = 0;

Maximum deferred queue size (0 = unlimited) - prevents unbounded memory growth.

size_t expectedNodeCount = 16;

Expected number of nodes (for pre-allocation) - avoids reallocation during execution.

bool enableStateManager = false;

Enable advanced state management - for complex workflows with state machines.

bool enableEvents = false;

Enable event bus for this graph - enables monitoring.

bool enableDebugRegistration = false;

Enable debug registration - makes graph visible in debug tools.

bool enableDebugLogging = false;

Enable debug logging - verbose output for troubleshooting.

bool enableAdvancedScheduling = false;

Enable advanced scheduling features - priority queues, affinity, etc.


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