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 BinaryNode * copy() const
returns a copy of the object
DLLEXPORT void append(const void *nptr, size_t size)
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 int preallocate(size_t size)
pre-allocates a buffer of a certain size
DLLEXPORT void * giveBuffer()
returns the data being managed and leaves this object empty
DLLEXPORT size_t size() const
returns the number of bytes in the object
virtual DLLEXPORT class AbstractQoreNode * realCopy() const
returns a copy of the object; the caller owns the reference count
virtual DLLEXPORT bool is_equal_hard(const AbstractQoreNode *v, ExceptionSink *xsink) const
tests for equality
static DLLLOCAL qore_type_t getStaticTypeCode()
returns the type code (useful in templates)
Definition: BinaryNode.h:220
DLLEXPORT BinaryNode * binRefSelf() const
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
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
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"
virtual DLLEXPORT const char * getTypeName() const
returns the type name as a c string
DLLEXPORT const void * getPtr() const
returns the pointer to the data
static DLLLOCAL const char * getStaticTypeName()
returns the type name (useful in templates)
Definition: BinaryNode.h:215
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:48
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:93
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:275