ADTF  3.18.2
cSample

The cSample class implements a basic sample which contains streaming data. More...

Inheritance diagram for cSample:
[legend]

Public Member Functions

 ADTF_CLASS_ID_NAME (cSample, "sample.streaming.adtf.cid", "ADTF Default Sample")
 private d pointer More...
 
 cSample ()
 resolver for multiple inheritance on IObject More...
 
 cSample (const ucom::ant::iobject_ptr< ISampleBufferFactory > &oSampleFactory)
 Construct an instance of a memory managed sample MemoryManaged BufferFactory ... More...
 
virtual ~cSample ()
 DTOR.
 
tResult Lock (ucom::ant::iobject_ptr_shared_locked< const adtf::streaming::ant::ISampleBuffer > &oSampleBuffer) const override
 
tResult WriteLock (ucom::ant::iobject_ptr_locked< ISampleBuffer > &oSampleBuffer, size_t szPreAllocateSize) override
 
tResult Set (const ant::ISample &oSample) override
 
tResult Get (ant::ISample &oSample) const override
 
tResult Reset () override
 
tTimeStamp GetTime () const
 
tResult SetTime (tTimeStamp tmTimeStamp)
 
uint32_t GetFlags () const override
 
tResult SetFlags (uint32_t ui32Flags) override
 
tResult Set (tTimeStamp tmTime, const void *pData, size_t nSize, uint32_t ui32Flags=0) override
 
tResult GetSampleBufferFactory (ucom::ant::iobject_ptr< ISampleBufferFactory > &oFactory) const override
 
tResult GetSampleInfo (ucom::ant::iobject_ptr< const ISampleInfo > &oSampleInfo) const override
 
tResult GetSampleInfo (ucom::ant::iobject_ptr< ISampleInfo > &oSampleInfo) override
 
tResult GetSampleLog (ucom::ant::iobject_ptr< ISampleLog > &oSampleLog) const override
 
base::flash::tNanoSeconds GetTimeNs () const override
 
tResult SetTime (base::flash::tNanoSeconds tmTimeStamp) override
 
tResult Set (base::flash::tNanoSeconds tmTimeStamp, const void *pData, size_t szSize, uint32_t ui32Flags=0) override
 
uint32_t GetSubStreamId () const override
 
void SetSubStreamId (uint32_t nSubStreamId) override
 
tResult SetSampleBufferFactory (const ucom::ant::iobject_ptr< ISampleBufferFactory > &pFactory)
 Sets the reference to the buffer factory, which will be used to create the user data content in ISampleBuffer. More...
 
tResult SetSampleInfo (const ucom::ant::iobject_ptr< ISampleInfo > &oInfo)
 
tResult SetSampleLog (const ucom::ant::iobject_ptr< ISampleLog > &oLog)
 
- Public Member Functions inherited from object< ant::ISample, flash::ISample, hollow::ISample, ucom::ant::IClassInfo >
tResult GetInterface (const char *i_strIID, void *&o_pInterface) override
 Query interfaces on an object. More...
 
tResult GetInterface (const char *i_strIID, const void *&o_pInterface) const override
 Provides const correct interface querying. More...
 
void Destroy () const override
 Destruct and deallocate instantiations of type IObject. More...
 
- Public Member Functions inherited from IObject
 ADTF_IID (IObject, "object.ant.ucom.adtf.iid")
 Marks the IObject to be castable with the ucom_cast() More...
 

Private Member Functions

 cSample (const cSample &)=delete
 delete copy CTOR (Samples will be treated only by ISample inferface)
 
 cSample (cSample &&)=delete
 delete move CTOR (Samples will be treated only by ISample inferface)
 
cSampleoperator= (const cSample &)=delete
 delete copy operator (Samples will be treated only by ISample inferface)
 
cSampleoperator= (cSample &&)=delete
 delete mode operator (Samples will be treated only by ISample inferface)
 

Additional Inherited Members

- Protected Member Functions inherited from IObject
 ~IObject ()=default
 Protected destructor --> Use implemented Destroy() instead of delete!
 

Detailed Description

The cSample class implements a basic sample which contains streaming data.

A sample is a container class to write time based data on the OutPins (IOutPin) connected SampleStream (ISampleStream). The main interface too ensure binary compatibility is ISample.

Samples can have additional information through the interfaces ISampleInfo.
These interface can be retrieved through ISample::GetSampleInfo. This expansion of the sample will is to add user information on each sample which is necessary for your applictation. Keep in mind this is an option a sample can hold, but is not a must on frameworks default.
Warning
Be sure you really need this information on each sample! !!! You should not put important data (signals etc.) in this area and complain of performance problems afterwards!!! We mean it.
Samples can have additional logging and debug information through the interface ISampleLog
These interface can be retrieved through ISample::GetSampleLog. The ISampleLog interface defines an interface to trace and store the Samples data- and timing flow. If present these tracing information will be serialized. These extension is used for debugging issues only. This will effect performance on your system if enabled!
See also
Sample.

Definition at line 49 of file sample.h.

Constructor & Destructor Documentation

◆ cSample() [1/2]

cSample ( )

resolver for multiple inheritance on IObject

CTOR. Default ISampleBufferFactory in this case will use new and delete !

◆ cSample() [2/2]

cSample ( const ucom::ant::iobject_ptr< ISampleBufferFactory > &  oSampleFactory)

Construct an instance of a memory managed sample MemoryManaged BufferFactory ...

see adtf::streaming::ISampleBufferFactory and adtf::services::IMemoryManager. By default this implementation of ISample uses cSampleBufferFactoryDefaultNew if no other factory is set.

Member Function Documentation

◆ ADTF_CLASS_ID_NAME()

ADTF_CLASS_ID_NAME ( cSample  ,
"sample.streaming.adtf.cid"  ,
"ADTF Default Sample"   
)

private d pointer

ClassInfo implementation for adtf::ucom::IClassInfo

◆ SetSampleBufferFactory()

tResult SetSampleBufferFactory ( const ucom::ant::iobject_ptr< ISampleBufferFactory > &  pFactory)

Sets the reference to the buffer factory, which will be used to create the user data content in ISampleBuffer.

By default this implementation of ISample uses cSampleBufferFactoryDefaultNew if no other factory is set.

Parameters
[in]pFactoryobject_ptr reference to the sample buffer factory.
Returns
Standard Result Code.
Return values
ERR_INVALID_ARGChange is not valid.