ADTF
Loading...
Searching...
No Matches
adtf::streaming::ant::ISampleStream Class Referenceabstract

#include <samplestream_intf.h>

Inherits adtf::streaming::ant::ITriggerPipeItem, and adtf::streaming::ant::INamedGraphObject.

Inherited by adtf::streaming::ant::ISampleStreamInPort, and adtf::streaming::ant::ISampleStreamOutPort.

Classes

class  IPushReadEventSink
 

Public Member Functions

 ADTF_IID (ISampleStream, "samplestream.ant.streaming.adtf.iid")
 definition of interface identifier
 
virtual tResult GetType (adtf::ucom::ant::iobject_ptr< const IStreamType > &pStreamType) const =0
 
virtual tTimeStamp GetTime () const =0
 
virtual tResult SetStreamError (const tResult &oError)=0
 
virtual tResult AttachRouting (const adtf::ucom::ant::iobject_ptr< ISampleStream > &pSampleStreamTo)=0
 
virtual tResult DetachRouting (const adtf::ucom::ant::iobject_ptr< ISampleStream > &pSampleStreamTo)=0
 
virtual tResult Open (const char *strName, adtf::ucom::ant::iobject_ptr< ISampleInStream > &pInStream, const adtf::ucom::ant::iobject_ptr< const IStreamType > &pInitialAcceptedStreamType, IPushReadEventSink *&pPushEventSink, ISampleStreamAccess::tMode ui32Mode, size_t szQueueSize)=0
 
virtual tResult Open (const char *strName, adtf::ucom::ant::iobject_ptr< ISampleOutStream > &pOutStream, ISampleStreamAccess::tMode ui32Mode, size_t szQueueSize)=0
 
- Public Member Functions inherited from adtf::streaming::ant::ITriggerPipeItem
 ADTF_IID (ITriggerPipeItem, "trigger_pipe_item.ant.streaming.adtf.iid")
 Definition of interface ID.
 
- Public Member Functions inherited from adtf::base::ant::IRunnable
 ADTF_IID (IRunnable, "runnable.ant.base.adtf.iid")
 defintion of interface id
 
 ADTF3_DEPRECATED ("Use adtf::base::flash::IRunnable::Run(tNanoSeconds tmTimeofActivation, ant::IRunnable::tActivationType " "ui32ActivationType, const void* pvUserData, size_t nUserDataSize) instead.") virtual tResult Run(tTimeStamp tmTimeofActivation
 
virtual tActivationType GetActivationType () const
 
- Public Member Functions inherited from adtf::streaming::ant::ITriggerPipeSource
 ADTF_IID (ITriggerPipeSource, "trigger_pipe_source.ant.streaming.adtf.iid")
 definiton of interface id
 
virtual tResult RegisterSubItem (const adtf::ucom::ant::iobject_ptr< ITriggerPipeItem > &pSubRun, tPriority ui32Prio)=0
 
virtual tResult UnregisterSubItem (const adtf::ucom::ant::iobject_ptr< ITriggerPipeItem > &pSubRun)=0
 
virtual tResult ChangePriority (const adtf::ucom::ant::iobject_ptr< ITriggerPipeItem > &pSubRun, tPriority ui32Prio)=0
 
virtual tResult GetSubItems (adtf::ucom::ant::iobject_enum< const ITriggerPipeItem > &lstSubItems) const =0
 
- Public Member Functions inherited from adtf::ucom::ant::IObject
 ADTF_IID (IObject, "object.ant.ucom.adtf.iid")
 
- Public Member Functions inherited from adtf::streaming::ant::INamedGraphObject
 ADTF_IID (INamedGraphObject, "namedgraphobject.ant.streaming.adtf.iid")
 defintion of interface id
 
virtual tResult GetName (base::ant::IString &&strName) const =0
 
virtual tResult SetName (const char *strName)=0
 
virtual tResult SetParent (const ucom::ant::IObject *oParentObject)=0
 
virtual tResult GetParent (const ucom::ant::IObject *&poParentObject) const =0
 

Protected Member Functions

 ~ISampleStream ()=default
 not destructable
 
- Protected Member Functions inherited from adtf::streaming::ant::ITriggerPipeItem
 ~ITriggerPipeItem ()=default
 not destructable
 
- Protected Member Functions inherited from adtf::base::ant::IRunnable
 ~IRunnable ()=default
 not destructable
 
- Protected Member Functions inherited from adtf::streaming::ant::ITriggerPipeSource
 ~ITriggerPipeSource ()=default
 not destructable
 
- Protected Member Functions inherited from adtf::ucom::ant::IObject
 ~IObject ()=default
 Protected destructor --> Only the final implementation can be destroyed!
 
- Protected Member Functions inherited from adtf::streaming::ant::INamedGraphObject
 ~INamedGraphObject ()=default
 not destructable
 

Additional Inherited Members

- Public Types inherited from adtf::base::ant::IRunnable
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
}
 
typedef std::function< tResult(tTimeStamp)> tRunFunction
 Type definition of the function used to implement Run.
 
- Public Types inherited from adtf::streaming::ant::ITriggerPipeSource
enum  tPriority : uint32_t {
  Invalid = 0 , Lowest = 1 , Lower = 30 , BelowNormal = 40 ,
  Normal = 50 , AboveNormal = 60 , Higher = 70 , Highest = 100
}
 
- Public Attributes inherited from adtf::base::ant::IRunnable
tActivationType ui32ActivationType
 
tActivationType const void * pvUserData
 
tActivationType const void size_t nUserDataSize = 0
 

Detailed Description

Interface of the SampleStream. The SampleStream is to define connections between IPin.

See also
sample stream

Member Function Documentation

◆ AttachRouting()

virtual tResult adtf::streaming::ant::ISampleStream::AttachRouting ( const adtf::ucom::ant::iobject_ptr< ISampleStream > & pSampleStreamTo)
pure virtual

Attaches a SampleStream where to route the Write / Flush and Run calls to.

This will automatically opens one writer of pSampleStreamTo and forwards the writers queue.

Parameters
[in]pSampleStreamToSampleStream where to root the writer queue to.
Returns
Standard Result Code.

◆ DetachRouting()

virtual tResult adtf::streaming::ant::ISampleStream::DetachRouting ( const adtf::ucom::ant::iobject_ptr< ISampleStream > & pSampleStreamTo)
pure virtual

Detaches a SampleStream where the routing was set by AttachRouting.

Parameters
[in]pSampleStreamToSampleStream to detach.
Returns
Standard Result Code.
Return values
ERR_NOT_FOUNDThe SampleStream given by pSampleStreamTo is not attached.

◆ GetTime()

virtual tTimeStamp adtf::streaming::ant::ISampleStream::GetTime ( ) const
pure virtual

Returns the last flush time and so the current position of the stream.

Returns
The current time of the stream.

◆ GetType()

virtual tResult adtf::streaming::ant::ISampleStream::GetType ( adtf::ucom::ant::iobject_ptr< const IStreamType > & pStreamType) const
pure virtual

Retrieves the current type of the stream. This is only a information interface. The current type of the stream is always part of the Queues of ISampleStreamReader or ISampleStreamWriter. It will only return the last written IStreamType.

Parameters
[in,out]pStreamTypeobject_ptr to set the type reference to.
Returns
Standard Result Code

◆ Open() [1/2]

virtual tResult adtf::streaming::ant::ISampleStream::Open ( const char * strName,
adtf::ucom::ant::iobject_ptr< ISampleInStream > & pInStream,
const adtf::ucom::ant::iobject_ptr< const IStreamType > & pInitialAcceptedStreamType,
IPushReadEventSink *& pPushEventSink,
ISampleStreamAccess::tMode ui32Mode,
size_t szQueueSize )
pure virtual

Opens The SampleStream for reading access. To receive data you need to read from given pReader. See also ISampleStreamReader::Read. The pInStream will automatically closes until it is destroyed by its reference counting. Usually you should only keep your private Reader instance to make sure the Reader will safely close !

Parameters
[in]strNameName of the reader (is not yet relevant in default implementation cSampleStream but may be in future).
[in,out]pInStreamobject_ptr where to put the in stream reference to (Recommended: keep it private).
[in]pInitialAcceptedStreamTypeThe StreamType you want to receive, but this might not be the streamtype you will get from the writers!
[in]pPushEventSinkReference to a PushRead EventSink. This parameter neead to be valid only if you open in ISampleStreamAccess::tMode::PushRead. Make sure this instance exists until the the Reader closes. (so again ... Recommended: keep your Reader private)
[in]ui32ModeMode to open. see ISampleStreamAccess::tMode.
[in]szQueueSizeQueueSize of the Reader. In PushRead this should be 0 because a Reader will not have a real internal queue.
Returns
Standard Result Code.
See also
sample stream

◆ Open() [2/2]

virtual tResult adtf::streaming::ant::ISampleStream::Open ( const char * strName,
adtf::ucom::ant::iobject_ptr< ISampleOutStream > & pOutStream,
ISampleStreamAccess::tMode ui32Mode,
size_t szQueueSize )
pure virtual

Opens The SampleStream for writing access. To write data you need to write to the given pWriter. See also ISampleStreamWriter::Write. The pOutStream will automatically closes until it is destroyed by its reference counting. Usually you should only keep your private Writer instance to make sure the Writer will safely close !

Parameters
[in]strNameName of the reader (is not yet relevant in default implementation cSampleStream but may be in future).
[in,out]pOutStreamobject_ptr where to put the out stream reference to (Recommended: keep it private).
[in]ui32ModeMode to open. see ISampleStreamAccess::tMode.
[in]szQueueSizeQueueSize of the out stream. In PushRead this should be 0 because a Writer will have an unlimited Queue. If you set a queue size > 0 all QueueContent will be dropped if you do not flush before the maximum queue size is reached. Keep in mind Sample/StreamType/Error are part of the Queue!
Returns
Standard Result Code.
See also
sample stream

◆ SetStreamError()

virtual tResult adtf::streaming::ant::ISampleStream::SetStreamError ( const tResult & oError)
pure virtual

Sets and forwards a StreamError to the readers. Depending on the implementation and error type this may stop the streaming!

Parameters
[in]oErrorError to set
Returns
Standard Result Code.

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