32 #ifndef _QORE_COMMON_H
34 #define _QORE_COMMON_H
59 #define Q_AF_UNSPEC -1
68 #define Q_SOCK_STREAM -1
93 enum ClassAccess :
unsigned char {
99 #if defined _MSC_VER || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)
102 #define _Q_WINDOWS64 1
108 #define DLLEXPORT __declspec(dllexport)
110 #define DLLEXPORT __declspec(dllimport)
116 #define QLLDx(a) "%" #a "I64d"
117 #define QORE_DIR_SEP '\\'
118 #define QORE_DIR_SEP_STR "\\"
119 #define QORE_PATH_SEP ';'
120 #define QORE_PATH_SEP_STR ";"
121 #include <winsock2.h>
123 #ifdef HAVE_GCC_VISIBILITY
124 #define DLLEXPORT __attribute__ ((visibility("default")))
125 #define DLLLOCAL __attribute__ ((visibility("hidden")))
132 #define QLLDx(a) "%" #a "lld"
133 #define QORE_DIR_SEP '/'
134 #define QORE_DIR_SEP_STR "/"
135 #define QORE_PATH_SEP ':'
136 #define QORE_PATH_SEP_STR ":"
139 #define _Q_MAKE_STRING(x) #x
140 #define MAKE_STRING_FROM_SYMBOL(x) _Q_MAKE_STRING(x)
148 class QoreBuiltinMethod;
154 template <
typename T>
struct free_ptr : std::unary_function <T*, void> {
155 DLLLOCAL
void operator()(T* ptr) {
162 DLLLOCAL
void operator()(T* ptr) {
169 DLLLOCAL
void operator()(T* ptr) {
180 DLLLOCAL
bool operator()(
const char* s1,
const char* s2)
const {
181 return strcmp(s1, s2) < 0;
188 DLLLOCAL
bool operator()(
const char* s1,
const char* s2)
const {
189 return strcasecmp(s1, s2) < 0;
196 DLLLOCAL
bool operator()(std::string s1, std::string s2)
const {
197 return strcasecmp(s1.c_str(), s2.c_str()) < 0;
203 DLLLOCAL
bool operator()(
const char* s1,
const char* s2)
const {
204 return !strcmp(s1, s2);
210 DLLLOCAL
bool operator()(
const char* s1,
const char* s2)
const {
211 return !strcasecmp(s1, s2);
218 DLLLOCAL
bool operator()(
const char s1,
const char s2)
const {
540 DLLEXPORT
long long q_atoll(
const char* str);
542 #endif // _QORE_COMMON_H
void(* q_copy3_t)(const QoreClass &thisclass, const void *ptr, QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures with the new generic calling convention ...
Definition: common.h:525
bool(* q_delete_blocker_t)(QoreObject *self, AbstractPrivateData *private_data)
the typed used for QoreClass deleteBlocker signatures
Definition: common.h:533
the base class for all data to be used as private data of Qore objects
Definition: AbstractPrivateData.h:44
non-thread-safe vector for storing "char*" that you want to delete
Definition: common.h:224
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreValueList.h:45
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:54
code to be used under the LGPL license
Definition: common.h:88
int64(* q_func_int64_t)(const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin function signatures returning an integer value
Definition: common.h:264
size_t qore_size_t
used for sizes (same range as a pointer)
Definition: common.h:74
for char less-than comparisons
Definition: common.h:216
for simple c-string less-than comparisons
Definition: common.h:178
uint64_t q_rt_flags_t
runtime code execution flags
Definition: common.h:244
for simple c-string case-insensitive less-than comparisons
Definition: common.h:186
void(* q_system_constructor2_t)(const QoreClass &thisclass, QoreObject *self, int code, va_list args)
the type used for builtin QoreClass system constructor method signatures using the new generic callin...
Definition: common.h:468
int64(* q_method_int64_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures, returns int64
Definition: common.h:316
double(* q_method_double_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures when called with the even newer generic calling...
Definition: common.h:346
QoreValue(* q_external_static_method_t)(const QoreMethod &method, const void *ptr, const QoreValueList *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for external static methods
Definition: common.h:383
code to be used under the MIT license
Definition: common.h:89
std::vector< AbstractQoreNode * > arg_vec_t
vector of value information for default argument lists
Definition: common.h:235
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
void(* q_copy_t)(QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures
Definition: common.h:504
void(* q_destructor_t)(QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures
Definition: common.h:476
double(* q_func_double_t)(const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin function signatures returning an double value
Definition: common.h:270
defines a Qore-language class
Definition: QoreClass.h:214
void(* q_destructor2_t)(const QoreClass &thisclass, QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures with the new generic calling convention ...
Definition: common.h:485
functor template for deleting elements
Definition: common.h:161
void(* q_constructor_t)(QoreObject *self, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:430
void(* q_system_constructor_t)(QoreObject *self, int code, va_list args)
the type used for builtin QoreClass system constructor method signatures
Definition: common.h:458
unsigned q_trid_t
type for thread resource IDs (unique within a single running qore library process) ...
Definition: common.h:538
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:112
void(* q_constructor_n_t)(QoreObject *self, const QoreValueList *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:411
qore_license_t
qore library and module license type identifiers
Definition: common.h:86
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:62
unsigned qore_classid_t
used for the unique class ID for QoreClass objects
Definition: common.h:80
for std::string case-insensitive less-than comparisons
Definition: common.h:194
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:47
void(* q_constructor2_t)(const QoreClass &thisclass, QoreObject *self, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures using the new generic calling conve...
Definition: common.h:438
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:238
long long int64
64bit integer type, cannot use int64_t here since it breaks the API on some 64-bit systems due to equ...
Definition: common.h:241
bool(* q_method_bool_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures when called with the even newer generic calling...
Definition: common.h:336
intptr_t qore_offset_t
used for offsets that could be negative
Definition: common.h:77
code to be used under the GPL license
Definition: common.h:87
QoreValue(* q_method_n_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreValueList *args, q_rt_flags_t flags, ExceptionSink *xsink)
the new type used for builtin QoreClass method signatures
Definition: common.h:281
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode) ...
Definition: common.h:71
QoreValue(* q_func_n_t)(const QoreValueList *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin function signatures
Definition: common.h:253
std::set< int > int_set_t
set of integers
Definition: common.h:83
void(* q_constructor3_t)(const QoreClass &thisclass, const type_vec_t &typeList, const void *ptr, QoreObject *self, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures using the even newer generic callin...
Definition: common.h:448
int(* q_method_int_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures when called with the even newer generic calling...
Definition: common.h:326
std::vector< const QoreTypeInfo * > type_vec_t
vector of type information for parameter lists
Definition: common.h:232
a method in a QoreClass
Definition: QoreClass.h:94
bool(* q_func_bool_t)(const QoreListNode *args, ExceptionSink *xsink)
the type used for builtin function signatures returning a boolean value
Definition: common.h:267
void(* q_external_constructor_t)(const QoreMethod &method, const void *ptr, QoreObject *self, const QoreValueList *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:423
functor template for dereferencing elements
Definition: common.h:168
void(* q_copy2_t)(const QoreClass &thisclass, QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures with the new generic calling convention ...
Definition: common.h:514
QoreValue(* q_external_method_t)(const QoreMethod &method, const void *ptr, QoreObject *self, AbstractPrivateData *private_data, const QoreValueList *args, q_rt_flags_t flags, ExceptionSink *xsink)
the new type used for builtin QoreClass method signatures
Definition: common.h:296
void(* q_destructor3_t)(const QoreClass &thisclass, const void *ptr, QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures with the new generic calling convention and...
Definition: common.h:495
functor template for calling free() on pointers
Definition: common.h:154