ADTF
|
Base class for adtf::filter::flash::cFilter, adtf::filter::flash::cSampleStreamingSource and adtf::filter::flash::cSampleStreamingSink. More...
Public Member Functions | |
template<typename RequestableWriterType = streaming::requestable_writer<>> | |
RequestableWriterType * | CreateRequestableOutputPin (const char *strName, const cStreamTypeHelper &oType=streaming::ant::stream_meta_type_anonymous()) |
Creates a new requestable output pin with a given stream type. More... | |
virtual tResult | EnableSubStream (streaming::flash::ISampleWriter *pWriter, uint32_t nSubStreamId, const base::ant::IProperties *pRequestProperties=nullptr) |
This is called when the first consumer requests the transmission of samples of a given Substream. More... | |
virtual void | DisableSubStream (streaming::flash::ISampleWriter *pWriter, uint32_t nSubStreamId) |
Called when the last consumer cancels its request for the transmission of samples of a given Substream. More... | |
void | SetHelpLink (const char *strUrl) |
Sets the link to the documentation that tools can display. More... | |
void | SetDescription (const char *strItem, const char *strDescription) |
Set the description for a data Pin, an Interface Binding Object or a Runner. More... | |
Public Member Functions inherited from cGraphObject | |
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... | |
Private Member Functions | |
void | LockedCallEnableSubStream (streaming::flash::ISampleWriter *pWriter, uint32_t nSubStreamId, const base::ant::IProperties *pRequestProperties) |
void | LockedCallDisableSubStream (streaming::flash::ISampleWriter *pWriter, uint32_t nSubStreamId) |
Additional Inherited Members | |
Protected Member Functions inherited from cGraphObject | |
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 inherited from cGraphObject | |
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 1172 of file graph_object.h.
RequestableWriterType * CreateRequestableOutputPin | ( | const char * | strName, |
const cStreamTypeHelper & | oType = streaming::ant::stream_meta_type_anonymous() |
||
) |
Creates a new requestable output pin with a given stream type.
This will support Substream requests via EnableSubStream() and DisableSubStream().
or
RequestableWriterType | 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 1247 of file graph_object.h.
References cGraphObject::CreateOutputPin().
|
virtual |
Called when the last consumer cancels its request for the transmission of samples of a given Substream.
Mind that calls to this method are synchronized to the Process() and ProcessInput() methods with the help of a mutex.
[in] | pWriter | The writer of the pin, that the Substream was requested from. |
[in] | nSubStreamId | The id of the Substream. |
|
virtual |
This is called when the first consumer requests the transmission of samples of a given Substream.
Mind that calls to this method are synchronized to the Process() and ProcessInput() methods with the help of a mutex.
[in] | pWriter | The writer of the pin, that the Substream was requested from. |
[in] | nSubStreamId | The id of the Substream. |
[in] | pRequestProperties | The request properties, if nullptr, use defaults. |
void SetDescription | ( | const char * | strItem, |
const char * | strDescription | ||
) |
Set the description for a data Pin, an Interface Binding Object or a Runner.
[in] | strItem | The name of the item to set the description for. |
[in] | strDescription | The description. |
void SetHelpLink | ( | const char * | strUrl | ) |
Sets the link to the documentation that tools can display.
[in] | strUrl | The url to the help document (i.e. an HTML file). |