Qore Programming Language  0.8.9
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
QoreLib.h
Go to the documentation of this file.
1 /* -*- mode: c++; indent-tabs-mode: nil -*- */
2 /*
3  QoreLib.h
4 
5  Qore Programming Language
6 
7  Copyright 2003 - 2013 David Nichols
8 
9  This library is free software; you can redistribute it and/or
10  modify it under the terms of the GNU Lesser General Public
11  License as published by the Free Software Foundation; either
12  version 2.1 of the License, or (at your option) any later version.
13 
14  This library is distributed in the hope that it will be useful,
15  but WITHOUT ANY WARRANTY; without even the implied warranty of
16  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17  Lesser General Public License for more details.
18 
19  You should have received a copy of the GNU Lesser General Public
20  License along with this library; if not, write to the Free Software
21  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
22 */
23 
24 #ifndef _QORE_QORELIB_H
25 
26 #define _QORE_QORELIB_H
27 
28 #include <qore/common.h>
29 #include <qore/QoreThreadLock.h>
30 #include <qore/qore_bitopts.h>
31 #include <qore/safe_dslist>
32 
33 #include <time.h>
34 #include <string.h>
35 #include <strings.h>
36 #include <stdlib.h>
37 #include <stdio.h>
38 #include <ctype.h>
39 #include <sys/types.h>
40 
45 #undef _QORE_HAS_QORE_XMLNODE_CLASS
47 
49 #undef _QORE_HAS_QORE_XMLREADER_CLASS
50 
52 #undef _QORE_HAS_QORE_XMLDOC_CLASS
53 
55 #define _QORE_HAS_HARD_TYPING 1
56 
58 #define _QORE_HAS_DBI_EXECRAW 1
59 
61 #define _QORE_HAS_TIME_ZONES 1
62 
64 #define _QORE_HAS_THREAD_RESOURCE_IDS 1
65 
67 #define _QORE_HAS_PREPARED_STATMENT_API 1
68 
70 #define _QORE_HAS_DATASOURCE_ACTIVETRANSACTION 1
71 
73 #define _QORE_HAS_DBI_SELECT_ROW 1
74 
76 #define _QORE_HAS_NUMBER_TYPE 1
77 
79 #define _QORE_HAS_PATH_IS_READABLE 1
80 
82 #define _QORE_HAS_DBI_OPTIONS 1
83 
85 #define _QORE_HAS_FIND_CREATE_TIMEZONE 1
86 
88 #define _QORE_HAS_NUMBER_CONS_WITH_PREC 1
89 
91 #define _QORE_HAS_FILE_OBJECT_HELPER 1
92 
94 #define _QORE_HAS_QUEUE_OBJECT_HELPER 1
95 
97 #define _QORE_HAS_QOREHTTPCLIENTOBJECT 1
98 
100 #define _QORE_HAS_DBI_DESCRIBE 1
101 
103 #define _QORE_HAS_DBI_EVENTS 1
104 
105 // qore code flags
106 #define QC_NO_FLAGS 0
107 #define QC_NOOP (1 << 0)
108 #define QC_USES_EXTRA_ARGS (1 << 1)
109 #define QC_CONSTANT_INTERN (1 << 2)
110 #define QC_DEPRECATED (1 << 3)
111 #define QC_RET_VALUE_ONLY (1 << 4)
112 #define QC_RUNTIME_NOOP (1 << 5)
113 
114 // composite flags
115 #define QC_CONSTANT (QC_CONSTANT_INTERN | QC_RET_VALUE_ONLY)
116 
117 DLLEXPORT char *make_class_name(const char *fn);
119 
121 DLLEXPORT QoreStringNode *q_sprintf(const class QoreListNode *params, int field, int offset, class ExceptionSink *xsink);
122 
124 DLLEXPORT QoreStringNode *q_vsprintf(const class QoreListNode *params, int field, int offset, class ExceptionSink *xsink);
125 
127 DLLEXPORT struct tm *q_localtime(const time_t *clock, struct tm *tms);
128 
130 DLLEXPORT struct tm *q_gmtime(const time_t *clock, struct tm *tms);
131 
133 DLLEXPORT int64 q_epoch();
134 
136 DLLEXPORT int64 q_epoch_us(int &us);
137 
139 DLLEXPORT int64 q_epoch_ns(int &us);
140 
142 DLLEXPORT char *q_basename(const char *path);
143 
145 DLLEXPORT char *q_basenameptr(const char *path);
146 
148 DLLEXPORT char *q_dirname(const char *path);
149 
151 DLLEXPORT void *q_realloc(void *ptr, size_t size);
152 
153 #if (!defined _WIN32 && !defined __WIN32__) || defined __CYGWIN__
154 DLLEXPORT QoreHashNode *q_getpwuid(uid_t uid);
156 
158 DLLEXPORT QoreHashNode *q_getpwnam(const char *name);
159 
161 DLLEXPORT QoreHashNode *q_getgrgid(uid_t uid);
162 
164 DLLEXPORT QoreHashNode *q_getgrnam(const char *name);
165 
167 
172 int q_uname2uid(const char *name, uid_t &uid);
173 
175 
180 int q_gname2gid(const char *name, gid_t &gid);
181 #endif // ! windows
182 
184 DLLEXPORT void qore_setup_argv(int pos, int argc, char *argv[]);
185 
187 DLLEXPORT qore_license_t qore_get_license();
188 
190 DLLEXPORT void qore_exit_process(int rc);
191 
193 
195 class FeatureList : public safe_dslist<std::string> {
196 private:
198  DLLLOCAL FeatureList(const FeatureList&);
199 
201  DLLLOCAL FeatureList& operator=(const FeatureList&);
202 
203 public:
205  DLLLOCAL FeatureList();
206 
208  DLLLOCAL ~FeatureList();
209 };
210 
212 DLLEXPORT extern FeatureList qoreFeatureList;
213 
215 static inline char *strchrs(const char *str, const char *chars) {
216  while (*str) {
217  if (strchr(chars, *str))
218  return (char *)str;
219  str++;
220  }
221  return 0;
222 }
223 
225 static inline char *strnchr(const char *str, int len, char c) {
226  int i = 0;
227  while (i++ != len) {
228  if (*str == c)
229  return (char *)str;
230  ++str;
231  }
232  return 0;
233 }
234 
236 static inline void strtolower(char *str) {
237  while (*(str)) {
238  (*str) = tolower(*str);
239  str++;
240  }
241 }
242 
244 static inline char *strtoupper(char *str) {
245  char *p = str;
246  while (*(p)) {
247  *p = toupper(*p);
248  p++;
249  }
250  return str;
251 }
252 
254 DLLEXPORT int getSecZeroInt(const AbstractQoreNode *a);
255 
257 DLLEXPORT int64 getSecZeroBigInt(const AbstractQoreNode *a);
258 
260 DLLEXPORT int getSecMinusOneInt(const AbstractQoreNode *a);
261 
263 DLLEXPORT int64 getSecMinusOneBigInt(const AbstractQoreNode *a);
264 
266 DLLEXPORT int getMsZeroInt(const AbstractQoreNode *a);
267 
269 DLLEXPORT int64 getMsZeroBigInt(const AbstractQoreNode *a);
270 
272 DLLEXPORT int getMsMinusOneInt(const AbstractQoreNode *a);
273 
275 DLLEXPORT int64 getMsMinusOneBigInt(const AbstractQoreNode *a);
276 
278 DLLEXPORT int getMicroSecZeroInt(const AbstractQoreNode *a);
279 
281 DLLEXPORT int64 getMicroSecZeroInt64(const AbstractQoreNode *a);
282 
284 static inline bool is_nothing(const AbstractQoreNode *n) {
285  if (!n || n->getType() == NT_NOTHING)
286  return true;
287 
288  return false;
289 }
290 
292 static inline void discard(AbstractQoreNode *n, ExceptionSink *xsink) {
293  if (n)
294  n->deref(xsink);
295 }
296 
297 static inline const char *get_type_name(const AbstractQoreNode *n) {
298  return n ? n->getTypeName() : "NOTHING";
299 }
300 
301 static inline qore_type_t get_node_type(const AbstractQoreNode *n) {
302  return n ? n->getType() : NT_NOTHING;
303 }
304 
305 class BinaryNode;
306 class QoreStringNode;
307 class ExceptionSink;
308 
310 DLLEXPORT BinaryNode *qore_deflate(void *ptr, unsigned long len, int level, ExceptionSink *xsink);
312 DLLEXPORT QoreStringNode *qore_inflate_to_string(const BinaryNode *b, const QoreEncoding *enc, ExceptionSink *xsink);
314 DLLEXPORT BinaryNode *qore_inflate_to_binary(const BinaryNode *b, ExceptionSink *xsink);
316 DLLEXPORT BinaryNode *qore_gzip(void *ptr, unsigned long len, int level, ExceptionSink *xsink);
318 DLLEXPORT QoreStringNode *qore_gunzip_to_string(const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink);
320 DLLEXPORT BinaryNode *qore_gunzip_to_binary(const BinaryNode *bin, ExceptionSink *xsink);
322 DLLEXPORT BinaryNode *qore_bzip2(void *ptr, unsigned long len, int level, ExceptionSink *xsink);
324 DLLEXPORT QoreStringNode *qore_bunzip2_to_string(const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink);
326 DLLEXPORT BinaryNode *qore_bunzip2_to_binary(const BinaryNode *bin, ExceptionSink *xsink);
327 
329 DLLEXPORT BinaryNode *parseBase64(const char *buf, int len, ExceptionSink *xsink);
330 
332 DLLEXPORT BinaryNode *parseHex(const char *buf, int len, ExceptionSink *xsink);
333 
334 class AbstractQoreZoneInfo;
335 
337 DLLEXPORT const AbstractQoreZoneInfo* findCreateOffsetZone(int seconds_east);
338 
340 
345 DLLEXPORT const AbstractQoreZoneInfo* find_create_timezone(const char* name, ExceptionSink* xsink);
346 
348 DLLEXPORT int tz_get_utc_offset(const AbstractQoreZoneInfo* tz, int64 epoch_offset, bool &is_dst, const char *&zone_name);
350 DLLEXPORT bool tz_has_dst(const AbstractQoreZoneInfo* tz);
352 DLLEXPORT const char* tz_get_region_name(const AbstractQoreZoneInfo* tz);
353 
355 #define QORE_OPT_ATOMIC_OPERATIONS "atomic operations"
356 #define QORE_OPT_STACK_GUARD "stack guard"
358 #define QORE_OPT_SIGNAL_HANDLING "signal handling"
360 #define QORE_OPT_RUNTIME_STACK_TRACE "runtime stack tracing"
362 #define QORE_OPT_LIBRARY_DEBUGGING "library debugging"
364 #define QORE_OPT_SHA224 "openssl sha224"
366 #define QORE_OPT_SHA256 "openssl sha256"
368 #define QORE_OPT_SHA384 "openssl sha384"
370 #define QORE_OPT_SHA512 "openssl sha512"
372 #define QORE_OPT_MDC2 "openssl mdc2"
374 #define QORE_OPT_RC5 "openssl rc5"
376 #define QORE_OPT_MD2 "openssl md2"
378 #define QORE_OPT_TERMIOS "termios"
380 #define QORE_OPT_FILE_LOCKING "file locking"
382 #define QORE_OPT_UNIX_USERMGT "unix user management"
384 #define QORE_OPT_UNIX_FILEMGT "unix file management"
386 #define QORE_OPT_FUNC_ROUND "round()"
388 #define QORE_OPT_FUNC_TIMEGM "timegm()"
390 #define QORE_OPT_FUNC_SETEUID "seteuid()"
392 #define QORE_OPT_FUNC_SETEGID "setegid()"
394 #define QORE_OPT_FUNC_SYSTEM "system()"
396 #define QORE_OPT_FUNC_KILL "kill()"
398 #define QORE_OPT_FUNC_FORK "fork()"
400 #define QORE_OPT_FUNC_GETPPID "getppid()"
402 #define QORE_OPT_FUNC_STATVFS "statvfs()"
404 #define QORE_OPT_FUNC_SETSID "setsid()"
406 #define QORE_OPT_FUNC_IS_EXECUTABLE "is_executable()"
408 
410 #define QO_OPTION 0
411 #define QO_ALGORITHM 1
412 #define QO_FUNCTION 2
413 
416  const char* option;
417  const char* constant;
418  int type;
419  bool value;
420 };
421 
423 DLLEXPORT QoreStringNode *q_strerror(int errnum);
425 DLLEXPORT void q_strerror(QoreString &str, int errnum);
426 
428 DLLEXPORT extern const qore_option_s *qore_option_list;
430 DLLEXPORT extern size_t qore_option_list_size;
431 
433 
437 DLLEXPORT QoreStringNode *qore_reassign_signal(int sig, const char *name);
438 
440 #define QORE_MAX(a, b) ((a) > (b) ? (a) : (b))
441 
443 #define QORE_MIN(a, b) ((a) < (b) ? (a) : (b))
444 
445 #define QORE_PARAM_NO_ARG (NULL)
446 
447 // define QORE_PATH_MAX
448 #ifndef QORE_PATH_MAX
449 #ifdef _XOPEN_PATH_MAX
450 #define QORE_PATH_MAX _XOPEN_PATH_MAX
451 #else
452 #define QORE_PATH_MAX 1024
453 #endif
454 #endif
455 
457 
459 DLLEXPORT void parse_set_time_zone(const char *zone);
460 
462 DLLEXPORT int qore_usleep(int64 usecs);
463 
465 DLLEXPORT bool q_path_is_readable(const char* path);
466 
468 DLLEXPORT bool q_parse_bool(const AbstractQoreNode* n);
469 
471 DLLEXPORT bool q_parse_bool(const char* str);
472 
474 DLLEXPORT bool q_get_option_value(const char* opt);
475 
477 DLLEXPORT bool q_get_option_constant_value(const char* opt);
478 
480 DLLEXPORT const char* q_mode_to_perm(mode_t mode, QoreString& perm);
481 
482 #endif // _QORE_QORELIB_H
DLLEXPORT const qore_option_s * qore_option_list
list of qore options
DLLEXPORT int64 q_epoch_us(int &us)
returns the seconds and microseconds from the epoch
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 (&quot;+01:00&quot;) ...
STL-like list containing all presently-loaded Qore features.
Definition: QoreLib.h:195
defines string encoding functions in Qore
Definition: QoreEncoding.h:72
templated class for a double-ended singly-linked list that can be safely read from multiple threads w...
Definition: safe_dslist:129
DLLEXPORT BinaryNode * qore_deflate(void *ptr, unsigned long len, int level, ExceptionSink *xsink)
compresses data with the DEFLATE algorithm
This is the hash or associative list container type in Qore, dynamically allocated only...
Definition: QoreHashNode.h:41
DLLEXPORT void qore_setup_argv(int pos, int argc, char *argv[])
sets up the Qore ARGV and QORE_ARGV values
DLLEXPORT bool tz_has_dst(const AbstractQoreZoneInfo *tz)
returns true if the zone has daylight savings time ever
DLLEXPORT void qore_exit_process(int rc)
instead of calling &quot;exit()&quot;, call qore_exit_process() to exit without risking a crash if other thread...
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 int getSecMinusOneInt(const AbstractQoreNode *a)
for getting an integer number of seconds, with -1 as the default, from either a relative time value o...
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:47
const qore_type_t NT_NOTHING
type value for QoreNothingNode
Definition: node_types.h:34
DLLEXPORT QoreStringNode * qore_gunzip_to_string(const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink)
gunzips compressed data to a string
DLLEXPORT QoreHashNode * q_getgrnam(const char *name)
thread-safe version of getgrnam(): returns a Qore hash of the group information from the group name i...
DLLEXPORT QoreStringNode * q_vsprintf(const class QoreListNode *params, int field, int offset, class ExceptionSink *xsink)
a string formatting function that works with Qore data structures
DLLEXPORT BinaryNode * qore_bunzip2_to_binary(const BinaryNode *bin, ExceptionSink *xsink)
decompresses bzip2 data to a binary
DLLEXPORT int getMicroSecZeroInt(const AbstractQoreNode *a)
for getting an integer number of microseconds, with 0 as the default, from either a relative time val...
static void discard(AbstractQoreNode *n, ExceptionSink *xsink)
to deref an AbstractQoreNode (when the pointer may be 0)
Definition: QoreLib.h:292
DLLEXPORT int64 getSecZeroBigInt(const AbstractQoreNode *a)
for getting an integer number of seconds, with 0 as the default, from either a relative time value or...
bool value
the value of the option
Definition: QoreLib.h:419
DLLEXPORT BinaryNode * parseBase64(const char *buf, int len, ExceptionSink *xsink)
parses a string of base64-encoded data and returns a BinaryNode
DLLEXPORT const char * tz_get_region_name(const AbstractQoreZoneInfo *tz)
returns the reion name for the given time zone
DLLEXPORT QoreStringNode * qore_bunzip2_to_string(const BinaryNode *bin, const QoreEncoding *enc, ExceptionSink *xsink)
decompresses bzip2 data to a string
DLLEXPORT int64 q_epoch_ns(int &us)
returns the seconds and nanoseconds from the epoch
DLLEXPORT BinaryNode * qore_gzip(void *ptr, unsigned long len, int level, ExceptionSink *xsink)
gzips data
DLLEXPORT bool q_parse_bool(const AbstractQoreNode *n)
tries to parse a boolean value - standard conversion or uses q_parse_bool(const char*) if it&#39;s a stri...
DLLLOCAL FeatureList()
initialized by the library, constructor not exported
DLLEXPORT struct tm * q_localtime(const time_t *clock, struct tm *tms)
thread-safe version of &quot;localtime()&quot;
signed short qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode) ...
Definition: common.h:59
virtual DLLEXPORT const char * getTypeName() const =0
returns the type name as a c string
Qore&#39;s string type supported by the QoreEncoding class.
Definition: QoreString.h:42
Qore&#39;s string value type, reference counted, dynamically-allocated only.
Definition: QoreStringNode.h:40
DLLEXPORT int getMsZeroInt(const AbstractQoreNode *a)
for getting an integer number of milliseconds, with 0 as the default, from either a relative time val...
const char * option
name of the option
Definition: QoreLib.h:416
DLLEXPORT int qore_usleep(int64 usecs)
use this function instead of usleep(), as usleep() is not signal-safe on some platforms (ex: Solaris ...
definition of the elements in the qore_option_list
Definition: QoreLib.h:415
static bool is_nothing(const AbstractQoreNode *n)
to check if an AbstractQoreNode object is NOTHING
Definition: QoreLib.h:284
DLLEXPORT struct tm * q_gmtime(const time_t *clock, struct tm *tms)
thread-safe version of &quot;gmtime()&quot;
This is the list container type in Qore, dynamically allocated only, reference counted.
Definition: QoreListNode.h:44
DLLEXPORT char * q_basename(const char *path)
thread-safe basename function (resulting pointer must be free()ed)
DLLEXPORT QoreStringNode * q_sprintf(const class QoreListNode *params, int field, int offset, class ExceptionSink *xsink)
a string formatting function that works with Qore data structures
DLLEXPORT QoreHashNode * q_getpwuid(uid_t uid)
thread-safe version of getpwuid(): returns a Qore hash of the passwd information from the uid if poss...
DLLEXPORT QoreStringNode * qore_reassign_signal(int sig, const char *name)
allows a module to take over ownership of a signal
DLLEXPORT QoreHashNode * q_getgrgid(uid_t uid)
thread-safe version of getgrgid(): returns a Qore hash of the group information from the gid if possi...
DLLEXPORT char * q_dirname(const char *path)
thread-safe dirname function (resulting pointer must be free()ed)
DLLEXPORT int getSecZeroInt(const AbstractQoreNode *a)
for getting an integer number of seconds, with 0 as the default, from either a relative time value or...
DLLEXPORT int64 getMsZeroBigInt(const AbstractQoreNode *a)
for getting an integer number of milliseconds, with 0 as the default, from either a relative time val...
static char * strtoupper(char *str)
convert a string to upper-case in place
Definition: QoreLib.h:244
qore_license_t
qore library and module license type identifiers
Definition: common.h:74
const char * constant
name of the constant for this option
Definition: QoreLib.h:417
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 int64 getMicroSecZeroInt64(const AbstractQoreNode *a)
for getting an integer number of microseconds, with 0 as the default, from either a relative time val...
DLLEXPORT BinaryNode * qore_bzip2(void *ptr, unsigned long len, int level, ExceptionSink *xsink)
compresses data with bzip2
container for holding Qore-language exception information and also for registering a &quot;thread_exit&quot; ca...
Definition: ExceptionSink.h:35
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 QoreStringNode * q_strerror(int errnum)
returns the error string as a QoreStringNode
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 BinaryNode * qore_gunzip_to_binary(const BinaryNode *bin, ExceptionSink *xsink)
gunzips compressed data to a binary
static void strtolower(char *str)
convert a string to lower-case in place
Definition: QoreLib.h:236
DLLEXPORT void deref(ExceptionSink *xsink)
decrements the reference count and calls derefImpl() if there_can_be_only_one is false, otherwise does nothing
DLLEXPORT qore_license_t qore_get_license()
returns the license type that the library has been initialized under
DLLEXPORT int64 getMsMinusOneBigInt(const AbstractQoreNode *a)
for getting an integer number of milliseconds, with -1 as the default, from either a relative time va...
DLLEXPORT int64 getSecMinusOneBigInt(const AbstractQoreNode *a)
for getting an integer number of seconds, with -1 as the default, from either a relative time value o...
int q_uname2uid(const char *name, uid_t &uid)
thread-safe way to lookup a uid from a username
DLLEXPORT void parse_set_time_zone(const char *zone)
to set the time zone from the command line
int type
the type of the option
Definition: QoreLib.h:418
DLLEXPORT QoreStringNode * qore_inflate_to_string(const BinaryNode *b, const QoreEncoding *enc, ExceptionSink *xsink)
decompresses data compressed with the DEFLATE algorithm to a string
DLLLOCAL qore_type_t getType() const
returns the data type
Definition: AbstractQoreNode.h:286
DLLEXPORT int getMsMinusOneInt(const AbstractQoreNode *a)
for getting an integer number of milliseconds, with -1 as the default, from either a relative time va...
static char * strnchr(const char *str, int len, char c)
find a character in a string up to len
Definition: QoreLib.h:225
DLLEXPORT int64 q_epoch()
returns the seconds from the epoch
int q_gname2gid(const char *name, gid_t &gid)
thread-safe way to lookup a gid from a group name
DLLLOCAL ~FeatureList()
destructor not exported
DLLEXPORT const AbstractQoreZoneInfo * findCreateOffsetZone(int seconds_east)
returns a time zone for the given time zone UTC offset
DLLEXPORT char * q_basenameptr(const char *path)
returns a pointer within the same string
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...
DLLEXPORT BinaryNode * parseHex(const char *buf, int len, ExceptionSink *xsink)
parses a string of hex characters and returns a BinaryNode
DLLEXPORT void * q_realloc(void *ptr, size_t size)
frees memory if there is an allocation error
DLLEXPORT QoreHashNode * q_getpwnam(const char *name)
thread-safe version of getpwnam(): returns a Qore hash of the passwd information from the username if...
static char * strchrs(const char *str, const char *chars)
find one of any characters in a string
Definition: QoreLib.h:215
DLLEXPORT BinaryNode * qore_inflate_to_binary(const BinaryNode *b, ExceptionSink *xsink)
decompresses data compressed with the DEFLATE algorithm to a binary
DLLEXPORT size_t qore_option_list_size
number of elements in the option list
DLLEXPORT FeatureList qoreFeatureList
list of qore features
holds arbitrary binary data
Definition: BinaryNode.h:33
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 (1...