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; });
std::shared_ptr< NetworkGeometryBuffer > buffer
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.
void validate_token(ProcessingToken token)
Validates that a processing token has a valid, non-conflicting configuration.
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.
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.