ADTF
IRunnableabstract

The Runnable interface defines common methods for a running component. More...

Inheritance diagram for IRunnable:
[legend]

Public Types

enum  tActivationType : uint32_t {
  RUN_UNSPECIFIED = 0 , RUN_TIMER = 1 , RUN_SIGNAL = 2 , RUN_EXCEPTION = 3 ,
  RUN_MESSAGE = 5 , RUN_THREAD = 6 , RUN_JOB = 7 , RUN_TRIGGER = 8 ,
  RUN_PUSH = 9 , RUN_USER = 0x1000
}
 Enumeration of the possible activation types to set a component in running state. More...
 
typedef std::function< tResult(tTimeStamp)> tRunFunction
 Type definition of the function used to implement Run.
 

Public Member Functions

 ADTF_IID (IRunnable, "runnable.ant.base.adtf.iid")
 defintion of interface id
 
virtual tResult Run (tTimeStamp tmTimeofActivation, tActivationType ui32ActivationType, const void *pvUserData, size_t nUserDataSize)=0
 The Run method to set the component in running state. More...
 
virtual tActivationType GetActivationType () const
 Gets the activation code of the runnable it reacts to. More...
 

Protected Member Functions

 ~IRunnable ()=default
 not destructable
 

Detailed Description

The Runnable interface defines common methods for a running component.

Within ADTF the IRunnable interface is the main interface to use for Running objects.

See also
runnable for a base implementation.

Definition at line 25 of file runnable_intf.h.

Member Enumeration Documentation

◆ tActivationType

enum tActivationType : uint32_t

Enumeration of the possible activation types to set a component in running state.

This activation type is part of the adtf::IRunnable::Run call.

Enumerator
RUN_UNSPECIFIED 

unspecified Run activation type.

RUN_TIMER 

activation code to handle a timer, usually this is sent by a kernel implementation have timer primitives.

RUN_SIGNAL 

activation code to handle a signal event, usually this is sent by a kernel implementation have signal interface.

RUN_EXCEPTION 

activation code to handle a global exception.

RUN_MESSAGE 

activation code to handle a message.

RUN_THREAD 

activation code to handle a thread call, usually this is sent by a kernel implementation have thread primitives.

RUN_JOB 

activation code to handle a job call.

RUN_TRIGGER 

Trigger run call.

RUN_PUSH 

Data Sync Push.

RUN_USER 

activation code offset for user activations.

Definition at line 43 of file runnable_intf.h.

Member Function Documentation

◆ GetActivationType()

virtual tActivationType GetActivationType ( ) const
inlinevirtual

Gets the activation code of the runnable it reacts to.

Returns
The ActivationType the IRunnable react to.

Definition at line 92 of file runnable_intf.h.

References IRunnable::RUN_UNSPECIFIED.

◆ Run()

virtual tResult Run ( tTimeStamp  tmTimeofActivation,
tActivationType  ui32ActivationType,
const void *  pvUserData,
size_t  nUserDataSize 
)
pure virtual

The Run method to set the component in running state.

This method will be called to activate the component by a given activation type.

Parameters
[in]tmTimeofActivationTime of activation. Usually this is the StreamTime.
[in]ui32ActivationTypeThe activation type for running.
[in]pvUserDatapointer to a activation structure depending on the activation type.
[in]nUserDataSizeSize of the activation structure. (in byte)
Returns
Standard result code.
Return values
ERR_CANCELEDDepending on the caller (timer, cyclic thread) it will break cyclic running.

Implemented in cRunnable.

Referenced by trigger_pipe_item< INTERFACE >::Run().