Qore Programming Language  0.9.3
QoreLib.h File Reference
#include <qore/common.h>
#include <qore/QoreThreadLock.h>
#include <qore/qore_bitopts.h>
#include <qore/safe_dslist>
#include <cctype>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <ctime>
#include <strings.h>
#include <sys/types.h>
#include <vector>
Include dependency graph for QoreLib.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FeatureList
 STL-like list containing all presently-loaded Qore features. More...
 
hashdecl  qore_option_s
 definition of the elements in the qore_option_list More...
 

Macros

#define _QORE_HAS_DATASOURCE_ACTIVETRANSACTION   1
 defined because this version of Qore has the Datasource::activeTransaction() function
 
#define _QORE_HAS_DATETIME_ADD_SECONDS_TO   1
 defined because this version of Qore has the DateTime::addSecondsTo() API
 
#define _QORE_HAS_DBI_DESCRIBE   1
 defined because this version of Qore supports the DBI describe API
 
#define _QORE_HAS_DBI_EVENTS   1
 defined because this version of Qore supports the DBI event API
 
#define _QORE_HAS_DBI_EXECRAW   1
 defined because this version of Qore supports the execRaw() DBI function
 
#define _QORE_HAS_DBI_OPTIONS   1
 defined because this version of Qore supports the DBI option APIs
 
#define _QORE_HAS_DBI_SELECT_ROW   1
 defined because this version of Qore supports the DBI selectRow() function
 
#define _QORE_HAS_FILE_OBJECT_HELPER   1
 defined because this version of Qore has the QoreFileOjectHelper class
 
#define _QORE_HAS_FIND_CREATE_TIMEZONE   1
 defined because this version of Qore has the find_create_timezone() function
 
#define _QORE_HAS_HARD_TYPING   1
 not defined because this version of Qore has moved all XML functionality to the "xml" module More...
 
#define _QORE_HAS_NUMBER_CONS_WITH_PREC   1
 defined because this version of Qore has a QoreNumberNode constructor with a precision specifier
 
#define _QORE_HAS_NUMBER_TYPE   1
 defined because this version of Qore supports the number type (QoreNumberNode)
 
#define _QORE_HAS_PATH_IS_READABLE   1
 defined because this version of Qore has the q_path_is_readable() function
 
#define _QORE_HAS_PREPARED_STATMENT_API   1
 defined because this version of Qore has the prepared statement API
 
#define _QORE_HAS_QL_MIT   1
 defined because this version of Qore has the QL_MIT license enum value
 
#define _QORE_HAS_QOREHTTPCLIENTOBJECT   1
 defined becaus this version of Qore has the QoreHttpClientObject class
 
#define _QORE_HAS_QUEUE_OBJECT   1
 defined because this version of Qore has a Queue class definition in public headers
 
#define _QORE_HAS_QUEUE_OBJECT_HELPER   1
 defined because this version of Qore has the QoreQueueOjectHelper class
 
#define _QORE_HAS_SOCKET_PERF_API   1
 defined because this version of Qore has a public Socket performance API
 
#define _QORE_HAS_THREAD_RESOURCE_IDS   1
 defined because this version of Qore has thread resource IDs
 
#define _QORE_HAS_TIME_ZONES   1
 defined because this version of Qore has time zone support
 
#define QO_OPTION   0
 option type feature
 
#define QORE_MAX(a, b)   ((a) > (b) ? (a) : (b))
 macro to return the maximum of 2 numbers
 
#define QORE_MIN(a, b)   ((a) < (b) ? (a) : (b))
 macro to return the minimum of 2 numbers
 
#define QORE_OPT_ATOMIC_OPERATIONS   "atomic operations"
 option: atomic operations
 
#define QORE_OPT_DETERMINISTIC_GC   "deterministic GC"
 options: deterministic garbage collection
 
#define QORE_OPT_DSS   "openssl dss"
 option: dss & dss1 algorithms supported (depends on openssl used to compile qore)
 
#define QORE_OPT_FILE_LOCKING   "file locking"
 option: file locking
 
#define QORE_OPT_FUNC_CLOSE_ALL_FD   "close_all_fd()"
 option: close_all_fd() function available
 
#define QORE_OPT_FUNC_FORK   "fork()"
 option: fork() function available
 
#define QORE_OPT_FUNC_GET_NETIF_LIST   "get_netif_list()"
 option: get_netif_list() function available
 
#define QORE_OPT_FUNC_GETPPID   "getppid()"
 option: getppid() function available
 
#define QORE_OPT_FUNC_IS_EXECUTABLE   "is_executable()"
 option: is_executable() function available
 
#define QORE_OPT_FUNC_KILL   "kill()"
 option: kill() function available
 
#define QORE_OPT_FUNC_ROUND   "round()"
 option: round() function available
 
#define QORE_OPT_FUNC_SETEGID   "setegid()"
 option: setegid() function available
 
#define QORE_OPT_FUNC_SETEUID   "seteuid()"
 option: seteuid() function available
 
#define QORE_OPT_FUNC_SETSID   "setsid()"
 option: setsid() function available
 
#define QORE_OPT_FUNC_STATVFS   "statvfs()"
 option: statvfs() function available
 
#define QORE_OPT_FUNC_SYSTEM   "system()"
 option: system() function available
 
#define QORE_OPT_FUNC_TIMEGM   "timegm()"
 option: timegm() function available
 
#define QORE_OPT_LIBRARY_DEBUGGING   "library debugging"
 option: library debugging
 
#define QORE_OPT_MD2   "openssl md2"
 option: md2 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_MDC2   "openssl mdc2"
 option: mdc2 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_RC5   "openssl rc5"
 option: rc5 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_RUNTIME_STACK_TRACE   "runtime stack tracing"
 option: runtime stack tracing
 
#define QORE_OPT_SHA   "openssl sha"
 option: ssh0 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_SHA224   "openssl sha224"
 option: ssh224 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_SHA256   "openssl sha256"
 option: ssh256 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_SHA384   "openssl sha384"
 option: ssh384 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_SHA512   "openssl sha512"
 option: ssh512 algorithm supported (depends on openssl used to compile qore)
 
#define QORE_OPT_SIGNAL_HANDLING   "signal handling"
 option: signal handling
 
#define QORE_OPT_STACK_GUARD   "stack guard"
 option: stack guard
 
#define QORE_OPT_TERMIOS   "termios"
 option: TermIOS class available
 
#define QORE_OPT_UNIX_FILEMGT   "unix file management"
 option: unix file management functions available
 
#define QORE_OPT_UNIX_USERMGT   "unix user management"
 option: unix user/group management functions available
 
#define QORE_PARAM_NO_ARG   QoreSimpleValue().assign(nullptr)
 macro for no argument
 

Typedefs

typedef std::vector< int > sig_vec_t
 signal vector
 

Functions

static void discard (AbstractQoreNode *n, ExceptionSink *xsink)
 to deref an AbstractQoreNode (when the pointer may be 0)
 
DLLEXPORT QoreListNodedomain_bitfield_to_string_list (int64 i, ExceptionSink *xsink)
 returns a list<string> of domain strings for the given bitfield; a Qore-language exception is raised for invalid values More...
 
DLLEXPORT const AbstractQoreZoneInfo * find_create_timezone (const char *name, ExceptionSink *xsink)
 returns a time zone for the given region name or UTC offset given as a string ("+01:00") More...
 
DLLEXPORT const AbstractQoreZoneInfo * findCreateOffsetZone (int seconds_east)
 returns a time zone for the given time zone UTC offset
 
DLLEXPORT const char * get_full_type_name (const AbstractQoreNode *n)
 returns a string type description of the full type of the value contained (ex: "nothing" for a null AbstractQoreNode pointer); differs from the return value of get_type_name() for complex types (ex: "hash<string, int>") More...
 
DLLEXPORT const QoreTypeInfo * get_or_nothing_type_check (const QoreTypeInfo *typeInfo)
 returns the "or nothing" type for the given type More...
 
DLLEXPORT int getMicroSecZeroInt (QoreValue a)
 for getting an integer number of microseconds, with 0 as the default, from either a relative time value or an integer value
 
DLLEXPORT int64 getMicroSecZeroInt64 (QoreValue a)
 for getting an integer number of microseconds, with 0 as the default, from either a relative time value or an integer value
 
DLLEXPORT int64 getMsMinusOneBigInt (QoreValue a)
 for getting an integer number of milliseconds, with -1 as the default, from either a relative time value or an integer value
 
DLLEXPORT int getMsMinusOneInt (QoreValue a)
 for getting an integer number of milliseconds, with -1 as the default, from either a relative time value or an integer value
 
DLLEXPORT int64 getMsZeroBigInt (QoreValue a)
 for getting an integer number of milliseconds, with 0 as the default, from either a relative time value or an integer value
 
DLLEXPORT int getMsZeroInt (QoreValue a)
 for getting an integer number of milliseconds, with 0 as the default, from either a relative time value or an integer value
 
DLLEXPORT int64 getSecMinusOneBigInt (QoreValue a)
 for getting an integer number of seconds, with -1 as the default, from either a relative time value or an integer value
 
DLLEXPORT int getSecMinusOneInt (QoreValue a)
 for getting an integer number of seconds, with -1 as the default, from either a relative time value or an integer value
 
DLLEXPORT int64 getSecZeroBigInt (QoreValue a)
 for getting an integer number of seconds, with 0 as the default, from either a relative time value or an integer value
 
DLLEXPORT int getSecZeroInt (QoreValue a)
 for getting an integer number of seconds, with 0 as the default, from either a relative time value or an integer value
 
static bool is_nothing (const AbstractQoreNode *n)
 to check if an AbstractQoreNode object is NOTHING
 
DLLEXPORT char * make_class_name (const char *fn)
 function to try and make a class name out of a file path, returns a new string that must be free()ed
 
DLLEXPORT QoreListNodeparse_option_bitfield_to_string_list (int64 i, ExceptionSink *xsink)
 returns a list<string> of parse option strings for the given bitfield; a Qore-language exception is raised for invalid values More...
 
DLLEXPORT void parse_set_time_zone (const char *zone)
 to set the time zone from the command line More...
 
DLLEXPORT BinaryNodeparseBase64 (const char *buf, int len, ExceptionSink *xsink)
 parses a string of base64-encoded data and returns a BinaryNode
 
DLLEXPORT BinaryNodeparseHex (const char *buf, int len, ExceptionSink *xsink)
 parses a string of hex characters and returns a BinaryNode
 
DLLEXPORT bool q_absolute_path (const char *path)
 returns true if the given string is an absolute path on the current platform
 
DLLEXPORT bool q_absolute_path_unix (const char *path)
 returns true if the given string is an absolute path on UNIX systems
 
DLLEXPORT bool q_absolute_path_windows (const char *path)
 returns true if the given string is an absolute path on Windows systems
 
DLLEXPORT char * q_basename (const char *path)
 thread-safe basename function (resulting pointer must be free()ed)
 
DLLEXPORT char * q_basenameptr (const char *path)
 returns a pointer within the same string
 
DLLEXPORT char * q_dirname (const char *path)
 thread-safe dirname function (resulting pointer must be free()ed)
 
DLLEXPORT int q_env_subst (QoreString &str)
 performs environment variable substitution on the string argument More...
 
DLLEXPORT int64 q_epoch ()
 returns the seconds from the epoch
 
DLLEXPORT int64 q_epoch_ns (int &us)
 returns the seconds and nanoseconds from the epoch
 
DLLEXPORT int64 q_epoch_us (int &us)
 returns the seconds and microseconds from the epoch
 
DLLEXPORT int q_get_data (const QoreValue &data, const char *&ptr, size_t &len)
 returns the pointer and size for string or binary data (return 0); no change for other data (return -1)
 
DLLEXPORT bool q_get_option_constant_value (const char *opt)
 returns the boolean value of qore library the given name of the constant for the option; false if the option constant name is unknown
 
DLLEXPORT bool q_get_option_value (const char *opt)
 returns the boolean value of qore library the given option name; false if the option is unknown
 
DLLEXPORT QoreHashNodeq_get_thread_local_vars (int frame, ExceptionSink *xsink)
 retrieves a hash of all thread local variables and their values for the given stack frame in the current thread's QoreProgram object More...
 
int q_getcwd (QoreString &cwd)
 returns the current working directory in the given string; -1 is returned if an error occurred, 0 = OK
 
DLLEXPORT QoreHashNodeq_getgrgid (uid_t uid)
 thread-safe version of getgrgid(): returns a Qore hash of the group information from the gid if possible, otherwise 0
 
DLLEXPORT QoreHashNodeq_getgrnam (const char *name)
 thread-safe version of getgrnam(): returns a Qore hash of the group information from the group name if possible, otherwise 0
 
DLLEXPORT QoreHashNodeq_getpwnam (const char *name)
 thread-safe version of getpwnam(): returns a Qore hash of the passwd information from the username if possible, otherwise 0
 
DLLEXPORT QoreHashNodeq_getpwuid (uid_t uid)
 thread-safe version of getpwuid(): returns a Qore hash of the passwd information from the uid if possible, otherwise 0
 
DLLEXPORT hashdecl tm * q_gmtime (const time_t *clock, hashdecl tm *tms)
 thread-safe version of "gmtime()"
 
int q_gname2gid (const char *name, gid_t &gid)
 thread-safe way to lookup a gid from a group name More...
 
DLLEXPORT bool q_libqore_shutdown ()
 returns true if the Qore library has been shut down More...
 
DLLEXPORT hashdecl tm * q_localtime (const time_t *clock, hashdecl tm *tms)
 thread-safe version of "localtime()"
 
DLLEXPORT void * q_memmem (const void *big, size_t big_len, const void *little, size_t little_len)
 finds a memory sequence in a larger memory sequence
 
DLLEXPORT void * q_memrmem (const void *big, size_t big_len, const void *little, size_t little_len)
 finds a memory sequence in a larger memory sequence searching from the end of the sequence More...
 
DLLEXPORT const char * q_mode_to_perm (mode_t mode, QoreString &perm)
 concatenates UNIX-style permissions to perm and from mode and returns a string giving the file type
 
DLLEXPORT void q_normalize_path (QoreString &path, const char *cwd=0)
 normalizes the given path for the current platform in place (makes absolute, removes "." and "..")
 
DLLEXPORT bool q_parse_bool (QoreValue n)
 tries to parse a boolean value - standard conversion or uses q_parse_bool(const char*) if it's a string
 
DLLEXPORT bool q_parse_bool (const char *str)
 parses a string and returns a boolean (ie case-insensitive "on","true","enable*","yes" are True, the rest is interpreted as a number where 0=false, everything else=true)
 
DLLEXPORT bool q_path_is_readable (const char *path)
 platform-independent API that tells if the given path is readable by the current user
 
DLLEXPORT void * q_realloc (void *ptr, size_t size)
 frees memory if there is an allocation error
 
DLLEXPORT int q_realpath (const QoreString &path, QoreString &rv, ExceptionSink *xsink=0)
 normalizes the given path and resolves any symlinks
 
DLLEXPORT int q_set_thread_var_value (int frame, const char *name, const QoreValue &val, ExceptionSink *xsink)
 sets the value of the given thread-local variable (which may be a closure-bound variable as well) in the current stack frame for the current thread's QoreProgram object More...
 
DLLEXPORT QoreStringNodeq_sprintf (const QoreListNode *params, int field, int offset, ExceptionSink *xsink)
 a string formatting function that works with Qore data structures
 
DLLEXPORT QoreStringNodeq_strerror (int errnum)
 returns the error string as a QoreStringNode
 
DLLEXPORT void q_strerror (QoreString &str, int errnum)
 concatenates the error string to the given string
 
DLLEXPORT double q_strtod (const char *str)
 converts a string to a double in a locale-independent way More...
 
int q_uname2uid (const char *name, uid_t &uid)
 thread-safe way to lookup a uid from a username More...
 
DLLEXPORT QoreStringNodeq_vsprintf (const QoreListNode *params, int field, int offset, ExceptionSink *xsink)
 a string formatting function that works with Qore data structures
 
DLLEXPORT BinaryNodeqore_bunzip2_to_binary (const BinaryNode *bin, ExceptionSink *xsink)
 decompresses bzip2 data to a binary
 
DLLEXPORT QoreStringNodeqore_bunzip2_to_string (const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink)
 decompresses bzip2 data to a string
 
DLLEXPORT BinaryNodeqore_bzip2 (void *ptr, unsigned long len, int level, ExceptionSink *xsink)
 compresses data with bzip2
 
DLLEXPORT BinaryNodeqore_deflate (void *ptr, unsigned long len, int level, ExceptionSink *xsink)
 compresses data with the DEFLATE algorithm
 
DLLEXPORT void qore_disable_gc ()
 this function will cause garbage collection to be disabled
 
DLLEXPORT void qore_exit_process (int rc)
 instead of calling "exit()", call qore_exit_process() to exit without risking a crash if other threads are running
 
DLLEXPORT QoreProgramqore_get_call_program_context ()
 returns the caller's Program context, if any More...
 
DLLEXPORT qore_license_t qore_get_license ()
 returns the license type that the library has been initialized under
 
DLLEXPORT QoreValue qore_get_module_option (std::string mod, std::string opt)
 get module option for the given module More...
 
DLLEXPORT BinaryNodeqore_gunzip_to_binary (const BinaryNode *bin, ExceptionSink *xsink)
 gunzips compressed data to a binary
 
DLLEXPORT QoreStringNodeqore_gunzip_to_string (const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink)
 gunzips compressed data to a string
 
DLLEXPORT BinaryNodeqore_gzip (void *ptr, unsigned long len, int level, ExceptionSink *xsink)
 gzips data
 
DLLEXPORT BinaryNodeqore_inflate_to_binary (const BinaryNode *b, ExceptionSink *xsink)
 decompresses data compressed with the DEFLATE algorithm to a binary
 
DLLEXPORT QoreStringNodeqore_inflate_to_string (const BinaryNode *b, const QoreEncoding *enc, ExceptionSink *xsink)
 decompresses data compressed with the DEFLATE algorithm to a string
 
DLLEXPORT bool qore_is_gc_enabled ()
 returns true if garbage collection is enabled, false if not
 
DLLEXPORT const QoreClassqore_pseudo_get_class (qore_type_t t)
 returns the pseudo-class for the given type More...
 
DLLEXPORT const QoreClassqore_pseudo_get_class (const QoreTypeInfo *t)
 returns the pseudo-class for the given type More...
 
DLLEXPORT QoreStringNodeqore_reassign_signal (int sig, const char *name)
 allows a module to take over ownership of a signal More...
 
DLLEXPORT QoreStringNodeqore_reassign_signals (const sig_vec_t &sig_vec, const char *name)
 allows a module to take over ownership of multiple signals atomically More...
 
DLLEXPORT int qore_release_signal (int sig, const char *name)
 releases the signal allocated to the given module More...
 
DLLEXPORT int qore_release_signals (const sig_vec_t &sig_vec, const char *name)
 releases multiple signals allocated to the given module atomically More...
 
DLLEXPORT void qore_set_module_option (std::string mod, std::string opt, QoreValue val)
 sets a module option for the given module More...
 
DLLEXPORT void qore_setup_argv (int pos, int argc, char *argv[])
 sets up the Qore ARGV and QORE_ARGV values
 
DLLEXPORT int qore_usleep (int64 usecs)
 use this function instead of usleep(), as usleep() is not signal-safe on some platforms (ex: Solaris 8, 9)
 
static char * strchrs (const char *str, const char *chars)
 find one of any characters in a string
 
static char * strnchr (const char *str, int len, char c)
 find a character in a string up to len
 
static void strtolower (char *str)
 convert a string to lower-case in place
 
static char * strtoupper (char *str)
 convert a string to upper-case in place
 
DLLEXPORT const char * tz_get_region_name (const AbstractQoreZoneInfo *tz)
 returns the reion name for the given time zone
 
DLLEXPORT int tz_get_utc_offset (const AbstractQoreZoneInfo *tz, int64 epoch_offset, bool &is_dst, const char *&zone_name)
 returns the UTC offset and local time zone name for the given time given as seconds from the epoch (1970-01-01Z)
 
DLLEXPORT bool tz_has_dst (const AbstractQoreZoneInfo *tz)
 returns true if the zone has daylight savings time ever
 

Variables

DLLEXPORT const qore_option_sqore_option_list
 list of qore options
 
DLLEXPORT size_t qore_option_list_size
 number of elements in the option list
 
DLLEXPORT FeatureList qoreFeatureList
 list of qore features
 

Detailed Description

contains prototypes for various helper functions in the Qore library

Macro Definition Documentation

◆ _QORE_HAS_HARD_TYPING

#define _QORE_HAS_HARD_TYPING   1

not defined because this version of Qore has moved all XML functionality to the "xml" module

not defined because this version of Qore has moved all XML functionality to the "xml" module not defined because this version of Qore has moved all XML functionality to the "xml" module defined because this version of Qore supports hard typing, overloading, default arguments, etc

Function Documentation

◆ domain_bitfield_to_string_list()

DLLEXPORT QoreListNode* domain_bitfield_to_string_list ( int64  i,
ExceptionSink xsink 
)

returns a list<string> of domain strings for the given bitfield; a Qore-language exception is raised for invalid values

Since
Qore 0.9

◆ find_create_timezone()

DLLEXPORT const AbstractQoreZoneInfo* find_create_timezone ( const char *  name,
ExceptionSink xsink 
)

returns a time zone for the given region name or UTC offset given as a string ("+01:00")

Parameters
namethe name of the region to find or a UTC offset given as a string ("+01:00")
xsinkif the given region is not found or valid or any error occur finding or loading the given region, exception info is stored here and the function returns 0
Returns
the time zone region found or 0 if the timezone is UTC (also in case of an exception 0 is returned - check xsink after calling)

◆ get_full_type_name()

DLLEXPORT const char* get_full_type_name ( const AbstractQoreNode n)

returns a string type description of the full type of the value contained (ex: "nothing" for a null AbstractQoreNode pointer); differs from the return value of get_type_name() for complex types (ex: "hash<string, int>")

Since
Qore 0.8.13

◆ get_or_nothing_type_check()

DLLEXPORT const QoreTypeInfo* get_or_nothing_type_check ( const QoreTypeInfo *  typeInfo)

returns the "or nothing" type for the given type

Since
Qore 0.9

◆ parse_option_bitfield_to_string_list()

DLLEXPORT QoreListNode* parse_option_bitfield_to_string_list ( int64  i,
ExceptionSink xsink 
)

returns a list<string> of parse option strings for the given bitfield; a Qore-language exception is raised for invalid values

Since
Qore 0.9

◆ parse_set_time_zone()

DLLEXPORT void parse_set_time_zone ( const char *  zone)

to set the time zone from the command line

Note
this function can only be called when a program exists

◆ q_env_subst()

DLLEXPORT int q_env_subst ( QoreString str)

performs environment variable substitution on the string argument

return 0 for OK, -1 if an error occurred (mismatched parens, etc)

Since
Qore 0.8.13

◆ q_get_thread_local_vars()

DLLEXPORT QoreHashNode* q_get_thread_local_vars ( int  frame,
ExceptionSink xsink 
)

retrieves a hash of all thread local variables and their values for the given stack frame in the current thread's QoreProgram object

Parameters
framethe stack frame starting from 0 (the current frame)
xsinkfor Qore-language exceptions
Returns
a hash of local variables and their values; if the frame does not exist, an empty hash is returned; if a Qore-language exception is thrown, then nullptr is returned
Note
the current thread must be a valid Qore thread with a current QoreProgram context or the results are undefined (i.e. expect a crash)
Since
Qore 0.8.13

◆ q_gname2gid()

int q_gname2gid ( const char *  name,
gid_t &  gid 
)

thread-safe way to lookup a gid from a group name

Parameters
namethe group to look up
gidthe gid returned
Returns
0 for no error, non-zero is an error code like errno

◆ q_libqore_shutdown()

DLLEXPORT bool q_libqore_shutdown ( )

returns true if the Qore library has been shut down

Since
Qore 0.8.13

◆ q_memrmem()

DLLEXPORT void* q_memrmem ( const void *  big,
size_t  big_len,
const void *  little,
size_t  little_len 
)

finds a memory sequence in a larger memory sequence searching from the end of the sequence

Note
returns void* for compatibility with memmem() and q_memmem() signatures
Since
Qore 0.9.1

◆ q_set_thread_var_value()

DLLEXPORT int q_set_thread_var_value ( int  frame,
const char *  name,
const QoreValue val,
ExceptionSink xsink 
)

sets the value of the given thread-local variable (which may be a closure-bound variable as well) in the current stack frame for the current thread's QoreProgram object

Parameters
framethe stack frame where 0 is the current (highest) stack frame
namethe name of the variable
valthe value to assign; the value will be referenced for the assignment if one is made
xsinkfor Qore-language exceptions
Returns
0 = OK or -1 = a Qore-language exception occurred making the assignment (ex: incompatible types) or 1 = variable not found or inaccessible stack frame (no exception thrown)
Note
pure local variables (i.e. not closure bound and not subject to the reference operator) are not stored with type information at runtime; type information is only enforced at parse / compile time, therefore it's possible to set local variables with invalid values that contradict their declarations with this function
Since
Qore 0.8.13

◆ q_strtod()

DLLEXPORT double q_strtod ( const char *  str)

converts a string to a double in a locale-independent way

Since
Qore 0.8.13

◆ q_uname2uid()

int q_uname2uid ( const char *  name,
uid_t &  uid 
)

thread-safe way to lookup a uid from a username

Parameters
namethe username to look up
uidthe uid returned
Returns
0 for no error, non-zero is an error code like errno

◆ qore_get_call_program_context()

DLLEXPORT QoreProgram* qore_get_call_program_context ( )

returns the caller's Program context, if any

Since
Qore 0.9

◆ qore_get_module_option()

DLLEXPORT QoreValue qore_get_module_option ( std::string  mod,
std::string  opt 
)

get module option for the given module

Parameters
modthe module name
optthe option name
Returns
the referenced option value; if a value is returned here, it must be dereferenced
Since
Qore 0.9

◆ qore_pseudo_get_class() [1/2]

DLLEXPORT const QoreClass* qore_pseudo_get_class ( qore_type_t  t)

returns the pseudo-class for the given type

Since
Qore 0.9

◆ qore_pseudo_get_class() [2/2]

DLLEXPORT const QoreClass* qore_pseudo_get_class ( const QoreTypeInfo *  t)

returns the pseudo-class for the given type

Since
Qore 0.9

◆ qore_reassign_signal()

DLLEXPORT QoreStringNode* qore_reassign_signal ( int  sig,
const char *  name 
)

allows a module to take over ownership of a signal

Parameters
sigsignal number
namemodule name taking ownership of managing the signal
Returns
nullptr for OK, non-zero for failed (error message); in case a QoreStringNode pointer is returned, the caller must dereference it
See also

◆ qore_reassign_signals()

DLLEXPORT QoreStringNode* qore_reassign_signals ( const sig_vec_t sig_vec,
const char *  name 
)

allows a module to take over ownership of multiple signals atomically

Parameters
sig_veca vector of signal numbers to allocate to the module
namemodule name taking ownership of managing the signal
Returns
nullptr for OK (all signals were allocated to the module), non-zero for failed (error message; no signals were allocated); in case a QoreStringNode pointer is returned, the caller must dereference it
Note
if any signal cannot be allocated to the module, no signals are allocated to the module; the call either succeeds for all or fails for all; no partial failures are possible; use this variant when allocating multiple signals to a module
See also
Since
Qore 0.8.13.1

◆ qore_release_signal()

DLLEXPORT int qore_release_signal ( int  sig,
const char *  name 
)

releases the signal allocated to the given module

Parameters
sigthe signal number allocated to the module
namemodule name owning the signal
Returns
0 = signal allocation released, -1 = no changes were made (module does not manage signal)
See also
Since
Qore 0.8.13.1

◆ qore_release_signals()

DLLEXPORT int qore_release_signals ( const sig_vec_t sig_vec,
const char *  name 
)

releases multiple signals allocated to the given module atomically

Parameters
sig_veca vector of signal numbers to allocate to the module
namemodule name owning the signals
Returns
0 = signal allocations released, -1 = no changes were made (module does not manage at least one signal)
Since
Qore 0.8.13.1

◆ qore_set_module_option()

DLLEXPORT void qore_set_module_option ( std::string  mod,
std::string  opt,
QoreValue  val 
)

sets a module option for the given module

Parameters
modthe module name
optthe option name
valuethe option value; must be already referenced for the assignment
Since
Qore 0.9