83 void process(
const std::shared_ptr<Buffer>& buffer);
120 virtual void on_attach(
const std::shared_ptr<Buffer>&) { };
138 virtual void on_detach(
const std::shared_ptr<Buffer>&) { };
161 m_processing_token =
token;
186 std::atomic<size_t> m_active_processing { 0 };
197 void process_non_owning(
const 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 ProcessingToken get_processing_token() const
Gets the current processing token for this 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 bool is_compatible_with(const std::shared_ptr< Buffer > &) const
Checks if this processor can handle the specified buffer type.
virtual void on_attach(const std::shared_ptr< Buffer > &)
Called when this processor is attached to a buffer.
virtual void on_detach(const std::shared_ptr< Buffer > &)
Called when this processor is detached from a buffer.
virtual void processing_function(const 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.
void validate_token(ProcessingToken token)
Validates that a processing token has a valid, non-conflicting configuration.
TokenEnforcementStrategy
Defines how strictly processing token requirements are enforced in buffer processing chains.
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.