Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
roc::pipeline::IPipelineTaskScheduler Class Referenceabstract

Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work. Method calls may come from different threads, but are serialized. More...

#include <ipipeline_task_scheduler.h>

Inheritance diagram for roc::pipeline::IPipelineTaskScheduler:

Public Member Functions

virtual void schedule_task_processing (PipelineLoop &pipeline, core::nanoseconds_t deadline)=0
 Schedule asynchronous work. More...
 
virtual void cancel_task_processing (PipelineLoop &pipeline)=0
 Cancel previously scheduled asynchronous work. More...
 

Detailed Description

Pipeline task scheduler interface. PipelineLoop uses this interface to schedule asynchronous work. Method calls may come from different threads, but are serialized.

Definition at line 25 of file ipipeline_task_scheduler.h.

Member Function Documentation

◆ cancel_task_processing()

virtual void roc::pipeline::IPipelineTaskScheduler::cancel_task_processing ( PipelineLoop pipeline)
pure virtual

Cancel previously scheduled asynchronous work.

◆ schedule_task_processing()

virtual void roc::pipeline::IPipelineTaskScheduler::schedule_task_processing ( PipelineLoop pipeline,
core::nanoseconds_t  deadline 
)
pure virtual

Schedule asynchronous work.

pipeline calls this when it wants to invoke PipelineLoop::process_tasks() asynchronously.

deadline is a hint when it's better to invoke the method. It's an absolute timestamp in nanoseconds from the same clock domain as core::timestamp().

Zero deadline means invoke as soon as possible.


The documentation for this class was generated from the following file: