32#ifndef _QORE_BINARYNODE_H
34#define _QORE_BINARYNODE_H
36#include <qore/AbstractQoreNode.h>
The base class for all value and parse types in Qore expression trees.
Definition: AbstractQoreNode.h:57
holds arbitrary binary data
Definition: BinaryNode.h:41
DLLEXPORT void splice(qore_offset_t offset, qore_offset_t length, BinaryNode *extract=0)
removes "length" characters from the binary data starting at position "offset"
DLLEXPORT void append(const void *nptr, size_t size)
resizes the object and appends a copy of the data passed to the object
DLLEXPORT void append(const BinaryNode *b)
resizes the object and appends a copy of the data passed to the object
virtual DLLEXPORT bool getAsBoolImpl() const
returns false unless perl-boolean-evaluation is enabled, in which case it returns false only when emp...
DLLEXPORT void splice(qore_offset_t offset, qore_offset_t length, const void *data, size_t data_len, BinaryNode *extract=0)
removes "length" characters from the binary data starting at position "offset" and replaces them with...
DLLEXPORT int preallocate(size_t size)
pre-allocates a buffer of a certain size
virtual DLLEXPORT QoreString * getAsString(bool &del, int foff, class ExceptionSink *xsink) const
returns a QoreString giving the verbose string representation of the List (including all contained va...
DLLEXPORT int substr(BinaryNode &b, qore_offset_t offset, qore_offset_t length) const
copies data to the BinaryNode argument starting with byte position "offset"
DLLEXPORT BinaryNode(void *p=0, size_t size=0)
creates the object
DLLEXPORT size_t size() const
returns the number of bytes in the object
DLLEXPORT int writeTo(size_t pos, const void *nptr, size_t size)
writes the given data to the given location in the object
virtual DLLEXPORT bool is_equal_hard(const AbstractQoreNode *v, ExceptionSink *xsink) const
tests for equality
DLLEXPORT void * giveBuffer()
returns the data being managed and leaves this object empty
static DLLLOCAL qore_type_t getStaticTypeCode()
returns the type code (useful in templates)
Definition: BinaryNode.h:233
static DLLLOCAL const char * getStaticTypeName()
returns the type name (useful in templates)
Definition: BinaryNode.h:228
virtual DLLEXPORT int getAsString(QoreString &str, int foff, class ExceptionSink *xsink) const
concatenate the verbose string representation of the value to an existing QoreString
virtual DLLEXPORT ~BinaryNode()
frees and memory owned by the object
DLLEXPORT bool empty() const
returns true if empty
DLLEXPORT int setSize(size_t size)
sets the buffer size after preallocation
virtual DLLEXPORT const char * getTypeName() const
returns the type name as a c string
virtual DLLEXPORT class AbstractQoreNode * realCopy() const
returns a copy of the object; the caller owns the reference count
DLLEXPORT void clear()
frees any managed memory and sets the size to 0
virtual DLLLOCAL int parseInit(QoreValue &val, QoreParseContext &parse_context)
returns the type information
DLLEXPORT BinaryNode * binRefSelf() const
virtual DLLEXPORT bool is_equal_soft(const AbstractQoreNode *v, ExceptionSink *xsink) const
tests for equality
DLLEXPORT int substr(BinaryNode &b, qore_offset_t offset) const
copies data to the BinaryNode argument starting with byte position "offset"
DLLEXPORT void append(const BinaryNode &b)
resizes the object and appends a copy of the data passed to the object
DLLEXPORT BinaryNode * copy() const
returns a copy of the object
DLLEXPORT const void * getPtr() const
returns the pointer to the data
DLLEXPORT void prepend(const void *nptr, size_t size)
resizes the object and prepends a copy of the data passed to the beginning of the object
DLLEXPORT int compare(const BinaryNode *obj) const
returns 0 = equal, 1 = not equal
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:50
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:93
manages a reference count of a pointer to a class that takes a simple "deref()" call with no argument...
Definition: ReferenceHolder.h:118
base class for simple value types
Definition: AbstractQoreNode.h:372
int16_t qore_type_t
used to identify unique Qore data and parse types (descendents of AbstractQoreNode)
Definition: common.h:70
intptr_t qore_offset_t
used for offsets that could be negative
Definition: common.h:76
const qore_type_t NT_BINARY
type value for BinaryNode
Definition: node_types.h:49
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:276