|
AlexaClientSDK
1.26.0
A cross-platform, modular SDK for interacting with the Alexa Voice Service
|
Go to the documentation of this file.
16 #ifndef ACSDKMANUFACTORY_INTERNAL_UTILS_H_
17 #define ACSDKMANUFACTORY_INTERNAL_UTILS_H_
20 #include <type_traits>
28 namespace acsdkManufactory {
49 template <
typename...>
52 template <
typename Operation,
typename Result0>
57 template <
typename Operation,
typename Result0,
typename A1>
62 template <
typename Operation,
typename Result0,
typename A1,
typename A2>
68 template <
typename Operation,
typename Result0,
typename A1,
typename A2,
typename A3>
75 template <
typename Operation,
typename Result0,
typename A1,
typename A2,
typename A3,
typename A4,
typename... An>
76 struct Apply<Operation, Result0, A1, A2, A3, A4, An...> {
95 struct Apply<Operation, Result0, A1, A2, A3, A4, A5, A6, A7, An...> {
122 struct Apply<Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An...> {
154 template <
typename...>
157 template <
typename Operation,
typename Result0,
typename... Types>
158 struct Apply<Operation, Result0,
std::tuple<Types...>> {
171 template <
typename...>
174 template <
typename Type,
typename... ContainedTypes>
176 template <
typename InType>
178 constexpr
static const bool value =
false;
181 template <
bool... InTypes>
184 using FalseValues = BoolValues<IsFalse<ContainedTypes>::value...>;
185 using SameValues = BoolValues<std::is_same<Type, ContainedTypes>::value...>;
186 constexpr
static const bool value = !std::is_same<FalseValues, SameValues>::value;
198 template <
typename...>
201 template <
typename Container,
typename... Types>
203 template <
typename InType>
205 constexpr
static const bool value =
true;
208 template <
bool... InTypes>
213 constexpr
static const bool value = std::is_same<TrueValues, ContainedValues>::value;
225 template <
typename...>
228 template <
typename... ContainerTypes,
typename... TupleTypes>
230 :
ContainsTypes<std::tuple<ContainerTypes...>, TupleTypes...> {};
239 template <
typename...>
242 template <
typename Type>
245 template <
typename Type>
248 template <
typename Type>
258 template <
typename...>
261 template <
typename Type>
264 template <
typename Type>
274 template <
typename... Types>
276 template <
typename InType>
278 constexpr
static const bool value =
false;
281 template <
bool... InTypes>
286 constexpr
static const bool value = !std::is_same<FalseValues, IsImportValues>::value;
298 template <
typename... Types>
301 template <
typename...>
304 template <
typename... ResultTypes,
typename Type>
306 using type =
typename std::conditional<
308 std::tuple<ResultTypes...>,
326 template <
typename...>
329 template <
typename... Types,
typename... Unwanted>
331 struct RemoveTypesOperation {
332 template <
typename...>
335 template <
typename... ResultTypes,
typename Type>
336 struct Apply<
std::tuple<ResultTypes...>,
Type> {
337 using type =
typename std::conditional<
339 std::tuple<ResultTypes...>,
357 template <
typename... Types>
362 template <
typename...>
365 template <
typename... ResultTypes,
typename Type>
367 using type =
typename std::
368 conditional<IsImport<Type>::value, std::tuple<ResultTypes...>, std::tuple<ResultTypes...,
Type>>
::type;
375 template <
typename...>
378 template <
typename... ResultTypes,
typename Type>
383 template <
typename... ResultTypes,
typename Type>
385 using type = std::tuple<ResultTypes...>;
393 template <
typename...>
396 template <
typename... ResultTypes,
typename Type>
401 template <
typename... ResultTypes,
typename Type>
406 template <
typename... ResultTypes,
typename Type>
408 using type = std::tuple<ResultTypes...>;
419 template <
typename...>
422 template <
typename... ResultTypes,
typename Type>
427 template <
typename... ResultTypes,
typename Type>
429 using type = std::tuple<ResultTypes...>;
467 template <
typename... Types>
470 template <
typename Type,
typename... Types>
483 template <
typename Type,
typename... Types>
518 template <
typename... Types>
542 template <
typename... Types>
558 #endif // ACSDKMANUFACTORY_INTERNAL_UTILS_H_
std::tuple< ResultTypes... > type
Definition: Utils.h:385
void operator()()
Definition: Utils.h:523
Definition: OptionalImport.h:30
typename Apply< Operation, Result4, An... >::type type
Definition: Utils.h:81
BoolValues< std::is_same< Type, ContainedTypes >::value... > SameValues
Definition: Utils.h:185
std::tuple< ResultTypes..., Type > type
Definition: Utils.h:403
Definition: CookBook.h:41
typename DedupTypes< Types... >::type UniqueParameters
Definition: Utils.h:359
typename Fold::Apply< DedupOperation, std::tuple<>, Types... >::type type
Definition: Utils.h:313
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result3 typename Operation::template Apply< Result2, A3 >::type Result3
Definition: Utils.h:125
typename Operation::template Apply< Result5, A6 >::type Result6
Definition: Utils.h:101
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result5 typename Operation::template Apply< Result4, A5 >::type Result5
Definition: Utils.h:127
typename Operation::template Apply< Result0, A1 >::type Result1
Definition: Utils.h:77
constexpr static const bool value
Definition: Utils.h:278
typename Apply< Operation, Result7, An... >::type type
Definition: Utils.h:103
static void apply(internal::CookBook &cookBook)
Definition: Utils.h:477
typename Operation::template Apply< Result0, A1 >::type Result1
Definition: Utils.h:64
BoolValues< IsFalse< ContainedTypes >::value... > FalseValues
Definition: Utils.h:184
typename Operation::template Apply< Result1, A2 >::type Result2
Definition: Utils.h:97
typename Operation::template Apply< Result6, A7 >::type Result7
Definition: Utils.h:102
typename RemoveTypes< typename RemoveTypes< OptionalImports, Exports >::type, UnsatisfiedRequiredImports >::type UnsatisfiedOptionalImports
Definition: Utils.h:451
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result7 typename Operation::template Apply< Result6, A7 >::type Result7
Definition: Utils.h:129
typename std::conditional< ContainsType< std::tuple< Unwanted... >, Type >::value, std::tuple< ResultTypes... >, std::tuple< ResultTypes..., Type > >::type type
Definition: Utils.h:340
UnsatisfiedOptionalImports optional
Definition: Utils.h:456
typename Operation::template Apply< Result2, A3 >::type Result3
Definition: Utils.h:79
std::tuple< ResultTypes... > type
Definition: Utils.h:408
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result12 typename Operation::template Apply< Result11, A12 >::type Result12
Definition: Utils.h:134
typename Operation::template Apply< Result2, A3 >::type Result3
Definition: Utils.h:98
BoolValues< IsTrue< Types >::value... > TrueValues
Definition: Utils.h:211
typename FoldTupleTypes::Apply< GetOptionalImportsOperation, std::tuple<>, UniqueParameters >::type OptionalImports
Definition: Utils.h:416
typename RemoveTypes< DeclaredRequiredImports, MakeOptionalImports >::type RequiredImports
Definition: Utils.h:439
typename Operation::template Apply< Result1, A2 >::type type
Definition: Utils.h:65
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result9 typename Operation::template Apply< Result8, A9 >::type Result9
Definition: Utils.h:131
typename Fold::Apply< RemoveTypesOperation, std::tuple<>, Types... >::type type
Definition: Utils.h:344
Result0 type
Definition: Utils.h:54
std::tuple< ResultTypes..., Type > type
Definition: Utils.h:398
typename Operation::template Apply< Result3, A4 >::type Result4
Definition: Utils.h:99
Whether or not curl logs should be emitted.
Definition: AVSConnectionManager.h:36
static void apply(internal::CookBook &cookBook)
Definition: Utils.h:490
typename RemoveTypes< RequiredImports, Exports >::type UnsatisfiedRequiredImports
Definition: Utils.h:444
typename std::conditional< IsImport< Type >::value, std::tuple< ResultTypes... >, std::tuple< ResultTypes..., Type > >::type type
Definition: Utils.h:368
typename Operation::template Apply< Result0, A1 >::type Result1
Definition: Utils.h:70
typename std::conditional< ContainsType< std::tuple< ResultTypes... >, Type >::value, std::tuple< ResultTypes... >, std::tuple< ResultTypes..., Type > >::type type
Definition: Utils.h:309
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result11 typename Operation::template Apply< Result10, A11 >::type Result11
Definition: Utils.h:133
typename FoldTupleTypes::Apply< GetExportsOperation, std::tuple<>, UniqueParameters >::type Exports
Definition: Utils.h:372
std::tuple< ResultTypes..., Type > type
Definition: Utils.h:424
typename Operation::template Apply< Result0, A1 >::type type
Definition: Utils.h:59
constexpr static const bool value
Definition: Utils.h:286
typename FoldTupleTypes::Apply< GetRequiredImportsOperation, std::tuple<>, UniqueParameters >::type DeclaredRequiredImports
Definition: Utils.h:437
typename Operation::template Apply< Result3, A4 >::type Result4
Definition: Utils.h:80
typename Operation::template Apply< Result1, A2 >::type Result2
Definition: Utils.h:71
typename Fold::Apply< Operation, Result0, Types... >::type type
Definition: Utils.h:159
typename FoldTupleTypes::Apply< GetMakeOptionalImportsOperation, std::tuple<>, UniqueParameters >::type MakeOptionalImports
Definition: Utils.h:390
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result4 typename Operation::template Apply< Result3, A4 >::type Result4
Definition: Utils.h:126
typename Operation::template Apply< Result1, A2 >::type Result2
Definition: Utils.h:78
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::type typename Apply< Operation, Result12, An... >::type type
Definition: Utils.h:135
BoolValues< ContainsType< Container, Types >::value... > ContainedValues
Definition: Utils.h:212
Definition: CapabilityConfiguration.h:190
typename Operation::template Apply< Result0, A1 >::type Result1
Definition: Utils.h:96
Type
Definition: Type.h:26
static void apply(internal::CookBook &cookBook)
Definition: Utils.h:502
CookBook & addInstance(const Type &instance)
Definition: CookBook_imp.h:533
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result6 typename Operation::template Apply< Result5, A6 >::type Result6
Definition: Utils.h:128
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result2 typename Operation::template Apply< Result1, A2 >::type Result2
Definition: Utils.h:124
typename Operation::template Apply< Result4, A5 >::type Result5
Definition: Utils.h:100
typename Operation::template Apply< Result2, A3 >::type type
Definition: Utils.h:72
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result8 typename Operation::template Apply< Result7, A8 >::type Result8
Definition: Utils.h:130
std::tuple< ResultTypes... > type
Definition: Utils.h:429
std::tuple< ResultTypes..., Type > type
Definition: Utils.h:380
void operator()()
Definition: Utils.h:547
UnsatisfiedRequiredImports required
Definition: Utils.h:455
Exports exports
Definition: Utils.h:454
Definition: MakeOptional.h:31
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result10 typename Operation::template Apply< Result9, A10 >::type Result10
Definition: Utils.h:132
alexaClientSDK::acsdkManufactory::internal::Fold::Apply< Operation, Result0, A1, A2, A3, A4, A5, A6, A7, A8, A9, A10, A11, A12, An... >::Result1 typename Operation::template Apply< Result0, A1 >::type Result1
Definition: Utils.h:123
AlexaClientSDK 1.26.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved.
Licensed under the Apache License, Version 2.0