32 #ifndef _QORE_QORELIBINTERN_H 34 #define _QORE_QORELIBINTERN_H 36 #include "qore/intern/config.h" 40 #include <sys/types.h> 42 #ifdef HAVE_SYS_STATVFS_H 43 #define Q_HAVE_STATVFS 44 #include <sys/statvfs.h> 48 #ifdef HAVE_EXECINFO_H 51 #ifdef HAVE_ARPA_INET_H 52 #include <arpa/inet.h> 54 #ifdef HAVE_SYS_SOCKET_H 55 #include <sys/socket.h> 60 #ifdef HAVE_NETINET_IN_H 61 #include <netinet/in.h> 63 #ifdef HAVE_ARPA_INET_H 64 #include <arpa/inet.h> 66 #ifdef HAVE_SYS_SOCKET_H 67 #include <sys/socket.h> 72 #ifdef HAVE_ARPA_INET_H 73 #include <arpa/inet.h> 75 #ifdef HAVE_WINSOCK2_H 78 #ifdef HAVE_WS2TCPIP_H 84 #ifdef HAVE_NETINET_TCP_H 85 #include <netinet/tcp.h> 91 #ifdef HAVE_INTTYPES_H 95 #ifndef HAVE_STRCASESTR 96 extern char* strcasestr(
const char* s1,
const char* s2);
100 #define MPFR_USE_INTMAX_T 1 106 #if TARGET_BITS == 64 121 #define NT_SOFTINT -4 122 #define NT_SOFTFLOAT -5 123 #define NT_SOFTNUMBER -6 124 #define NT_SOFTBOOLEAN -7 125 #define NT_SOFTSTRING -8 126 #define NT_SOFTDATE -9 127 #define NT_SOFTLIST -10 128 #define NT_TIMEOUT -11 129 #define NT_INTORFLOAT -12 130 #define NT_INTFLOATORNUMBER -13 131 #define NT_FLOATORNUMBER -14 133 #define NT_SOMETHING -101 // i.e. "not NOTHING" 134 #define NT_DATA -102 // either QoreStringNode or BinaryNode 136 typedef std::set<QoreObject*> obj_set_t;
139 DLLLOCAL
extern int qore_ssl_data_index;
142 enum q_setpub_t :
unsigned char {
148 DLLLOCAL
void parse_init_value(
QoreValue& val, LocalVar* oflag,
int pflag,
int& lvids,
const QoreTypeInfo*& typeInfo);
152 DLLLOCAL
bool needs_scan(
const QoreValue& v);
158 hashdecl ParseWarnOptions {
162 DLLLOCAL ParseWarnOptions() : parse_options(0), warn_mask(0) {
165 DLLLOCAL ParseWarnOptions(
int64 n_parse_options,
int n_warn_mask = 0) : parse_options(n_parse_options), warn_mask(n_warn_mask) {
168 DLLLOCAL
void operator=(
const ParseWarnOptions& pwo) {
169 parse_options = pwo.parse_options;
170 warn_mask = pwo.warn_mask;
173 DLLLOCAL
bool operator==(
const ParseWarnOptions& pwo)
const {
174 return parse_options == pwo.parse_options && warn_mask == pwo.warn_mask;
178 hashdecl QoreProgramLineLocation {
179 int16_t start_line = -1,
183 DLLLOCAL QoreProgramLineLocation(
int sline,
int eline) : start_line(sline ? sline : (eline ? 1 : 0)), end_line(eline) {
184 assert(sline <= 0xffff);
185 assert(eline <= 0xffff);
188 DLLLOCAL QoreProgramLineLocation() {
191 DLLLOCAL QoreProgramLineLocation(
const QoreProgramLineLocation& old) =
default;
193 DLLLOCAL QoreProgramLineLocation(QoreProgramLineLocation&& old) =
default;
196 hashdecl QoreProgramLocation :
public QoreProgramLineLocation {
199 DLLLOCAL QoreProgramLocation() {
202 DLLLOCAL
explicit QoreProgramLocation(
const char* f,
int sline,
int eline,
const char* source,
int offset,
203 const char* lang =
"Qore") :
204 QoreProgramLineLocation(sline, eline), file(f), source(source), lang(lang), offset(offset) {
205 assert(offset <= 0xffff);
208 DLLLOCAL
explicit QoreProgramLocation(
const char* f,
int sline = 0,
int eline = 0) :
209 QoreProgramLineLocation(sline, eline), file(f) {
213 DLLLOCAL QoreProgramLocation(
int sline,
int eline);
215 DLLLOCAL QoreProgramLocation(
const QoreProgramLocation& old) =
default;
217 DLLLOCAL QoreProgramLocation(QoreProgramLocation&& old) =
default;
219 DLLLOCAL
void clear() {
220 start_line = end_line = -1;
226 DLLLOCAL
void toString(
QoreString& str)
const;
228 DLLLOCAL
const char* getFile()
const {
232 DLLLOCAL
const char* getFileValue()
const {
233 return file ? file :
"";
236 DLLLOCAL
const char* getSource()
const {
240 DLLLOCAL
const char* getSourceValue()
const {
241 return source ? source :
"";
244 DLLLOCAL
const char* getLanguage()
const {
248 DLLLOCAL
const char* getLanguageValue()
const {
249 return lang ? lang :
"";
252 DLLLOCAL
void setFile(
const char* f) {
256 DLLLOCAL
void setSource(
const char* s) {
260 DLLLOCAL
void setLanguage(
const char* l) {
264 DLLLOCAL
bool operator<(
const QoreProgramLocation& loc)
const {
265 return start_line < loc.start_line
266 || end_line < loc.end_line
268 || source < loc.source
269 || offset < loc.offset
273 DLLLOCAL
bool operator==(
const QoreProgramLocation& loc)
const {
274 return start_line == loc.start_line
275 && end_line == loc.end_line
277 && source == loc.source
278 && offset == loc.offset
282 DLLLOCAL
bool operator!=(
const QoreProgramLocation& loc)
const {
283 return !(*
this == loc);
287 const char* file =
nullptr;
288 const char* source =
nullptr;
289 const char* lang =
"Qore";
295 DLLLOCAL
extern const QoreProgramLocation loc_builtin;
297 hashdecl QoreCommandLineLocation :
public QoreProgramLocation {
298 DLLLOCAL QoreCommandLineLocation() : QoreProgramLocation(
"<command-line>", 1, 1) {
303 DLLLOCAL
extern QoreCommandLineLocation qoreCommandLineLocation;
306 DLLLOCAL
void parse_error(
const QoreProgramLocation& loc,
const char* fmt, ...);
307 DLLLOCAL
void parseException(
const QoreProgramLocation& loc,
const char* err,
const char* fmt, ...);
308 DLLLOCAL
void parseException(
const QoreProgramLocation& loc,
const char* err,
QoreStringNode* desc);
310 DLLLOCAL
QoreString* findFileInPath(
const char* file,
const char* path);
311 DLLLOCAL
QoreString* findFileInEnvPath(
const char* file,
const char* varname);
312 DLLLOCAL
int qore_find_file_in_path(
QoreString& str,
const char* file,
const char* path);
314 DLLLOCAL
const QoreTypeInfo* getBuiltinUserTypeInfo(
const char* str);
315 DLLLOCAL
const QoreTypeInfo* getBuiltinUserOrNothingTypeInfo(
const char* str);
317 DLLLOCAL
const char* getBuiltinTypeName(
qore_type_t type);
328 #ifdef HAVE_STRTOIMAX 329 static inline long long atoll(
const char* str) {
330 return strtoimax(str, 0, 10);
333 static inline long long atoll(
const char* str) {
335 sscanf(str,
"%lld", &i);
341 #if !defined(HAVE_STRTOLL) && defined(HAVE_STRTOIMAX) 343 #define strtoll strtoimax 351 #ifdef HAVE_OPENSSL_CONST 352 #define OPENSSL_CONST const 354 #define OPENSSL_CONST 357 #ifdef HAVE_X509_GET0_SIGNATURE_CONST 358 #define OPENSSL_X509_GET0_SIGNATURE_CONST const 360 #define OPENSSL_X509_GET0_SIGNATURE_CONST 363 typedef std::set<const AbstractQoreNode*> const_node_set_t;
364 typedef std::set<LocalVar*> lvar_set_t;
366 class LVarSet :
public lvar_set_t {
373 DLLLOCAL LVarSet() : needs_scan(false) {
377 DLLLOCAL
void add(LocalVar* var);
380 DLLLOCAL
bool needsScan()
const {
385 enum obe_type_e { OBE_Unconditional, OBE_Success, OBE_Error };
387 class StatementBlock;
388 typedef std::pair<enum obe_type_e, StatementBlock*> qore_conditional_block_exit_statement_t;
390 typedef std::list<qore_conditional_block_exit_statement_t> block_list_t;
393 typedef std::map<QoreCondition*, int> cond_map_t;
395 #if defined(HAVE_CHECK_STACK_POS) 396 #define QORE_MANAGE_STACK 400 #define DAH_NOCHANGE 0 // acquire lock temporarily 401 #define DAH_ACQUIRE 1 // acquire lock and hold 402 #define DAH_RELEASE 2 // release lock at end of action 403 #define DAH_NOCONN 3 // acquire lock temporarily and do not make a connection 405 #define DAH_TEXT(d) (d == DAH_RELEASE ? "RELEASE" : (d == DAH_ACQUIRE ? "ACQUIRE" : "NOCHANGE")) 407 DLLLOCAL
int check_lvalue(
QoreValue n,
bool assign =
true);
409 DLLLOCAL
int check_lvalue_int(
const QoreProgramLocation* loc,
const QoreTypeInfo*& typeInfo,
const char* name);
410 DLLLOCAL
int check_lvalue_float(
const QoreProgramLocation* loc,
const QoreTypeInfo*& typeInfo,
const char* name);
411 DLLLOCAL
int check_lvalue_int_float_number(
const QoreProgramLocation* loc,
const QoreTypeInfo*& typeInfo,
const char* name);
412 DLLLOCAL
int check_lvalue_number(
const QoreProgramLocation* loc,
const QoreTypeInfo*& typeInfo,
const char* name);
414 DLLLOCAL
extern QoreClass* QC_PSEUDOVALUE;
415 DLLLOCAL
extern QoreClass* QC_PSEUDONOTHING;
424 #define Q_SVF_BSIZE 4096 425 #define Q_HAVE_STATVFS 427 unsigned long f_bsize;
428 unsigned long f_frsize;
429 unsigned int f_blocks;
430 unsigned int f_bfree;
431 unsigned int f_bavail;
432 unsigned int f_files;
433 unsigned int f_ffree;
434 unsigned int f_favail;
435 unsigned long f_fsid;
436 unsigned long f_flag;
437 unsigned long f_namemax;
440 f_frsize = f_bsize = Q_SVF_BSIZE;
441 f_blocks = total / Q_SVF_BSIZE;
442 f_bfree = free / Q_SVF_BSIZE;
443 f_bavail = avail / Q_SVF_BSIZE;
445 f_files = f_blocks / 8;
446 f_ffree = f_bfree / 8;
447 f_favail = f_bavail / 8;
453 DLLLOCAL
int statvfs(
const char* path,
struct statvfs* buf);
454 DLLLOCAL
int q_fstatvfs(
const char* filepath,
struct statvfs* buf);
457 class QoreParseListNode;
459 #include "qore/intern/NamedScope.h" 460 #include "qore/intern/QoreTypeInfo.h" 461 #include "qore/intern/ParseNode.h" 462 #include "qore/intern/QoreThreadList.h" 463 #include "qore/intern/lvalue_ref.h" 464 #include "qore/intern/qore_thread_intern.h" 465 #include "qore/intern/Function.h" 466 #include "qore/intern/CallReferenceCallNode.h" 467 #include "qore/intern/CallReferenceNode.h" 468 #include "qore/intern/BuiltinFunction.h" 469 #include "qore/intern/AbstractStatement.h" 470 #include "qore/intern/Variable.h" 471 #include "qore/intern/LocalVar.h" 472 #include "qore/intern/ScopedObjectCallNode.h" 473 #include "qore/intern/NewComplexTypeNode.h" 474 #include "qore/intern/ScopedRefNode.h" 475 #include "qore/intern/ClassRefNode.h" 476 #include "qore/intern/Context.h" 477 #include "qore/intern/BarewordNode.h" 478 #include "qore/intern/SelfVarrefNode.h" 479 #include "qore/intern/StaticClassVarRefNode.h" 480 #include "qore/intern/BackquoteNode.h" 481 #include "qore/intern/ContextrefNode.h" 482 #include "qore/intern/ContextRowNode.h" 483 #include "qore/intern/ComplexContextrefNode.h" 484 #include "qore/intern/FindNode.h" 485 #include "qore/intern/VRMutex.h" 486 #include "qore/intern/VLock.h" 487 #include "qore/intern/QoreException.h" 488 #include "qore/intern/StatementBlock.h" 489 #include "qore/intern/VarRefNode.h" 490 #include "qore/intern/QoreRegexSubst.h" 491 #include "qore/intern/QoreRegex.h" 492 #include "qore/intern/QoreTransliteration.h" 493 #include "qore/intern/ObjectMethodReferenceNode.h" 494 #include "qore/intern/QoreClosureParseNode.h" 495 #include "qore/intern/QoreClosureNode.h" 496 #include "qore/intern/QoreImplicitArgumentNode.h" 497 #include "qore/intern/QoreImplicitElementNode.h" 498 #include "qore/intern/QoreOperatorNode.h" 499 #include "qore/intern/QoreTimeZoneManager.h" 500 #include "qore/intern/ContextStatement.h" 501 #include "qore/intern/SwitchStatement.h" 502 #include "qore/intern/QorePseudoMethods.h" 503 #include "qore/intern/ParseReferenceNode.h" 504 #include "qore/intern/WeakReferenceNode.h" 506 DLLLOCAL
extern std::atomic<bool> qore_shutdown;
508 DLLLOCAL
extern int qore_library_options;
510 #ifndef HAVE_GETHOSTBYADDR_R 517 #define NET_BUFSIZE 1024 520 #ifndef HOSTNAMEBUFSIZE 521 #define HOSTNAMEBUFSIZE 512 524 #ifndef HAVE_LOCALTIME_R 528 #ifndef HAVE_GMTIME_R 532 DLLLOCAL
extern char table64[64];
535 DLLLOCAL
BinaryNode*
parseHex(
const QoreProgramLocation* loc,
const char* buf,
int len);
536 DLLLOCAL
void print_node(FILE* fp,
const QoreValue qv);
537 DLLLOCAL
void delete_global_variables();
538 DLLLOCAL
void init_lib_intern(
char* env[]);
539 DLLLOCAL QoreParseListNode* make_args(
const QoreProgramLocation* loc,
QoreValue arg);
543 DLLLOCAL
void init_qore_types();
544 DLLLOCAL
void delete_qore_types();
546 DLLLOCAL
QoreListNode* stat_to_list(
const struct stat& sbuf);
548 DLLLOCAL
QoreHashNode* statvfs_to_hash(
const struct statvfs& statvfs);
558 DLLLOCAL StaticSystemNamespace();
560 DLLLOCAL ~StaticSystemNamespace();
564 DLLLOCAL
extern StaticSystemNamespace* staticSystemNamespace;
566 class QoreParseListNodeParseInitHelper {
568 QoreParseListNode* l;
575 DLLLOCAL QoreParseListNodeParseInitHelper(QoreParseListNode* n_l, LocalVar* n_oflag,
int n_pflag,
int& n_lvids) :
576 l(n_l), oflag(n_oflag), pflag(n_pflag), lvids(n_lvids) {
579 DLLLOCAL
QoreValue parseInit(
const QoreTypeInfo*& typeInfo) {
584 parse_init_value(n, oflag, pflag, lvids, typeInfo);
588 DLLLOCAL
bool next() {
590 if (pos == (
int)l->size()) {
597 DLLLOCAL
int index() {
602 class QorePossibleListNodeParseInitHelper {
610 const QoreTypeInfo* singleTypeInfo =
nullptr;
613 DLLLOCAL QorePossibleListNodeParseInitHelper(
QoreValue& n, LocalVar* n_oflag,
int n_pflag,
int& n_lvids) :
622 parse_init_value(n, oflag, pflag, lvids, singleTypeInfo);
626 if (QoreTypeInfo::parseAccepts(listTypeInfo, singleTypeInfo))
631 DLLLOCAL
bool noArgument()
const {
635 DLLLOCAL
bool next() {
641 if (pos == l->
size()) {
648 DLLLOCAL
void parseInit(
const QoreTypeInfo*& typeInfo);
651 DLLLOCAL
void raise_nonexistent_method_call_warning(
const QoreProgramLocation* loc,
const QoreClass* qc,
const char* method);
661 class qore_hash_private;
662 class qore_object_private;
665 class hash_assignment_priv {
667 qore_hash_private& h;
669 qore_object_private* o =
nullptr;
671 DLLLOCAL hash_assignment_priv(qore_hash_private& n_h, HashMember* n_om) : h(n_h), om(n_om) {
674 DLLLOCAL hash_assignment_priv(qore_hash_private& n_h,
const char* key,
bool must_already_exist =
false, qore_object_private* obj =
nullptr);
676 DLLLOCAL hash_assignment_priv(
QoreHashNode& n_h,
const char* key,
bool must_already_exist =
false);
678 DLLLOCAL hash_assignment_priv(
QoreHashNode& n_h,
const std::string &key,
bool must_already_exist =
false);
684 DLLLOCAL
void reassign(
const char* key,
bool must_already_exist =
false);
705 DLLLOCAL
void qore_machine_backtrace();
707 #ifndef QORE_THREAD_STACK_BLOCK 708 #define QORE_THREAD_STACK_BLOCK 64 711 template <
typename T,
int S1 = QORE_THREAD_STACK_BLOCK>
714 DLLLOCAL ThreadBlock(
const ThreadBlock&);
719 ThreadBlock<T, S1>* prev, * next;
721 DLLLOCAL ThreadBlock(ThreadBlock* n_prev = 0) : pos(0), prev(n_prev), next(0) { }
722 DLLLOCAL ~ThreadBlock() { }
723 DLLLOCAL T&
get(
int p) {
727 DLLLOCAL
bool frameBoundary(
int p);
730 template <
typename T,
int S1 = QORE_THREAD_STACK_BLOCK>
731 class ThreadLocalDataIterator {
732 typedef ThreadLocalDataIterator<T, S1> self_t;
735 typedef ThreadBlock<T, S1> Block;
738 Block* orig =
nullptr, * curr =
nullptr;
742 DLLLOCAL ThreadLocalDataIterator(Block* n_orig) : orig(n_orig && n_orig->pos ? n_orig : nullptr) {
745 DLLLOCAL ThreadLocalDataIterator() {
748 DLLLOCAL
bool next() {
769 }
while (curr->frameBoundary(pos));
776 return curr->get(pos);
780 template <
typename T,
int S1 = QORE_THREAD_STACK_BLOCK>
781 class ThreadLocalData {
783 typedef ThreadBlock<T, S1> Block;
784 typedef ThreadLocalDataIterator<T, S1> iterator;
788 DLLLOCAL ThreadLocalData() {
793 DLLLOCAL ~ThreadLocalData() {
805 DLLLOCAL
bool empty()
const {
806 return (!curr->pos && !curr->prev);
810 DLLLOCAL
int getFrameCount()
const {
815 int frame_count = -1;
818 DLLLOCAL ThreadLocalData(
const ThreadLocalData&);
822 DLLLOCAL
int q_get_af(
int type);
824 DLLLOCAL
int q_get_raf(
int type);
826 DLLLOCAL
int q_get_sock_type(
int t);
828 class OptHashRefHelper {
838 DLLLOCAL ~OptHashRefHelper() {
859 class VariableBlockHelper {
861 DLLLOCAL VariableBlockHelper();
862 DLLLOCAL ~VariableBlockHelper();
865 class ParseOptionMaps {
867 DLLLOCAL
void doMap(
int64 code,
const char* desc,
const char* dom =
nullptr);
870 typedef std::map<int64, const char*> pomap_t;
871 typedef std::map<const char*, int64, ltstr> pormap_t;
873 pomap_t pomap, dommap;
874 pormap_t pormap, domrmap;
876 DLLLOCAL ParseOptionMaps();
885 DLLLOCAL
extern ParseOptionMaps pomaps;
889 DLLLOCAL
extern bool q_disable_gc;
891 DLLLOCAL
QoreValue qore_parse_get_define_value(
const QoreProgramLocation* loc,
const char* str,
QoreString& arg,
bool& ok);
893 #ifndef HAVE_INET_NTOP 894 DLLLOCAL
const char* inet_ntop(
int af,
const void* src,
char* dst,
size_t size);
896 #ifndef HAVE_INET_PTON 897 DLLLOCAL
int inet_pton(
int af,
const char* src,
void* dst);
905 DLLLOCAL
void check_self_assignment(
const QoreProgramLocation* loc,
QoreValue n, LocalVar* selfid);
907 DLLLOCAL
void ignore_return_value(QoreSimpleValue& n);
909 DLLLOCAL
void qore_string_init();
919 DLLLOCAL
void init_charmaps();
925 DLLLOCAL
int64 q_clock_getmillis();
926 DLLLOCAL
int64 q_clock_getmicros();
927 DLLLOCAL
int64 q_clock_getnanos();
929 DLLLOCAL
void qore_init_random_salt();
930 DLLLOCAL
int qore_get_ptr_hash(
QoreString& str,
const void* ptr);
933 DLLLOCAL
const char* q_find_first_path_sep(
const char* path);
935 DLLLOCAL
const char* q_find_last_path_sep(
const char* path);
938 DLLLOCAL
int q_get_mode(
const QoreString& path);
956 DLLLOCAL
void* qore_get_in_addr(
struct sockaddr *sa);
958 DLLLOCAL
size_t qore_get_in_len(
struct sockaddr *sa);
960 #ifdef QORE_MANAGE_STACK 961 DLLLOCAL
size_t q_thread_get_stack_size();
962 DLLLOCAL
size_t q_thread_set_stack_size(
size_t size,
ExceptionSink* xsink);
965 DLLLOCAL
QoreHashNode* get_source_location(
const QoreProgramLocation* loc);
967 DLLLOCAL
void qore_delete_module_options();
969 DLLLOCAL
const QoreTypeInfo* qore_get_type_from_string_intern(
const char* str);
defines string encoding functions in Qore
Definition: QoreEncoding.h:83
This is the hash or associative list container type in Qore, dynamically allocated only...
Definition: QoreHashNode.h:50
use this class to make assignments to hash keys from a pointer to the key value
Definition: QoreHashNode.h:671
const qore_type_t NT_LIST
type value for QoreListNode
Definition: node_types.h:50
Holds absolute and relative date/time values in Qore with precision to the microsecond.
Definition: DateTime.h:93
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:54
size_t qore_size_t
used for sizes (same range as a pointer)
Definition: common.h:73
static const ReferenceNode * test_reference_param(const QoreListNode *n, qore_size_t i)
returns a ReferenceNode pointer for the argument position given or 0 if there is no argument there or...
Definition: params.h:65
DLLLOCAL T * release()
releases the pointer to the caller
Definition: ReferenceHolder.h:91
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:81
Qore's string value type, reference counted, dynamically-allocated only.
Definition: QoreStringNode.h:50
the root namespace of a QoreProgram object
Definition: QoreNamespace.h:286
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:52
Qore's parse tree/value type for date-time values, reference-counted, dynamically-allocated only...
Definition: DateTimeNode.h:45
DLLEXPORT size_t size() const
returns the number of elements in the list
defines a Qore-language class
Definition: QoreClass.h:239
parse type: reference to a lvalue expression
Definition: ReferenceNode.h:45
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:262
qore_license_t
qore library and module license type identifiers
Definition: common.h:85
the implementation of Qore's object data type, reference counted, dynamically-allocated only ...
Definition: QoreObject.h:61
static unsigned num_params(const QoreListNode *n)
returns the number of arguments passed to the function
Definition: params.h:54
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:46
std::vector< std::string > name_vec_t
vector of parameter names for parameter lists
Definition: common.h:257
helper class to manage variable references passed to functions and class methods, stack only...
Definition: QoreTypeSafeReferenceHelper.h:57
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
intptr_t qore_offset_t
used for offsets that could be negative
Definition: common.h:76
typed hash declaration
Definition: TypedHashDecl.h:44
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode) ...
Definition: common.h:70
provides a mutually-exclusive thread lock
Definition: QoreThreadLock.h:47
std::vector< const QoreTypeInfo * > type_vec_t
vector of type information for parameter lists
Definition: common.h:251
DLLEXPORT BinaryNode * parseHex(const char *buf, int len, ExceptionSink *xsink)
parses a string of hex characters and returns a BinaryNode
DLLEXPORT void assimilate(ExceptionSink *xs)
assimilates all entries of the "xs" argument by appending them to the internal list and deletes the "...
holds arbitrary binary data
Definition: BinaryNode.h:41