ADTF
|
Base class for adtf::filter::flash::cFilter, adtf::filter::flash::cSampleStreamingSource and adtf::filter::flash::cSampleStreamingSink. More...
Classes | |
class | cDataTriggerHint |
Hint that a Data-In trigger should be created to trigger a Runner. More... | |
class | cNoTriggerHint |
No hint on which Active Runner to use. More... | |
class | cThreadTriggerHint |
Hint that a thread Active Runner should be used to trigger a Runner. More... | |
class | cTimerTriggerHint |
Hint that a timer Active Runner should be used to trigger a Runner. More... | |
class | cTriggerHint |
Base class for hints that give information on which Active Runner should be connected to a newly created Runner (with CreateRunner()). More... | |
Public Member Functions | |
cGraphObject () | |
Default Constructor. | |
~cGraphObject () override | |
Destructor. | |
virtual tResult | Process (base::flash::tNanoSeconds tmTrigger, streaming::ant::IRunner *pRunner) |
The default Runner function of the graph object. More... | |
virtual tResult | ProcessInput (base::flash::tNanoSeconds tmTrigger, streaming::flash::ISampleReader *pReader) |
Provides access to the reader of incoming data. More... | |
virtual tResult | ProcessInput (streaming::flash::ISampleReader *pReader, const ucom::ant::iobject_ptr< const streaming::ant::ISample > &pSample) |
Provides access to the sample of incoming data. More... | |
virtual tResult | ProcessInput (streaming::flash::ISampleReader *pReader, base::flash::tNanoSeconds tmSample, const void *pSampleData, size_t nSampleDataSize) |
Provides access to the sample content of incoming data. More... | |
template<typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPin (const char *strName, bool bDataInTrigger=true, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with an anonymous stream type. More... | |
template<typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPin (const char *strName, const cStreamTypeHelper &oType, bool bDataInTrigger=true, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with a given stream type. More... | |
template<typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPinWithCallback (const char *strName, const cStreamTypeHelper &oType, std::function< tResult(base::flash::tNanoSeconds)> fnTriggerCallback, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with a given stream type. More... | |
template<typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPinWithCallback (const char *strName, const cStreamTypeHelper &oType, std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::ISample > &)> fnSampleCallback, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with a given stream type. More... | |
template<typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPinWithCallback (const char *strName, const cStreamTypeHelper &oType, std::function< tResult(base::flash::tNanoSeconds, const void *, size_t)> fnSampleDataCallback, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with a given stream type. More... | |
template<typename Type , typename ReaderType = cPinReader> | |
ReaderType * | CreateInputPinWithCallback (const char *strName, const cStreamTypeHelper &oType, std::function< tResult(base::flash::tNanoSeconds, const Type &)> fnDataCallback, bool bForwardTriggerViaOutputPins=true) |
Creates a new input pin with a given stream type. More... | |
virtual tResult | AcceptType (streaming::flash::ISampleReader *pReader, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType) |
Called whenever a new type is read from a reader that has no other accept type callback (streaming::ant::cSampleReader::SetAcceptTypeCallback) registered. More... | |
template<typename WriterType = cPinWriter> | |
WriterType * | CreateOutputPin (const char *strName) |
Creates a new output pin without an initial stream type. More... | |
template<typename WriterType = cPinWriter> | |
WriterType * | CreateOutputPin (const char *strName, const cStreamTypeHelper &oType) |
Creates a new output pin with a given stream type. More... | |
streaming::ant::IRunner * | CreateRunner (const char *strName, const cTriggerHint &oTriggerHint=cNoTriggerHint(), bool bForwardTriggerViaOutputPins=true) |
Creates a new Runner that can be triggered by an Active Runner. More... | |
streaming::ant::IRunner * | CreateRunner (const char *strName, std::function< tResult(base::flash::tNanoSeconds)> fnRunFunction, const cTriggerHint &oTriggerHint=cNoTriggerHint(), bool bForwardTriggerViaOutputPins=true) |
Creates a new Runner that can be triggered by an Active Runner. More... | |
template<typename Interface , typename Instance > | |
void | CreateInterfaceServer (const char *strName, ucom::ant::enable_object_ptr_from_this< Instance > *pInstance) |
Creates an interface server binding object. More... | |
template<typename Interface > | |
void | CreateInterfaceServer (const char *strName, const ucom::ant::iobject_ptr< Interface > &pInstance) |
Creates an interface server binding object. More... | |
template<typename Interface > | |
interface_client< Interface > | CreateInterfaceClient (const char *strName) |
Creates an interface client binding object. More... | |
template<typename ReaderType = cPinReader> | |
std::shared_ptr< ReaderType > | CreateReader (const char *strName, const cStreamTypeHelper &oType) |
Creates and intializes a new sample reader. More... | |
template<typename WriterType = cPinWriter> | |
std::shared_ptr< WriterType > | CreateWriter (const char *strName, const cStreamTypeHelper &oType) |
Creates and intializes a new sample reader. More... | |
ucom::ant::object_ptr< streaming::ant::IRunner > | RegisterRunner (const char *strName, std::function< tResult(base::flash::tNanoSeconds)> fnRunMethod) |
Creates and registers a new Runner. More... | |
tResult | RegisterRunner (const ucom::ant::iobject_ptr< streaming::ant::IRunner > &pRunner) override |
This is here for compatibility reasons. More... | |
tResult | RegisterRunner (const char *strName, base::flash::IRunnable &oRunnable) |
This is here for compatibility reasons. More... | |
tResult | RegisterRunner (const char *strName, adtf::base::ant::IRunnable &oRunnable) override |
This is here for compatibility reasons. More... | |
tResult | ConfigureDataInTrigger (const char *strRunnerName, const char *strPinName) |
This is here for compatibility reasons. More... | |
tResult | ConfigureDataOutTrigger (const char *strRunnerName, const char *strPinName) |
This is here for compatibility reasons. More... | |
tResult | ConfigureTimerTrigger (const char *strRunnerName, tTimeStamp tmPeriod) |
This is here for compatibility reasons. More... | |
tResult | ConfigureThreadTrigger (const char *strRunnerName, bool bCallCyclic) |
This is here for compatibility reasons. More... | |
virtual tResult | RequestDynamicInputPin (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType) |
Called whenever a new dynamic input pin is requested. More... | |
virtual tResult | RequestDynamicOutputPin (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType) |
Called whenever a new dynamic output pin is requested. More... | |
virtual tResult | RequestDynamicInterfaceClient (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IBindingType > &pType) |
Called whenever a new dynamic interface client binding object is requested. More... | |
virtual tResult | RequestDynamicInterfaceServer (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IBindingType > &pType) |
Called whenever a new dynamic interface server binding object is requested. More... | |
tResult | RequestPin (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType, ucom::ant::iobject_ptr< streaming::ant::IInPin > &pInPin) |
For internal use. This will call RequestDynamicInputPin(). | |
tResult | RequestPin (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType, ucom::ant::iobject_ptr< streaming::ant::IOutPin > &pOutPin) |
For internal use. This will call RequestDynamicOutputPin(). | |
tResult | RequestBindingObject (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IBindingType > &pType, ucom::ant::iobject_ptr< streaming::ant::IBindingClient > &pClient) |
For internal use. This will call RequestDynamicInterfaceClient(). | |
tResult | RequestBindingObject (const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IBindingType > &pType, ucom::ant::iobject_ptr< streaming::ant::IBindingServer > &pServer) |
For internal use. This will call RequestDynamicInterfaceServer(). | |
void | RegisterPropertyVariable (const char *strName, base::ant::cPropertyVariable &oPropertyVariable) |
Registers a new property variable which will always reflect the value of a property. More... | |
void | SetDescription (const char *strDescription) |
Sets the description information that tools can display. More... | |
void | SetEditor (const char *strName, const char *strUrl) |
Sets the editor information that tools can use to edit the objects properties, pins etc. More... | |
Public Member Functions inherited from cNamedGraphObject | |
tResult | GetName (base::ant::IString &&strName) const |
tResult | SetName (const char *strName) |
tResult | SetParent (const ucom::ant::IObject *pParentObject) |
tResult | GetParent (const ucom::ant::IObject *&poParentObject) const |
Public Member Functions inherited from cDataBinding | |
tResult | GetPins (ucom::ant::iobject_list< IPin > &lstPins) const |
Returns the current Pins (only const access). More... | |
tResult | FindPin (const char *strName, ucom::ant::iobject_ptr< ucom::ant::IObject > &pPin) const |
Find a Pin with the name of strName (only const access) More... | |
virtual tResult | RegisterPin (const ucom::ant::iobject_ptr< IPin > &pIPin) |
Registers a Pin in a pin list. More... | |
tResult | RegisterPin (const ucom::ant::iobject_ptr< IInPin > &pIInPin) |
Registers a InPin in a pin list. More... | |
tResult | RegisterPin (const ucom::ant::iobject_ptr< IOutPin > &pIOutPin) |
Registers a InPin in a pin list. More... | |
virtual tResult | UnregisterPin (const ucom::ant::iobject_ptr< IPin > &pIPin) |
Unregisters a Pin from the pin list. More... | |
tResult | ReleasePins () |
Unregisters all Pins from the pin list. More... | |
virtual tResult | ActivatePins () |
Activate all pins. | |
virtual tResult | DeactivatePins () |
Deactivate all pins. | |
tResult | Disconnect () |
Disconnect all pins. | |
Public Member Functions inherited from cInterfaceBinding | |
cInterfaceBinding () | |
CTOR. | |
virtual | ~cInterfaceBinding () |
DTOR. | |
tResult | GetBindingObjects (ucom::ant::iobject_list< IBindingObject > &lstBindingObject) |
Return a list of all Binding Objects on lstBindingObject . More... | |
tResult | GetBindingObjects (ucom::ant::iobject_list< const IBindingObject > &lstBindingObject) const |
Return a list of all Binding Objects on lstBindingObject . More... | |
tResult | FindBindingObject (const char *strName, ucom::ant::iobject_ptr< const ucom::ant::IObject > &pIBindingObject) const |
This Function will search a binding object with the given strName and return it on pIBindingObject . More... | |
tResult | FindBindingObject (const char *strName, ucom::ant::iobject_ptr< ucom::ant::IObject > &pIBindingObject) |
This Function will search a binding object with the given strName and return it on pIBindingObject . More... | |
virtual tResult | RegisterBindingObject (const ucom::ant::iobject_ptr< IBindingObject > &pBindingObject) |
RegisterBindingObject will register the given pBindingObject within the internal registry. More... | |
tResult | RegisterBindingObject (const ucom::ant::iobject_ptr< IBindingServer > &pBindingServer) |
Registers the given pBindingServer . More... | |
tResult | RegisterBindingObject (const ucom::ant::iobject_ptr< IBindingClient > &pBindingClient) |
Registers the given pBindingClient . More... | |
tResult | UnregisterBindingObject (const ucom::ant::iobject_ptr< const IBindingObject > &pBindingObject) |
Unregisters the given pBindingObject . More... | |
tResult | Unbind () |
Will Unbind (IBindingObject::Unbind ) every registered binding objects registered with RegisterBindingObject . More... | |
tResult | ReleaseBindingObjects () |
ReleaseBindingObjects will Unbind (IBindingObject::Unbind ) every registered binding objects registered with RegisterBindingObject and unregister them automatically. More... | |
Public Member Functions inherited from cRuntimeBehaviour | |
tResult | GetRunners (ucom::ant::iobject_list< IRunner > &lstRunners) const |
copydoc IRuntimeBehaviour::GetRunners | |
tResult | FindRunner (const char *strName, ucom::ant::iobject_ptr< ucom::ant::IObject > &pRunner) const |
copydoc IRuntimeBehaviour::FindRunner | |
tResult | GetInnerPipes (ucom::ant::iobject_list< ITriggerPipe > &lstInnerpTriggerPipe) const |
copydoc IRuntimeBehaviour::GetInnerPipes | |
virtual tResult | UnregisterRunner (const ucom::ant::iobject_ptr< IRunner > &pRunner) |
Unregisters a Runner. More... | |
tResult | ReleaseRunners () |
Release every registered Runners More... | |
virtual tResult | RegisterInnerPipe (const ucom::ant::iobject_ptr< ITriggerPipe > &pTriggerPipe) |
Registers and publishes an inner ITriggerPipe object to the IRuntimeBehaviour. More... | |
virtual tResult | UnregisterInnerPipe (const ucom::ant::iobject_ptr< ITriggerPipe > &pTriggerPipe) |
Unregisters an inner ITriggerPipe object. More... | |
tResult | ReleaseTriggerPipes () |
Release and unregister every registered TriggerPipes. More... | |
Public Member Functions inherited from cConfiguration | |
cConfiguration () | |
Default constructor. | |
virtual | ~cConfiguration () |
Destructor. | |
tResult | GetProperties (adtf::ucom::ant::iobject_ptr< const IProperties > &pProperties) const |
Gets the properties with read access. More... | |
tResult | GetProperties (adtf::ucom::ant::iobject_ptr< IProperties > &pProperties) |
Gets the properties with read access. More... | |
tResult | AttachConfiguration (const char *strName, IConfiguration &oAttachedConfiguration) |
Attaches the given configuration and its properties as property tree item of this. More... | |
tResult | DetachConfiguration (const char *strName) |
Detaches a configuration with the specified name. More... | |
tResult | RegisterPropertyVariable (const char *strName, ant::cPropertyVariable &oPropertyVariable) |
Registers a property variable that always reflects the current value of the property. More... | |
Protected Member Functions | |
void | SetupStreamer (std::shared_ptr< streaming::flash::ISampleStreamer > pStreamer, const char *strName, const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pType) |
Used by the templated CreateInputPin() and CreateOutputPin() methods. More... | |
void | CreateInputPin (std::shared_ptr< streaming::flash::ISampleReader > pReader, bool bDataInTrigger=true, bool bForwardTriggerViaOutputPins=true) |
The implementation used by CreateInputPin(const char*, bool, bool) and CreateInputPin(const char*, const cStreamTypeHelper&, bool, bool) | |
void | CreateInputPin (std::shared_ptr< streaming::flash::ISampleReader > pReader, std::function< tResult(base::flash::tNanoSeconds)> fnTriggerCallback, bool bForwardTriggerViaOutputPins=true) |
The implementation used by CreateInputPin(const char*, const cStreamTypeHelper&, std::function<tResult(base::flash::tNanoSeconds)>, bool) | |
void | CreateInputPin (std::shared_ptr< streaming::flash::ISampleReader > pReader, std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::ISample > &)> fnSampleCallback, bool bForwardTriggerViaOutputPins=true) |
The implementation used by CreateInputPin(const char*, const cStreamTypeHelper&, std::function<tResult(const ucom::ant::iobject_ptr<const streaming::ant::ISample>&)>, bool) | |
void | CreateInputPin (std::shared_ptr< streaming::flash::ISampleReader > pReader, std::function< tResult(base::flash::tNanoSeconds, const void *, size_t)> fnSampleDataCallback, bool bForwardTriggerViaOutputPins=true) |
The implementation used by CreateInputPin(const char*, const cStreamTypeHelper&, std::function<tResult(base::flash::tNanoSeconds, const void*, size_t)>, bool) | |
void | CreateOutputPin (std::shared_ptr< streaming::flash::ISampleWriter > pWriter) |
The implementation used by CreateOutputPin(const char*, const cStreamTypeHelper&), CreateOutputPin(const char*, const cStreamTypeHelper&). | |
Protected Member Functions inherited from cDataBinding | |
cDataBinding () | |
CTOR. | |
virtual | ~cDataBinding () |
DTOR. | |
Protected Member Functions inherited from cRuntimeBehaviour | |
cRuntimeBehaviour () | |
CTOR. | |
virtual | ~cRuntimeBehaviour () |
DTOR. | |
Protected Attributes | |
ucom::ant::object_ptr< services::ant::IReferenceClock > | _clock |
A reference to the clock service. More... | |
std::unique_ptr< cImplementation > | m_pImplementation |
Protected Attributes inherited from cNamedGraphObject | |
const adtf::ucom::ant::IObject * | m_pParent = nullptr |
parent of the named object | |
std::string | m_strName |
name of the | |
Base class for adtf::filter::flash::cFilter, adtf::filter::flash::cSampleStreamingSource and adtf::filter::flash::cSampleStreamingSink.
The class provides many convenience member functions that facilitate the following operations:
For the implementation of dynamic pins, interface clients and interface servers overwrite one or more of the following virtual functions:
To inform the ADTF Configuration Editor about required interfaces, please see Setup dependencies between components.
All Create* methods throw exceptions in case of errors. The ADTF SDK is prepared to cope with exceptions within any of the graph objects methods, especially in your subclasses' constructors. You are also free to throw exceptions (THROW_ERROR_DESC) in methods that return tResult error codes. But if you call methods that return a tResult error code yourself, make sure to wrap them with the appropriate RETURN_IF_FAILED or THROW_IF_FAILED macros.
Definition at line 178 of file graph_object.h.
|
virtual |
Called whenever a new type is read from a reader that has no other accept type callback (streaming::ant::cSampleReader::SetAcceptTypeCallback) registered.
Override this function to change the default behaviour, call the base implementation at the beginning and perform additional checks and/or react to type changes or similar.
[in] | pReader | The reader that read the new type. |
[in] | pType | The new stream type. |
tResult ConfigureDataInTrigger | ( | const char * | strRunnerName, |
const char * | strPinName | ||
) |
This is here for compatibility reasons.
CreateInputPin() will do this for you.
tResult ConfigureDataOutTrigger | ( | const char * | strRunnerName, |
const char * | strPinName | ||
) |
This is here for compatibility reasons.
CreateOutputPin() and CreateRunner() will do this for you.
tResult ConfigureThreadTrigger | ( | const char * | strRunnerName, |
bool | bCallCyclic | ||
) |
This is here for compatibility reasons.
CreateRunner() will do this for you.
tResult ConfigureTimerTrigger | ( | const char * | strRunnerName, |
tTimeStamp | tmPeriod | ||
) |
This is here for compatibility reasons.
CreateRunner() will do this for you.
ReaderType * CreateInputPin | ( | const char * | strName, |
bool | bDataInTrigger = true , |
||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with an anonymous stream type.
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | bDataInTrigger | If true, an inner trigger pipe will be created from the pin to the ProcessInput() function. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after ProcessInput() was called. |
tResult | In case of an error. |
Definition at line 1016 of file graph_object.h.
Referenced by cGraphObject::CreateInputPin(), and cGraphObject::CreateInputPinWithCallback().
ReaderType * CreateInputPin | ( | const char * | strName, |
const cStreamTypeHelper & | oType, | ||
bool | bDataInTrigger = true , |
||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with a given stream type.
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
[in] | bDataInTrigger | If true, an inner trigger pipe will be created from the pin to the ProcessInput() function. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after ProcessInput() was called. |
tResult | In case of an error. |
Definition at line 1026 of file graph_object.h.
References cGraphObject::CreateInputPin().
ReaderType * CreateInputPinWithCallback | ( | const char * | strName, |
const cStreamTypeHelper & | oType, | ||
std::function< tResult(base::flash::tNanoSeconds)> | fnTriggerCallback, | ||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with a given stream type.
Mind that the writers are not flushed automatically after your callback finishes, so make sure to call adtf::streaming::flash::ISampleWriter::Flush() after you're done writing.
The specified callback will be called whenever a trigger occurs on the given input.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
[in] | fnTriggerCallback | An inner trigger pipe (data in trigger) will be created from the pin to this callback. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after fnTriggerCallback was called. |
tResult | In case of an error. |
Definition at line 1037 of file graph_object.h.
References cGraphObject::CreateInputPin().
ReaderType * CreateInputPinWithCallback | ( | const char * | strName, |
const cStreamTypeHelper & | oType, | ||
std::function< tResult(base::flash::tNanoSeconds, const Type &)> | fnDataCallback, | ||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with a given stream type.
Mind that the writers are not flushed automatically after your callback finishes, so make sure to call adtf::streaming::flash::ISampleWriter::Flush() after you're done writing.
The specified callback will be called for each currently available sample whenever a trigger occurs on the given input.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
Type | The data type that the sample data should be cast to. |
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
[in] | fnDataCallback | An inner trigger pipe (data in trigger) will be created from the pin to this callback. This will be called with data from each sample cast to the given type available when the trigger occured. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after fnTriggerCallback was called. |
tResult | In case of an error. |
Definition at line 1071 of file graph_object.h.
References adtf::streaming::flash::get_sample_time(), RETURN_ERROR_DESC, and RETURN_IF_FAILED.
ReaderType * CreateInputPinWithCallback | ( | const char * | strName, |
const cStreamTypeHelper & | oType, | ||
std::function< tResult(base::flash::tNanoSeconds, const void *, size_t)> | fnSampleDataCallback, | ||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with a given stream type.
Mind that the writers are not flushed automatically after your callback finishes, so make sure to call adtf::streaming::flash::ISampleWriter::Flush() after you're done writing.
The specified callback will be called for each currently available sample whenever a trigger occurs on the given input.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
[in] | fnSampleDataCallback | An inner trigger pipe (data in trigger) will be created from the pin to this callback. This will be called with data from each sample available when the trigger occured. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after fnTriggerCallback was called. |
tResult | In case of an error. |
Definition at line 1059 of file graph_object.h.
References cGraphObject::CreateInputPin().
ReaderType * CreateInputPinWithCallback | ( | const char * | strName, |
const cStreamTypeHelper & | oType, | ||
std::function< tResult(const ucom::ant::iobject_ptr< const streaming::ant::ISample > &)> | fnSampleCallback, | ||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new input pin with a given stream type.
Mind that the writers are not flushed automatically after your callback finishes, so make sure to call adtf::streaming::flash::ISampleWriter::Flush() after you're done writing.
The specified callback will be called for each currently available sample whenever a trigger occurs on the given input.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
ReaderType | The reader implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
[in] | fnSampleCallback | An inner trigger pipe (data in trigger) will be created from the pin to this callback. This will be called for each sample available when the trigger occured. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after fnTriggerCallback was called. |
tResult | In case of an error. |
Definition at line 1048 of file graph_object.h.
References cGraphObject::CreateInputPin().
interface_client< Interface > CreateInterfaceClient | ( | const char * | strName | ) |
Creates an interface client binding object.
Interface | The interface that the client object expects. |
strName | The name of the client object. |
tResult | In case of an error. |
Definition at line 1133 of file graph_object.h.
References adtf::ucom::ant::make_object_ptr(), cInterfaceBinding::RegisterBindingObject(), and THROW_IF_FAILED.
void CreateInterfaceServer | ( | const char * | strName, |
const ucom::ant::iobject_ptr< Interface > & | pInstance | ||
) |
Creates an interface server binding object.
Interface | The interface that the server object should publish. |
strName | The name of the server object. |
pInstance | The object implementing the interface. |
tResult | In case of an error. |
Definition at line 1122 of file graph_object.h.
References adtf::ucom::ant::make_object_ptr(), cInterfaceBinding::RegisterBindingObject(), and THROW_IF_FAILED.
void CreateInterfaceServer | ( | const char * | strName, |
ucom::ant::enable_object_ptr_from_this< Instance > * | pInstance | ||
) |
Creates an interface server binding object.
This overload can be used when the interface is implemented by the subclass of cGraphObject directly. To do so your subclass has to inherit from ucom::ant::enable_object_ptr_from_this. This way the server object will store only a weak reference to your object in order to prevent circular references. Due to this fact, you cannot use this overload in your constructor as the ucom::ant::enable_object_ptr_from_this::object_ptr_from_this() is only available after your object has been fully constructed with ucom::ant::make_object_ptr().
Interface | The interface that the server object should publish. |
Instance | Automatically deducted, used to differentiate between the template overloads. |
strName | The name of the server object. |
pInstance | Pass in the this pointer. |
tResult | In case of an error. |
Definition at line 1104 of file graph_object.h.
References adtf::ucom::ant::make_object_ptr(), enable_object_ptr_from_this< T >::object_ptr_from_this(), cInterfaceBinding::RegisterBindingObject(), THROW_ERROR_DESC, and THROW_IF_FAILED.
WriterType * CreateOutputPin | ( | const char * | strName | ) |
Creates a new output pin without an initial stream type.
WriterType | The writer implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
tResult | In case of an error. |
Definition at line 1090 of file graph_object.h.
Referenced by cGraphObject::CreateOutputPin(), and cGraphObject::CreateRequestableOutputPin().
WriterType * CreateOutputPin | ( | const char * | strName, |
const cStreamTypeHelper & | oType | ||
) |
Creates a new output pin with a given stream type.
WriterType | The writer implementation that is associated with the pin. |
[in] | strName | The name of the pin. |
[in] | oType | The stream type. |
tResult | In case of an error. |
Definition at line 1096 of file graph_object.h.
References cGraphObject::CreateOutputPin().
std::shared_ptr< ReaderType > CreateReader | ( | const char * | strName, |
const cStreamTypeHelper & | oType | ||
) |
Creates and intializes a new sample reader.
Most of the time you are better off using the CreateInputPin methods instead, but this method is provided for completeness.
ReaderType | The reader implementation. |
[in] | strName | The name of the reader (which is used to name pins). |
[in] | oType | The stream type associated with the reader. |
tResult | In case of an error. |
Definition at line 1143 of file graph_object.h.
References cStreamTypeHelper::GetStreamType(), and cGraphObject::SetupStreamer().
streaming::ant::IRunner* CreateRunner | ( | const char * | strName, |
const cTriggerHint & | oTriggerHint = cNoTriggerHint() , |
||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new Runner that can be triggered by an Active Runner.
This will call the Process() method each time the Runner is triggered.
or
[in] | strName | The name of the Runner. |
[in] | oTriggerHint | A hint on which Active Runner should be used to trigger the Runner. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after Process() was called. |
tResult | In case of an error. |
streaming::ant::IRunner* CreateRunner | ( | const char * | strName, |
std::function< tResult(base::flash::tNanoSeconds)> | fnRunFunction, | ||
const cTriggerHint & | oTriggerHint = cNoTriggerHint() , |
||
bool | bForwardTriggerViaOutputPins = true |
||
) |
Creates a new Runner that can be triggered by an Active Runner.
This will call the fnRunFunction
callback each time the Runner is triggered.
The calls to the specified callback are not synchronized in any way, so make sure you guard access to shared resources (especially readers) yourself.
Mind that the writers are not flushed automatically after your fnRunFunction
finishes, so make sure to call adtf::streaming::flash::ISampleWriter::Flush() after you're done writing.
[in] | strName | The name of the Runner. |
[in] | fnRunFunction | The runners callback, called whenever the Runner is triggered. |
[in] | oTriggerHint | A hint on which Active Runner should be used to trigger the runner. |
[in] | bForwardTriggerViaOutputPins | If true, triggers will be forwarded via all output pins after fnRunFunction was called. |
tResult | In case of an error. |
std::shared_ptr< WriterType > CreateWriter | ( | const char * | strName, |
const cStreamTypeHelper & | oType | ||
) |
Creates and intializes a new sample reader.
Most of the time you are better off using the CreateOutputPin methods instead, but this method is provided for completeness.
WriterType | The writer implementation. |
[in] | strName | The name of the writer (which is used to name pins). |
[in] | oType | The stream type associated with the writer. |
tResult | In case of an error. |
Definition at line 1156 of file graph_object.h.
References cStreamTypeHelper::GetStreamType(), and cGraphObject::SetupStreamer().
|
virtual |
The default Runner function of the graph object.
This is called when a trigger occured for a Runner that you created with CreateRunner(const char*, const cTriggerHint&, bool)
The default implementation calls ProcessInput(base::flash::tNanoSeconds, streaming::flash::ISampleReader*) for each input that has no data in triggers set up.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
All writers will be flushed after this method is called.
[in] | tmTrigger | The trigger timestamp. |
[in] | pRunner | Pointer to the Runner that was triggered. |
|
virtual |
Provides access to the reader of incoming data.
Called when
This is the first method in the input processing chain:
will be called in order from within the default implementations of these methods. So you are free to override the one that fits your needs.
The default implementation calls ProcessInput(streaming::flash::ISampleReader*, const ucom::ant::iobject_ptr<const streaming::ant::ISample>&) for each sample that is currently available from the reader.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
All writers will be flushed after this method is called.
[in] | tmTrigger | The trigger timestamp. |
[in] | pReader | A reader that might have samples available. |
|
virtual |
Provides access to the sample content of incoming data.
Called by the default implementation of ProcessInput(streaming::flash::ISampleReader*, const ucom::ant::iobject_ptr<const streaming::ant::ISample>&) with the data of an accepted sample that the reader provided (see AcceptType()).
This is the third method in the input processing chain:
will be called in order from within the default implementations of these methods. So you are free to override the one that fits your needs.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
All writers will be flushed after this method is called.
[in] | pReader | The reader that provided the sample. |
[in] | tmSample | The sample timestamp. |
[in] | pSampleData | The sample data. |
[in] | nSampleDataSize | The size of the sample data. |
|
virtual |
Provides access to the sample of incoming data.
Called by the default implementation of ProcessInput(base::flash::tNanoSeconds, streaming::flash::ISampleReader*) for each accepted sample that the given reader currently provides (see AcceptType()).
The default implementation calls ProcessInput(streaming::flash::ISampleReader*, base::flash::tNanoSeconds, const void*, size_t) with the sample data.
This is the second method in the input processing chain:
will be called in order from within the default implementations of these methods. So you are free to override the one that fits your needs.
All calls to Process(), ProcessInput() and the callbacks of CreateInputPinWithCallback() are synchronized with the help of a single recursive mutex.
All writers will be flushed after this method is called.
[in] | pReader | The reader that provided the sample |
[in] | pSample | The sample. |
void RegisterPropertyVariable | ( | const char * | strName, |
base::ant::cPropertyVariable & | oPropertyVariable | ||
) |
Registers a new property variable which will always reflect the value of a property.
[in] | strName | The name of the property. |
[in] | oPropertyVariable | The property variable that is associated with the property. |
tResult | In case of an error. |
|
overridevirtual |
This is here for compatibility reasons.
CreateInputPin() and CreateRunner() will do this for you.
Reimplemented from cRuntimeBehaviour.
tResult RegisterRunner | ( | const char * | strName, |
base::flash::IRunnable & | oRunnable | ||
) |
This is here for compatibility reasons.
CreateInputPin() and CreateRunner() will do this for you.
ucom::ant::object_ptr<streaming::ant::IRunner> RegisterRunner | ( | const char * | strName, |
std::function< tResult(base::flash::tNanoSeconds)> | fnRunMethod | ||
) |
Creates and registers a new Runner.
Also take a look at CreateRunner() which allows you to create inner pipes etc.
[in] | strName | The name of the runner. |
[in] | fnRunMethod | The runners callback. |
tResult | In case of an error. |
Referenced by filter_with_trigger_function< TriggerFunctionImpl >::Init().
|
overridevirtual |
This is here for compatibility reasons.
CreateInputPin() and CreateRunner() will do this for you.
Reimplemented from cRuntimeBehaviour.
|
virtual |
Called whenever a new dynamic input pin is requested.
Call the appropriate CreateInputPin() or CreateInputPinWithCallback() method in your overridden implementation.
[in] | strName | The name of the requested pin. |
[in] | pType | The type requested for the pin. |
|
virtual |
Called whenever a new dynamic interface client binding object is requested.
Call the appropriate CreateInterfaceClient() method in your overridden implementation.
[in] | strName | The name of the requested binding object. |
[in] | pType | The type requested for the binding object (the interface type). |
|
virtual |
Called whenever a new dynamic interface server binding object is requested.
Call the appropriate CreateInterfaceServer() method in your overridden implementation.
[in] | strName | The name of the requested binding object. |
[in] | pType | The type requested for the binding object (the interface type). |
|
virtual |
Called whenever a new dynamic output pin is requested.
Call the appropriate CreateOutputPin() method in your overridden implementation.
[in] | strName | The name of the requested pin. |
[in] | pType | The type requested for the pin. |
void SetDescription | ( | const char * | strDescription | ) |
Sets the description information that tools can display.
Filter:
[in] | strDescription | The description. |
void SetEditor | ( | const char * | strName, |
const char * | strUrl | ||
) |
Sets the editor information that tools can use to edit the objects properties, pins etc.
Filter:
Editor (myfilter_editor.qml)
[in] | strName | The name of the editor. |
[in] | strUrl | The url of the editor implementation (i.e. a qml file). |
|
protected |
Used by the templated CreateInputPin() and CreateOutputPin() methods.
Sets the name and type of a sample reader or sample writer.
[in] | pStreamer | The reader or writer instance. |
[in] | strName | The name that should be set. |
[in] | pType | The type that should be associated with the reader or writer. |
tResult | In case of an error. |
Referenced by cGraphObject::CreateReader(), and cGraphObject::CreateWriter().
|
protected |
A reference to the clock service.
The variable will be set, in the constructor.
This exists for compatibility reasons only, so please consider retrieving the interface you need from the runtime.
Definition at line 1008 of file graph_object.h.