33 using tVersion = ::adtf_util::tVersion;
34 using cString = ::adtf_util::cString;
105class has_set_properties:
private T
111 template <
typename C>
static two test(...);
118template <
typename T,
typename Enable =
void>
119struct stream_meta_type_properties_helper;
122struct stream_meta_type_properties_helper<T, std::enable_if_t<!has_set_properties<T>::value>>
130struct stream_meta_type_properties_helper<T, std::enable_if_t<has_set_properties<T>::value>>
134 T::SetProperties(pProperties);
139class has_is_compatible:
private T
144 template <
typename C>
static one test(
decltype(
static_cast<tResult(*)(
const adtf::streaming::ant::IStreamType&,
145 const adtf::streaming::ant::IStreamType&)
>(&has_is_compatible<C>::IsCompatible)));
146 template <
typename C>
static two test(...);
149 enum { value =
sizeof(test<T>(
static_cast<tResult(*)(
const adtf::streaming::ant::IStreamType&,
150 const adtf::streaming::ant::IStreamType&)
>(
nullptr))) ==
sizeof(
char) };
153template <
typename T,
typename Enable =
void>
154struct stream_meta_type_is_compatible_helper;
157struct stream_meta_type_is_compatible_helper<T, std::enable_if_t<!has_is_compatible<T>::value>>
159 static constexpr bool HasIsCompatible()
164 static tResult IsCompatible(
const adtf::streaming::IStreamType& ,
165 const adtf::streaming::IStreamType& )
172struct stream_meta_type_is_compatible_helper<T, std::enable_if_t<has_is_compatible<T>::value>>
174 static constexpr bool HasIsCompatible()
179 static tResult IsCompatible(
const adtf::streaming::IStreamType& oSourceType,
180 const adtf::streaming::IStreamType& oDestinationType)
182 return T::IsCompatible(oSourceType, oDestinationType);
226template <
typename MetaTypeStruct>
239 detail::stream_meta_type_properties_helper<MetaTypeStruct>::set_default_properties(
m_pDefaultProperties);
254 if (detail::stream_meta_type_is_compatible_helper<MetaTypeStruct>::HasIsCompatible())
256 return detail::stream_meta_type_is_compatible_helper<MetaTypeStruct>::IsCompatible(oCheckedType, oExpectedType);
284 tTimeStamp m_pTimeStamp = -1;
296 template <
typename MetaType>
302 InitPropertiesFromStreamTypeDefintion(*m_pProperties.Get(), *m_pStreamMetaType.Get());
327 tTimeStamp GetTime()
const
332 tResult SetTime(tTimeStamp oTimeStamp)
334 m_pTimeStamp = oTimeStamp;
366template <
typename StreamMetaType>
382using ant::cStreamMetaType;
385using ant::cStreamType;
388using ant::stream_meta_type;
391using flash::stream_type;
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
#define RETURN_ERROR(code)
Return specific error code, which requires the calling function's return type to be tResult.
Definition result.h:42
Definition property_intf.h:213
Definition string_intf.h:29
Definition properties_v2.h:397
Defines access methods for the interface of a Stream Type.
Definition streamtype_intf.h:96
Definition streamtype.h:276
cStreamType(const IStreamType &pType)
cStreamType(const MetaType &)
Definition streamtype.h:297
tResult GetMetaType(adtf::ucom::iobject_ptr< const IStreamMetaType > &pMetaType) const override
Get the Stream Meta Type definition of the Stream Type.
cStreamType(cStreamType &&oType)=delete
hide move CTOR
tResult GetConfig(adtf::ucom::iobject_ptr< base::ant::IProperties > &pProperties) override
Get all properties of a Stream Type (read/write)
cStreamType(const cStreamType &oType)=delete
hide copy CTOR
adtf::util::tVersion GetVersion() const override
Get version of this instance of the StreamMetaType.
cStreamType & operator=(cStreamType &&oType)=delete
hide move operator
tResult GetMetaTypeName(base::ant::IString &&strTypeName) const override
Get the meta type name of this instance.
tResult GetConfig(adtf::ucom::iobject_ptr< const base::ant::IProperties > &pProperties) const override
Get all properties of a Stream Type (read/write)
cStreamType & operator=(const cStreamType &oType)=delete
hide copy operator
stream_type()
Definition streamtype.h:374
Base object pointer to realize binary compatible reference counting in interface methods.
Definition object_ptr_intf.h:112
Definition object_ptr.h:384
Namespace for all internally used functionality implemented.
Definition filtergraphport.h:28
Namespace for all functionality of the ADTF Streaming SDK provided since v3.0.
Definition bindingproxyoutport.h:16
Namespace for all functionality of the ADTF Streaming SDK provided since v3.5.
Definition filterbase.h:255
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
Namespace for the ADTF uCOM SDK.
Definition adtf_system.h:324
ant::iobject_ptr< T > iobject_ptr
Alias always bringing the latest version of ant::iobject_ptr into scope.
Definition object_ptr_intf.h:437
object_ptr< Implementation > make_object_ptr(Args &&... args)
Alias always bringing the latest version of ant::make_object_ptr() into scope.
Definition object_ptr_utilities.h:129
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14