33 const char* strStructName,
34 const char* strMediaDescription,
56 const std::pair<std::string, std::string>& type_definition,
78 const char* strStructName,
79 const char* strMediaDescription,
93 const
char* strStructName,
94 ddl::tDataRepresentation eRep
95 =
ddl::tDataRepresentation::Deserialized);
103std::tuple<std::
string, std::
string,
ddl::tDataRepresentation>
125struct is_array_like: std::false_type {};
126template<
typename ValueType,
size_t szArraySize>
127struct is_array_like<std::array<ValueType, szArraySize>>: std::true_type {};
129template<
class ValueType,
size_t szArraySize>
130struct is_array_like<ValueType[szArraySize]>: std::true_type {};
133constexpr bool is_array_like_v = is_array_like<T>::value;
138 cStreamTypeDefaultBase(std::string_view strMDStructName,
139 std::string_view strMDDescription,
141 size_t szFixArraySize,
142 bool bValidate =
false);
144 cStreamTypeDefaultBase(std::string_view strMDStructName,
146 size_t szFixArraySize);
156template<
typename T =
void>
160 static_assert(!std::is_arithmetic_v<T>,
161 "stream_type_default can be used only for structured types, "
162 "use adtf::streaming::stream_type_plain<T> instead");
163 static_assert(std::is_trivially_copyable_v<T>,
164 "stream_type_default can be used only for trivial structured types");
165 static_assert(!detail::is_array_like_v<T>,
166 "stream_type_default can not used for arrays of structured types, "
167 "use adtf::mediadescription::stream_type_default_array<T> instead");
169 "stream_type_default<T>() can only be used if ddl description was generated with adtf_mdgen! "
170 "If you have another source for the description, use stream_type_default<void>(...).");
228 cStreamTypeDefaultBase(
229 oTypeDefinition.getStructType().getName(), oTypeDefinition.getStructDescription(), eDataRep, 1)
243 std::string_view strMDDescription):
257 std::string_view strMDDescription,
259 cStreamTypeDefaultBase(strMDStructName, strMDDescription, eDataRep, 1, true)
272 ADTF3_IGNORE_DEPRECATION_WARNING_BEGIN
277 ADTF3_IGNORE_DEPRECATION_WARNING_END
286 ADTF3_DEPRECATED(
"This CTOR uses the ADTF Media Description Service which is deprecated.")
288 ddl::DataRepresentation eDataRep):
289 cStreamTypeDefaultBase(strMDStructName, eDataRep, 1)
306 strMDStructName,
ddl::DDString::toXMLString(strMDStructName, oDataDefinition).c_str(), eDataRep)
340template<
typename T =
void>
345 "stream_type_default_array can be used only for std::array<T, N> and T[N] "
346 "use i.e. adtf::mediadescription::stream_type_default_array<std::array<T, N>>! "
347 "Use stream_type_default_array<void> if you have a valid media description.");
394 cStreamTypeDefaultBase(oValueTypeDefinition.getStructType().getName(),
395 oValueTypeDefinition.getStructDescription(),
411 std::string_view strMDDescription,
426 std::string_view strMDDescription,
429 cStreamTypeDefaultBase(strMDStructName, strMDDescription, eDataRep, szArraySize, true)
445 ADTF3_IGNORE_DEPRECATION_WARNING_BEGIN
451 ADTF3_IGNORE_DEPRECATION_WARNING_END
464 ADTF3_DEPRECATED(
"This CTOR uses the ADTF Media Description Service which is deprecated.")
467 ddl::DataRepresentation eDataRep):
468 cStreamTypeDefaultBase(strMDStructName, eDataRep, szArraySize)
488 ddl::DDString::toXMLString(strMDStructName, oDataDefinition).c_str(),
501template<
class ValueType,
size_t szArraySize>
506 "stream_type_default_array<T>() can only be used if ddl description was generated with adtf_mdgen! "
507 "If you have another source for the description, use stream_type_default_array<void>(...).");
508 static_assert(!std::is_arithmetic_v<ValueType>,
509 "stream_type_default_array can be used only for structured types, "
510 "use adtf::streaming::stream_type_plain<std::array<T, N>> instead");
511 static_assert(std::is_trivially_copyable_v<ValueType>,
512 "stream_type_default_array can be used only for trivial structured types");
545template<
typename ValueType,
size_t szArraySize>
#define ADTF3_DEPRECATED(_depr_message_)
Definition adtf_base_deprecated.h:27
A_UTILS_NS::cResult tResult
For backwards compatibility and to bring latest version into scope.
Definition result.h:736
Definition property_intf.h:213
Defines access methods for the interface of a Stream Type.
Definition streamtype_intf.h:96
Definition streamtype.h:276
Utility class for a complete valid data definition of one StructType and its dependencies....
Definition ddstructure.h:57
The Data Definiton class uses the validation model to keep a Data Definition datamodel (ddl::dd::data...
Definition dd.h:92
constexpr bool always_false
helper template to get a always false expression.
Definition adtf_base_type_traits.h:23
Namespace for the ADTF Streaming SDK.
Definition bindingproxyinport.h:14
Namespace for all functionality provided by ADTF and its SDKs.
Definition adtf_client_connector.h:14
definition of the ddl namespace
Definition codec.h:21
DataRepresentation
Definition data_representation.h:25
@ Deserialized
alias names for legacy reasons
Definition data_representation.h:29
DataRepresentation tDataRepresentation
Typedef provided for compatibility reasons.
Definition data_representation.h:32