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

◆ TokenEnforcementStrategy

Defines how strictly processing token requirements are enforced in buffer processing chains.

TokenEnforcementStrategy provides different levels of flexibility for handling processor-buffer compatibility based on processing tokens. This allows the system to balance performance optimization with operational flexibility depending on the application's requirements.

The enforcement strategy affects how BufferProcessingChain handles processors with incompatible tokens, ranging from strict validation to complete flexibility. This enables different operational modes for development, production, and specialized processing scenarios.

Enumerator
STRICT 

Strictly enforces token assignment with no cross-token sharing.

Processors must exactly match the buffer's processing token requirements. Any incompatibility results in immediate rejection. This provides maximum performance optimization by ensuring all processors in a chain can execute with the same backend configuration, but offers the least flexibility.

FILTERED 

Filters processors through token enumeration, allowing compatible combinations.

Uses the are_tokens_compatible() function to determine if processors can work together despite different token assignments. This allows some flexibility while maintaining performance optimization for compatible processor combinations. Incompatible processors are filtered out rather than rejected outright.

OVERRIDE_SKIP 

Allows token overrides but skips processing for incompatible operations.

Permits processors with different tokens to be added to processing chains, but skips their execution when the tokens are incompatible. This maintains chain integrity while allowing dynamic processor management. Useful for conditional processing scenarios where not all processors need to execute.

OVERRIDE_REJECT 

Allows token overrides but rejects incompatible processors from chains.

Similar to OVERRIDE_SKIP but removes incompatible processors from the chain entirely rather than skipping them. This provides a middle ground between flexibility and performance by cleaning up incompatible processors while allowing initial token mismatches during chain construction.

IGNORE 

Ignores token assignments completely, allowing any processing combination.

Disables all token validation and compatibility checking. Any processor can be added to any buffer's processing chain regardless of token compatibility. This provides maximum flexibility but may result in suboptimal performance or execution errors. Primarily useful for debugging or specialized scenarios.

Definition at line 19 of file BufferUtils.hpp.

19 {
20 /**
21 * @brief Strictly enforces token assignment with no cross-token sharing
22 *
23 * Processors must exactly match the buffer's processing token requirements.
24 * Any incompatibility results in immediate rejection. This provides maximum
25 * performance optimization by ensuring all processors in a chain can execute
26 * with the same backend configuration, but offers the least flexibility.
27 */
28 STRICT,
29
30 /**
31 * @brief Filters processors through token enumeration, allowing compatible combinations
32 *
33 * Uses the are_tokens_compatible() function to determine if processors can work
34 * together despite different token assignments. This allows some flexibility while
35 * maintaining performance optimization for compatible processor combinations.
36 * Incompatible processors are filtered out rather than rejected outright.
37 */
39
40 /**
41 * @brief Allows token overrides but skips processing for incompatible operations
42 *
43 * Permits processors with different tokens to be added to processing chains,
44 * but skips their execution when the tokens are incompatible. This maintains
45 * chain integrity while allowing dynamic processor management. Useful for
46 * conditional processing scenarios where not all processors need to execute.
47 */
49
50 /**
51 * @brief Allows token overrides but rejects incompatible processors from chains
52 *
53 * Similar to OVERRIDE_SKIP but removes incompatible processors from the chain
54 * entirely rather than skipping them. This provides a middle ground between
55 * flexibility and performance by cleaning up incompatible processors while
56 * allowing initial token mismatches during chain construction.
57 */
59
60 /**
61 * @brief Ignores token assignments completely, allowing any processing combination
62 *
63 * Disables all token validation and compatibility checking. Any processor can
64 * be added to any buffer's processing chain regardless of token compatibility.
65 * This provides maximum flexibility but may result in suboptimal performance
66 * or execution errors. Primarily useful for debugging or specialized scenarios.
67 */
68 IGNORE
69};
@ OVERRIDE_SKIP
Allows token overrides but skips processing for incompatible operations.
@ STRICT
Strictly enforces token assignment with no cross-token sharing.
@ OVERRIDE_REJECT
Allows token overrides but rejects incompatible processors from chains.
@ FILTERED
Filters processors through token enumeration, allowing compatible combinations.
@ IGNORE
Ignores token assignments completely, allowing any processing combination.