  | 
  
    Qore Programming Language
    0.9.16
    
   | 
 
 
 
 
Go to the documentation of this file.
   32 #ifndef _QORE_COMMON_H 
   34 #define _QORE_COMMON_H 
   58 #define Q_AF_UNSPEC -1 
   67 #define Q_SOCK_STREAM -1 
   92 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) 
  149 class QoreBuiltinMethod;
 
  152 class QoreExternalFunction;
 
  153 class QoreExternalGlobalVar;
 
  160 typedef std::vector<const QoreClass*> class_vec_t;
 
  161 typedef std::vector<std::pair<const TypedHashDecl*, const QoreNamespace*>> hashdecl_vec_t;
 
  162 typedef std::vector<const QoreExternalFunction*> func_vec_t;
 
  163 typedef std::vector<const QoreNamespace*> ns_vec_t;
 
  164 typedef std::vector<std::pair<const QoreExternalGlobalVar*, const QoreNamespace*>> gvar_vec_t;
 
  165 typedef std::vector<std::pair<const QoreExternalConstant*, const QoreNamespace*>> const_vec_t;
 
  168 template <
typename T> 
hashdecl free_ptr : std::unary_function <T*, void> {
 
  169     DLLLOCAL 
void operator()(T* ptr) {
 
  176     DLLLOCAL 
void operator()(T* ptr) {
 
  183     DLLLOCAL 
void operator()(T* ptr) {
 
  194     DLLLOCAL 
bool operator()(
const char* s1, 
const char* s2)
 const {
 
  195         return strcmp(s1, s2) < 0;
 
  202     DLLLOCAL 
bool operator()(
const char* s1, 
const char* s2)
 const {
 
  203         return strcasecmp(s1, s2) < 0;
 
  210     DLLLOCAL 
bool operator()(std::string s1, std::string s2)
 const {
 
  211         return strcasecmp(s1.c_str(), s2.c_str()) < 0;
 
  217     DLLLOCAL 
bool operator()(
const char* s1, 
const char* s2)
 const {
 
  218         return !strcmp(s1, s2);
 
  224     DLLLOCAL 
bool operator()(
const char* s1, 
const char* s2)
 const {
 
  225         return !strcasecmp(s1, s2);
 
  232     DLLLOCAL 
bool operator()(
const char s1, 
const char s2)
 const {
 
  244     DLLLOCAL 
void clear() {
 
  246         std::vector<char*>::clear();
 
  277     DLLLOCAL 
void addModule(
const char* module);
 
  466 DLLEXPORT 
long long q_atoll(
const char* str);
 
  473 #endif // _QORE_COMMON_H 
  
 
QoreValue(* q_external_func_t)(const void *ptr, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin function signatures for external functions
Definition: common.h:319
 
uint64_t q_rt_flags_t
runtime code execution flags
Definition: common.h:263
 
for std::string case-insensitive less-than comparisons
Definition: common.h:208
 
QoreValue(* q_func_n_t)(const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin function signatures
Definition: common.h:307
 
std::set< int > int_set_t
set of integers
Definition: common.h:82
 
void(* q_external_constructor_t)(const QoreMethod &method, const void *ptr, QoreObject *self, const QoreListNode *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:378
 
DLLLOCAL QoreObject * deserializeObject(const char *index, ExceptionSink *xsink)
returns the object corresponding to the given object serialization index, throws a Qore-language exce...
 
intptr_t qore_offset_t
used for offsets that could be negative
Definition: common.h:76
 
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
 
DLLLOCAL int serializeObject(const QoreObject &obj, std::string &index, ExceptionSink *xsink)
serializes the given object and return the serialization index, throws a Qore-language exception if t...
 
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:390
 
This is the hash or associative list container type in Qore, dynamically allocated only,...
Definition: QoreHashNode.h:50
 
defines a Qore-language class
Definition: QoreClass.h:239
 
size_t qore_size_t
used for sizes (same range as a pointer)
Definition: common.h:73
 
non-thread-safe vector for storing "char*" that you want to delete
Definition: common.h:238
 
void(* q_deserializer_t)(QoreObject &self, const QoreHashNode *sdata, QoreDeserializationContext &context, ExceptionSink *xsink)
the type used for builtin QoreClass deserializer method signatures
Definition: common.h:458
 
@ QL_MIT
code to be used under the MIT license
Definition: common.h:88
 
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
 
DLLLOCAL QoreValue deserializeValue(const QoreValue val, ExceptionSink *xsink)
deserializes the given data value and returns the deserialized value, throws a Qore-language exceptio...
 
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:260
 
std::vector< QoreValue > arg_vec_t
vector of value information for default argument lists
Definition: common.h:254
 
serialization context object used in builtin serializer methods
Definition: common.h:268
 
void(* q_external_copy_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:428
 
contains constants, classes, and subnamespaces in QoreProgram objects
Definition: QoreNamespace.h:65
 
for simple c-string less-than comparisons
Definition: common.h:192
 
external wrapper class for constants
Definition: QoreReflection.h:200
 
for simple c-string case-insensitive less-than comparisons
Definition: common.h:200
 
QoreValue(* q_method_n_t)(QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures
Definition: common.h:330
 
qore_license_t
qore library and module license type identifiers
Definition: common.h:85
 
QoreValue(* q_external_static_method_t)(const QoreMethod &method, const void *ptr, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for external static methods
Definition: common.h:358
 
typed hash declaration
Definition: TypedHashDecl.h:44
 
@ QL_LGPL
code to be used under the LGPL license
Definition: common.h:87
 
deserialization context object used in builtin deserializer methods
Definition: common.h:287
 
the implementation of Qore's object data type, reference counted, dynamically-allocated only
Definition: QoreObject.h:61
 
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
 
QoreValue(* q_external_method_t)(const QoreMethod &method, const void *ptr, QoreObject *self, AbstractPrivateData *private_data, const QoreListNode *args, q_rt_flags_t flags, ExceptionSink *xsink)
the type used for builtin QoreClass method signatures
Definition: common.h:345
 
const DLLEXPORT char * type_get_name(const QoreTypeInfo *t)
returns the type name for an opaqua QoreTypeInfo ptr
 
bool(* q_delete_blocker_t)(QoreObject *self, AbstractPrivateData *private_data)
the typed used for QoreClass deleteBlocker signatures
Definition: common.h:436
 
DLLLOCAL void addModule(const char *module)
adds a module to be loaded when the data is deserialized
 
unsigned qore_classid_t
used for the unique class ID for QoreClass objects
Definition: common.h:79
 
for char less-than comparisons
Definition: common.h:230
 
functor template for deleting elements
Definition: common.h:175
 
void(* q_constructor_n_t)(QoreObject *self, const QoreListNode *args, q_rt_flags_t rtflags, ExceptionSink *xsink)
the type used for builtin QoreClass constructor method signatures
Definition: common.h:366
 
DLLLOCAL QoreValue serializeValue(const QoreValue val, ExceptionSink *xsink)
serializes the given value and returns a serialized value representing the value to be serialized,...
 
functor template for calling free() on pointers
Definition: common.h:168
 
void(* q_external_destructor_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:408
 
std::vector< const QoreTypeInfo * > type_vec_t
vector of type information for parameter lists
Definition: common.h:251
 
a method in a QoreClass
Definition: QoreClass.h:125
 
void(* q_destructor_t)(QoreObject *self, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass destructor signatures
Definition: common.h:398
 
the base class for all data to be used as private data of Qore objects
Definition: AbstractPrivateData.h:44
 
@ QL_GPL
code to be used under the GPL license
Definition: common.h:86
 
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:257
 
DLLEXPORT long long q_atoll(const char *str)
returns an integer value for a string
 
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:54
 
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode)
Definition: common.h:70
 
functor template for dereferencing elements
Definition: common.h:182
 
unsigned q_trid_t
type for thread resource IDs (unique within a single running qore library process)
Definition: common.h:463
 
void(* q_copy_t)(QoreObject *self, QoreObject *old, AbstractPrivateData *private_data, ExceptionSink *xsink)
the type used for builtin QoreClass copy signatures
Definition: common.h:417