PipelineService

Trait PipelineService 

Source
pub trait PipelineService: Send + Sync {
    // Required methods
    fn process_file<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        input_path: &'life1 Path,
        output_path: &'life2 Path,
        context: ProcessFileContext,
    ) -> Pin<Box<dyn Future<Output = Result<ProcessingMetrics, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn process_chunks<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        pipeline: &'life1 Pipeline,
        chunks: Vec<FileChunk>,
        context: &'life2 mut ProcessingContext,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<FileChunk>, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn validate_pipeline<'life0, 'life1, 'async_trait>(
        &'life0 self,
        pipeline: &'life1 Pipeline,
    ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn estimate_processing_time<'life0, 'life1, 'async_trait>(
        &'life0 self,
        pipeline: &'life1 Pipeline,
        file_size: u64,
    ) -> Pin<Box<dyn Future<Output = Result<Duration, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn get_resource_requirements<'life0, 'life1, 'async_trait>(
        &'life0 self,
        pipeline: &'life1 Pipeline,
        file_size: u64,
    ) -> Pin<Box<dyn Future<Output = Result<ResourceRequirements, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn create_optimized_pipeline<'life0, 'life1, 'async_trait>(
        &'life0 self,
        file_path: &'life1 Path,
        requirements: PipelineRequirements,
    ) -> Pin<Box<dyn Future<Output = Result<Pipeline, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn monitor_execution<'life0, 'life1, 'async_trait>(
        &'life0 self,
        pipeline_id: PipelineId,
        context: &'life1 ProcessingContext,
    ) -> Pin<Box<dyn Future<Output = Result<ExecutionStatus, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn pause_execution<'life0, 'async_trait>(
        &'life0 self,
        pipeline_id: PipelineId,
    ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn resume_execution<'life0, 'async_trait>(
        &'life0 self,
        pipeline_id: PipelineId,
    ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn cancel_execution<'life0, 'async_trait>(
        &'life0 self,
        pipeline_id: PipelineId,
    ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_execution_history<'life0, 'async_trait>(
        &'life0 self,
        pipeline_id: PipelineId,
        limit: Option<usize>,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<ExecutionRecord>, PipelineError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
}
Expand description

Domain service for pipeline operations

Required Methods§

Source

fn process_file<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, input_path: &'life1 Path, output_path: &'life2 Path, context: ProcessFileContext, ) -> Pin<Box<dyn Future<Output = Result<ProcessingMetrics, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Process a file through the pipeline

Source

fn process_chunks<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, pipeline: &'life1 Pipeline, chunks: Vec<FileChunk>, context: &'life2 mut ProcessingContext, ) -> Pin<Box<dyn Future<Output = Result<Vec<FileChunk>, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Processes file chunks through a pipeline

Source

fn validate_pipeline<'life0, 'life1, 'async_trait>( &'life0 self, pipeline: &'life1 Pipeline, ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Validates a pipeline configuration

Source

fn estimate_processing_time<'life0, 'life1, 'async_trait>( &'life0 self, pipeline: &'life1 Pipeline, file_size: u64, ) -> Pin<Box<dyn Future<Output = Result<Duration, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Estimates processing time for a pipeline

Source

fn get_resource_requirements<'life0, 'life1, 'async_trait>( &'life0 self, pipeline: &'life1 Pipeline, file_size: u64, ) -> Pin<Box<dyn Future<Output = Result<ResourceRequirements, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Gets resource requirements for a pipeline

Source

fn create_optimized_pipeline<'life0, 'life1, 'async_trait>( &'life0 self, file_path: &'life1 Path, requirements: PipelineRequirements, ) -> Pin<Box<dyn Future<Output = Result<Pipeline, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Creates an optimized pipeline for a file type

Source

fn monitor_execution<'life0, 'life1, 'async_trait>( &'life0 self, pipeline_id: PipelineId, context: &'life1 ProcessingContext, ) -> Pin<Box<dyn Future<Output = Result<ExecutionStatus, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Monitors pipeline execution

Source

fn pause_execution<'life0, 'async_trait>( &'life0 self, pipeline_id: PipelineId, ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Pauses pipeline execution

Source

fn resume_execution<'life0, 'async_trait>( &'life0 self, pipeline_id: PipelineId, ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Resumes pipeline execution

Source

fn cancel_execution<'life0, 'async_trait>( &'life0 self, pipeline_id: PipelineId, ) -> Pin<Box<dyn Future<Output = Result<(), PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Cancels pipeline execution

Source

fn get_execution_history<'life0, 'async_trait>( &'life0 self, pipeline_id: PipelineId, limit: Option<usize>, ) -> Pin<Box<dyn Future<Output = Result<Vec<ExecutionRecord>, PipelineError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Gets execution history for a pipeline

Implementors§