83 void process(std::shared_ptr<Buffer> buffer);
161 m_processing_token =
token;
186 std::atomic<size_t> m_active_processing { 0 };
197 void process_non_owning(std::shared_ptr<Buffer> buffer);
232 [](
const auto& info) { return info.is_compatible; });
237 [](
const auto& info) { return info.will_be_skipped; });
242 [](
const auto& info) { return info.pending_removal; });
static MayaFlux::Nodes::ProcessingToken token
Advanced pipeline manager for multi-stage buffer transformations with backend optimization.
virtual bool is_compatible_with(std::shared_ptr< Buffer >) const
Checks if this processor can handle the specified buffer type.
virtual ProcessingToken get_processing_token() const
Gets the current processing token for this buffer.
virtual void on_attach(std::shared_ptr< Buffer >)
Called when this processor is attached to a buffer.
virtual void set_processing_token(ProcessingToken token)
Gets the preferred processing backend for this processor.
virtual ~BufferProcessor()=default
Virtual destructor for proper cleanup of derived classes.
virtual void on_detach(std::shared_ptr< Buffer >)
Called when this processor is detached from a buffer.
virtual void processing_function(std::shared_ptr< Buffer > buffer)=0
The core processing function that must be implemented by derived classes.
Central computational transformation interface for continuous buffer processing.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
TokenEnforcementStrategy
Defines how strictly processing token requirements are enforced in buffer processing chains.
void validate_token(ProcessingToken token)
Validates that a processing token has a valid, non-conflicting configuration.
std::shared_ptr< BufferProcessor > processor
ProcessingToken processor_token
Holds information about a processor's compatibility with a buffer's processing token.
size_t pending_removal_processors() const
std::shared_ptr< Buffer > buffer
size_t skipped_processors() const
TokenEnforcementStrategy enforcement_strategy
ProcessingToken chain_preferred_token
size_t compatible_processors() const
std::vector< ProcessorTokenInfo > processor_infos
size_t total_processors() const
Holds the results of token compatibility analysis for a buffer processing chain.