knowL: Knowledge Libraries
Loading...
Searching...
No Matches
MetaType_p.h
1#include "MetaType.h"
2
3namespace knowCore
4{
6 {
13 QHash<Uri, QList<Uri>> aliases_to_from;
14 QHash<Uri, Uri> aliases_from_to;
15 QList<knowCore::Uri> numeric_types;
16 QHash<Uri, AbstractToVariantMarshal*> to_variant_marshals;
17
18 knowCore::Uri unaliased(const Uri& _uri)
19 {
20 return aliases_from_to.value(_uri, _uri);
21 }
22 const AbstractTypeConversion* converter(const Uri& _from, const Uri& _to, TypeCheckingMode _conversionMode)
23 {
24 Uri from_u = unaliased(_from);
25 Uri to_u = unaliased(_to);
26
27 if(_conversionMode == TypeCheckingMode::Force)
28 {
29 const AbstractTypeConversion* conv = force_converters.value(from_u).value(to_u, nullptr);
30 if(conv) return conv;
31 }
32 // If no weak conversion, fallback to strong
33 return safe_converters.value(from_u).value(to_u, nullptr);
34 }
35 const AbstractTypeComparator* comparator(ComparisonOperator _operator, const Uri& _from, const Uri& _to)
36 {
37 return comparators.value((int)_operator).value(unaliased(_from)).value(unaliased(_to), nullptr);
38 }
39 const AbstractArithmeticOperator* arithmeticOperator(ArithmeticOperator _operator, const Uri& _from, const Uri& _to)
40 {
41 return operators.value((int)_operator).value(unaliased(_from)).value(unaliased(_to), nullptr);
42 }
43 static MetaTypeRegistryPrivate* instance();
44 };
45}
Definition Forward.h:8
Definition Forward.h:12
Definition MetaType.h:253
Definition MetaType.h:244
Definition MetaType.h:236
Definition Uri.h:14
Definition MetaType_p.h:6