32 #ifndef _QORE_QORETYPE_H
34 #define _QORE_QORETYPE_H
46 DLLEXPORT
extern QoreNumberNode* ZeroNumber, * InfinityNumber, * NaNumber, * piNumber;
48 DLLEXPORT
extern QoreString NothingTypeString, NullTypeString, TrueString,
49 FalseString, EmptyHashString, EmptyListString;
51 DLLEXPORT
extern const QoreTypeInfo* anyTypeInfo,
69 *runTimeClosureTypeInfo,
70 *callReferenceTypeInfo,
81 *softAutoListTypeInfo,
84 *bigIntOrFloatTypeInfo,
85 *bigIntFloatOrNumberTypeInfo,
86 *floatOrNumberTypeInfo,
88 *bigIntOrNothingTypeInfo,
89 *floatOrNothingTypeInfo,
90 *numberOrNothingTypeInfo,
91 *stringOrNothingTypeInfo,
92 *boolOrNothingTypeInfo,
93 *binaryOrNothingTypeInfo,
94 *objectOrNothingTypeInfo,
95 *dateOrNothingTypeInfo,
96 *hashOrNothingTypeInfo,
97 *autoHashOrNothingTypeInfo,
98 *listOrNothingTypeInfo,
99 *autoListOrNothingTypeInfo,
100 *nullOrNothingTypeInfo,
101 *codeOrNothingTypeInfo,
102 *dataOrNothingTypeInfo,
103 *referenceOrNothingTypeInfo,
105 *softBinaryOrNothingTypeInfo,
106 *softBigIntOrNothingTypeInfo,
107 *softFloatOrNothingTypeInfo,
108 *softNumberOrNothingTypeInfo,
109 *softBoolOrNothingTypeInfo,
110 *softStringOrNothingTypeInfo,
111 *softDateOrNothingTypeInfo,
112 *softListOrNothingTypeInfo,
113 *softAutoListOrNothingTypeInfo,
114 *timeoutOrNothingTypeInfo;
156 enum qore_type_result_e {
167 DLLEXPORT
int testObjectClassAccess(
const QoreObject* obj,
const QoreClass* classtoaccess);
169 DLLEXPORT
const QoreClass* typeInfoGetUniqueReturnClass(
const QoreTypeInfo* typeInfo);
170 DLLEXPORT
bool typeInfoHasType(
const QoreTypeInfo* typeInfo);
171 DLLEXPORT
const char* typeInfoGetName(
const QoreTypeInfo* typeInfo);
172 DLLEXPORT
const QoreTypeInfo* typeInfoGetElementType(
const QoreTypeInfo* typeInfo);
173 DLLEXPORT
const TypedHashDecl* typeInfoGetTypedHash(
const QoreTypeInfo* typeInfo);
175 DLLEXPORT qore_type_result_e typeInfoAcceptsType(
const QoreTypeInfo* typeInfo,
const QoreTypeInfo* otherTypeInfo);
176 DLLEXPORT qore_type_result_e typeInfoReturnsType(
const QoreTypeInfo* typeInfo,
const QoreTypeInfo* otherTypeInfo);
178 DLLEXPORT
const QoreTypeInfo* qore_get_or_nothing_type(
const QoreTypeInfo* typeInfo);
181 DLLEXPORT
const QoreTypeInfo* qore_get_complex_hash_type(
const QoreTypeInfo* valueTypeInfo);
183 DLLEXPORT
const QoreTypeInfo* qore_get_complex_hash_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
185 DLLEXPORT
const QoreTypeInfo* qore_get_complex_list_type(
const QoreTypeInfo* valueTypeInfo);
187 DLLEXPORT
const QoreTypeInfo* qore_get_complex_list_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
189 DLLEXPORT
const QoreTypeInfo* qore_get_complex_softlist_type(
const QoreTypeInfo* valueTypeInfo);
191 DLLEXPORT
const QoreTypeInfo* qore_get_complex_softlist_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
193 DLLEXPORT
const QoreTypeInfo* qore_get_complex_reference_type(
const QoreTypeInfo* valueTypeInfo);
195 DLLEXPORT
const QoreTypeInfo* qore_get_complex_reference_or_nothing_type(
const QoreTypeInfo* valueTypeInfo);
198 DLLEXPORT
const QoreTypeInfo* qore_get_type_from_string(
const char* str,
ExceptionSink& xsink);
200 #endif // _QORE_QORETYPE_H