ADTF  3.14.3
stream_type_helper.h
Go to the documentation of this file.
1 
7 #pragma once
13 
14 #include <type_traits>
15 
16 namespace adtf
17 {
18 namespace filter
19 {
20 namespace flash
21 {
29 {
30 public:
35  cStreamTypeHelper(std::nullptr_t pNull);
36 
43 
51 
57 
58  #ifdef USE_ADTF_MEDIA_DESCRIPTION_LEGACY
59  #ifndef NO_ADTF_MEDIA_DESCRIPTION_LEGACY
70  template<typename Struct>
72  cStreamTypeHelper(mediadescription::flash::create_adtf_default_stream_type<Struct>())
73  {
74  }
75  #endif
76  #endif
82 
89  template<typename MetaType>
90  cStreamTypeHelper(const MetaType& oMetaType, const std::enable_if_t<streaming::flash::is_stream_meta_type<MetaType>::value>* = nullptr):
91  m_pStreamType(ucom::ant::make_object_ptr<streaming::ant::cStreamType>(oMetaType))
92  {
93  }
94 
95 
100  template<typename Struct>
102  cStreamTypeHelper(mediadescription::create_adtf_default_stream_type<Struct>())
103  {
104  }
105 
111  cStreamTypeHelper(const ddl::DDStructure& oTypeDefinition);
112 
117  template<typename StructType>
119  cStreamTypeHelper(oGeneratorStructure.GetStructure())
120  {
121  }
122 
123  cStreamTypeHelper(const cStreamTypeHelper&) = default;
125 
126  cStreamTypeHelper& operator=(const cStreamTypeHelper&) = default;
127  cStreamTypeHelper& operator=(cStreamTypeHelper&&) = default;
128 
133 
134 private:
135  cStreamTypeHelper() = delete;
136 
138 };
139 
140 } // namespace flash
141 
142 namespace hollow
143 {
151 {
152 public:
154 
161  void SetSubStream(const char* strName, uint32_t nSubStreamId, const flash::cStreamTypeHelper& oType);
162 };
163 
164 } // namespace hollow
165 
168 
169 } //namespace filter
170 } //namespace adtf
Helper class that wraps different objects into an adtf::streaming::ant::IStreamType.
cStreamTypeHelper(const streaming::ant::IStreamType &oExistingType)
Initialize the helper with an existing IStreamType reference.
cStreamTypeHelper(const ucom::ant::iobject_ptr< const streaming::ant::IStreamType > &pExistingType)
Initialize the helper with an existing const IStreamType pointer.
cStreamTypeHelper(const ucom::ant::iobject_ptr< streaming::ant::IStreamType > &pExistingType)
Initialize the helper with an existing IStreamType pointer.
cStreamTypeHelper(const ddl::DDStructure &oTypeDefinition)
Initialize the helper with a structure definition.
ucom::ant::object_ptr< const streaming::ant::IStreamType > GetStreamType() const
cStreamTypeHelper(std::nullptr_t pNull)
Initialize with an empty stream type.
cStreamTypeHelper(const MetaType &oMetaType, const std::enable_if_t< streaming::flash::is_stream_meta_type< MetaType >::value > *=nullptr)
Initializes the helper with a stream meta type.
cStreamTypeHelper(const mediadescription::osborn::description< Struct > &)
Initializes the helper with a generated media description.
cStreamTypeHelper(const streaming::hollow::cSubStreamTypes &oSubStreams)
Initialize the helper with a Substream helper.
cStreamTypeHelper(const mediadescription::osborn::structure< StructType > &oGeneratorStructure)
Initializes the helper with a type reflection generated media description.
Helper class to create a stream type with multiple Substreams.
void SetSubStream(const char *strName, uint32_t nSubStreamId, const flash::cStreamTypeHelper &oType)
Adds or updates a Substream.
This is used to create a structure type from an existing c++ struct definition.
Defines access methods for the interface of a Stream Type - see also Stream Type and Stream Meta Type...
type traits concept test template to check wether a type T is a type can be used for Stream Meta Type...
Helper class to create a stream type with multiple Substreams.
cSubStreamTypes(const MetaType &=MetaType())
Constructor.
Base object pointer to realize binary compatible reference counting in interface methods.
Object pointer implementation used for reference counting on objects of type IObject.
Definition: object_ptr.h:158
Utility class for a complete valid data definition of one StructType and its dependencies.
Definition: ddstructure.h:61
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
tResult create_adtf_default_stream_type(const char *strStructName, const char *strMediaDescription, ucom::iobject_ptr< adtf::streaming::IStreamType > &pStreamType, adtf_ddl::tDataRepresentation eRep=adtf_ddl::tDataRepresentation::Deserialized)
Create an instance of an ADTF default stream type.
std::enable_if< !std::is_base_of< enable_object_ptr_from_this< typename std::remove_cv< Implementation >::type >, typename std::remove_cv< Implementation >::type >::value, object_ptr< Implementation > >::type make_object_ptr(Args &&... args)
Create an instance of type object_ptr with Implementation as the shared resource.
Namespace for entire ADTF SDK.
Copyright © Audi Electronics Venture GmbH.
Copyright © Audi Electronics Venture GmbH.
Template to provide struct name and definition for a generated struct.
Template to provide struct name and definition for a generated struct.
Copyright © Audi Electronics Venture GmbH.

Copyright © Audi Electronics Venture GmbH. All rights reserved. (Generated on Thu Jun 9 2022 by doxygen 1.9.1)