45 Reset(oSampleData.m_pCurrentSample);
51 std::swap(m_pCurrentSample, oSampleData.m_pCurrentSample);
52 std::swap(m_pBuffer, oSampleData.m_pBuffer);
72 return m_pCurrentSample->GetTime();
88 return reinterpret_cast<const T*
>(m_pBuffer->GetPtr());
118 return (m_pCurrentSample && m_pBuffer && m_pBuffer->GetSize() >=
sizeof(T));
125 operator bool()
const
153 RETURN_IF_FAILED(pSample->Lock(m_pBuffer));
154 m_pCurrentSample = pSample;
166 m_pCurrentSample.Reset();
192 static_assert(std::is_trivially_copyable<T>::value,
193 "You can only use plain types or structs without pointers or complex members.");
208 Reset(oSampleData.m_pCurrentSample);
214 std::swap(m_pCurrentSample, oSampleData.m_pCurrentSample);
215 std::swap(m_pBuffer, oSampleData.m_pBuffer);
239 if (m_pCurrentSample)
256 if (m_pCurrentSample)
275 return reinterpret_cast<const T*
>(m_pBuffer->GetPtr());
290 return m_pBuffer->GetSize();
349 return (m_pCurrentSample && m_pBuffer && m_pBuffer->GetSize() >=
sizeof(T));
358 operator const T&()
const
372 RETURN_IF_FAILED(pSample->Lock(m_pBuffer));
373 m_pCurrentSample = pSample;
385 m_pCurrentSample.Reset();
398 const adtf::util::cVariant oDefault = adtf::util::cVariant())
const
400 if (m_pCurrentSample)
427template<
typename T,
typename Enable =
void>
433 T m_oExtractedValue = {};
444 Reset(oSampleData.m_pCurrentSample);
449 m_pCurrentSample(std::move(oSampleData.m_pCurrentSample)),
450 m_pBuffer(std::move(oSampleData.m_pBuffer)),
451 m_oExtractedValue(std::move(oSampleData.m_oExtractedValue))
476 if (m_pCurrentSample)
478 return m_pCurrentSample->GetTime();
493 if (m_pCurrentSample)
510 return &m_oExtractedValue;
525 return m_pBuffer->GetSize();
559 return m_oExtractedValue;
574 return std::move(m_oExtractedValue);
597 return (m_pCurrentSample && m_pBuffer && m_pBuffer->GetSize() >= 0);
607 operator const T&()
const&
633 RETURN_IF_FAILED(pSample->Lock(m_pBuffer));
634 m_pCurrentSample = pSample;
648 m_oExtractedValue = T{};
649 m_pCurrentSample.Reset();
662 const adtf::util::cVariant oDefault = adtf::util::cVariant())
const
664 if (m_pCurrentSample)
720using penguin::sample_data;
#define THROW_ERROR_DESC(_code,...)
throws a tResult exception
Definition result.h:85
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
#define RETURN_NOERROR
Return status ERR_NOERROR, which requires the calling function's return type to be tResult.
Definition result.h:29
adtf::util::cStringUtil::tHashKey32 tHashKey
Type for the HashKey of the Value.
Definition hashedvaluemap_intf.h:87
Definition rawmemory_base.h:412
sample_data(const ucom::iobject_ptr< const ISample > &pSample)
Definition sample_data.h:56
const T GetData() const
Definition sample_data.h:100
tResult Reset(const ucom::ant::iobject_ptr< const ISample > &pSample)
Definition sample_data.h:151
sample_data(const sample_data &oSampleData)
CTOR.
Definition sample_data.h:43
tResult Reset()
Definition sample_data.h:164
tTimeStamp GetTime() const
Definition sample_data.h:68
bool IsValid() const
Definition sample_data.h:116
sample_data()
CTOR.
Definition sample_data.h:39
sample_data(sample_data &&oSampleData)
Definition sample_data.h:49
const T * GetDataPtr() const
Definition sample_data.h:84
Definition sample_data.h:191
const T & operator*() const
Definition sample_data.h:337
const T * operator->()
Definition sample_data.h:301
sample_data(sample_data &&oSampleData)
Definition sample_data.h:212
bool IsValid() const
Definition sample_data.h:347
tResult Reset(const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
Definition sample_data.h:370
const T * GetDataPtr() const
Definition sample_data.h:271
sample_data()
CTOR.
Definition sample_data.h:201
const T & GetData() const
Definition sample_data.h:322
const T * operator->() const
Definition sample_data.h:309
tResult Reset()
Definition sample_data.h:383
sample_data(const sample_data &oSampleData)
CTOR.
Definition sample_data.h:206
size_t GetDataSize() const
Definition sample_data.h:286
sample_data(const ucom::iobject_ptr< const ant::ISample > &pSample)
Definition sample_data.h:219
adtf::base::flash::tNanoSeconds GetTimeNs() const
Definition sample_data.h:254
adtf_util::cVariant GetSampleInfo(const ISampleInfo::tHashKey &oHash, const adtf::util::cVariant oDefault=adtf::util::cVariant()) const
Definition sample_data.h:397
tTimeStamp GetTime() const
Definition sample_data.h:237
sample_data(const ucom::iobject_ptr< const ant::ISample > &pSample)
Definition sample_data.h:708
sample_data(sample_data &&oSampleData)
Definition sample_data.h:703
sample_data()
CTOR.
Definition sample_data.h:693
sample_data(const ucom::iobject_ptr< const flash::ISample > &pSample)
Definition sample_data.h:713
sample_data(const sample_data &oSampleData)
CTOR.
Definition sample_data.h:698
adtf::base::flash::tNanoSeconds GetTimeNs() const
Definition sample_data.h:491
const T & GetData() const &
Definition sample_data.h:555
const T * operator->() const
Definition sample_data.h:544
sample_data(sample_data &&oSampleData)
Definition sample_data.h:448
tResult Reset(const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
Definition sample_data.h:631
tResult Reset()
Definition sample_data.h:646
const T * GetDataPtr() const
Definition sample_data.h:506
sample_data()
CTOR.
Definition sample_data.h:437
T && GetData() &&
Definition sample_data.h:570
bool IsValid() const
Definition sample_data.h:595
sample_data(const ucom::iobject_ptr< const ant::ISample > &pSample)
Definition sample_data.h:456
const T & operator*() const
Definition sample_data.h:585
size_t GetDataSize() const
Definition sample_data.h:521
adtf_util::cVariant GetSampleInfo(const ISampleInfo::tHashKey &oHash, const adtf::util::cVariant oDefault=adtf::util::cVariant()) const
Definition sample_data.h:661
const T * operator->()
Definition sample_data.h:536
sample_data(const sample_data &oSampleData)
CTOR.
Definition sample_data.h:442
tTimeStamp GetTime() const
Definition sample_data.h:474
Base object pointer to realize binary compatible reference counting in interface methods.
Definition object_ptr_intf.h:112
Definition lockedobject_intf.h:273
Definition object_ptr.h:384
DestinationTimeStamp duration_cast(const SourceTimeStamp &) noexcept
Duration cast base template to converted between different time resolution.
Definition chrono.h:155
Namespace for all functionality of the ADTF Streaming SDK provided since v3.0.
Definition bindingproxyoutport.h:16
adtf::util::cVariant get_sample_info(const ISampleInfo &oSampleInfo, const ISampleInfo::tHashKey &oHash, const adtf::util::cVariant oDefault)
base::flash::tNanoSeconds get_sample_time(const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
Namespace for all functionality of the ADTF Streaming SDK provided since v3.15.
Definition sample_data.h:410
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
base::flash::tNanoSeconds get_sample_time(const ucom::ant::iobject_ptr< const ant::ISample > &pSample)
object_ptr< T > ucom_object_ptr_cast(object_ptr< T > oCasted)
Alias always bringing the latest version of ant::ucom_object_ptr_cast() into scope.
Definition object_ptr_utilities.h:104
ant::iobject_ptr< T > iobject_ptr
Alias always bringing the latest version of ant::iobject_ptr into scope.
Definition object_ptr_intf.h:437
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14
A timestamp with nanosecond precision.
Definition chrono.h:23