BinaryNode Class Reference

holds arbitrary binary data More...

#include <BinaryNode.h>

Inheritance diagram for BinaryNode:

SimpleValueQoreNode SimpleQoreNode AbstractQoreNode QoreReferenceCounter

List of all members.

Public Member Functions

DLLEXPORT BinaryNode (void *p=0, qore_size_t size=0)
 creates the object
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 QoreStringgetAsString (bool &del, int foff, class ExceptionSink *xsink) const
 returns a QoreString giving the verbose string representation of the List (including all contained values for container types)
virtual DLLEXPORT class
AbstractQoreNode
realCopy () const
 returns a copy of the object; the caller owns the reference count
virtual DLLEXPORT bool is_equal_soft (const AbstractQoreNode *v, ExceptionSink *xsink) const
 tests for equality
virtual DLLEXPORT bool is_equal_hard (const AbstractQoreNode *v, ExceptionSink *xsink) const
 tests for equality
virtual DLLEXPORT const char * getTypeName () const
 returns the type name as a c string
DLLEXPORT int compare (const BinaryNode *obj) const
 returns 0 = equal, 1 = not equal
DLLEXPORT qore_size_t size () const
 returns the number of bytes in the object
DLLEXPORT class BinaryNodecopy () const
 returns a copy of the object
DLLEXPORT const void * getPtr () const
 returns the pointer to the data
DLLEXPORT void append (const void *nptr, qore_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
DLLEXPORT void append (const BinaryNode &b)
 resizes the object and appends a copy of the data passed to the object
DLLEXPORT void prepend (const void *nptr, qore_size_t size)
 resizes the object and prepends a copy of the data passed to the beginning of the object
DLLEXPORT void * giveBuffer ()
 returns the data being managed and leaves this object empty
DLLEXPORT int preallocate (qore_size_t size)
 pre-allocates a buffer of a certain size
DLLEXPORT int setSize (qore_size_t size)
 sets the buffer size after preallocation

Protected Member Functions

virtual DLLEXPORT ~BinaryNode ()
 frees and memory owned by the object


Detailed Description

holds arbitrary binary data

this class is implemented simply as a pointer and a length indicator


Constructor & Destructor Documentation

DLLEXPORT BinaryNode::BinaryNode ( void *  p = 0,
qore_size_t  size = 0 
)

creates the object

Parameters:
p a pointer to the memory, the BinaryNode object takes over ownership of this pointer
size the byte length of the memory


Member Function Documentation

virtual DLLEXPORT int BinaryNode::getAsString ( QoreString str,
int  foff,
class ExceptionSink xsink 
) const [virtual]

concatenate the verbose string representation of the value to an existing QoreString

used for n and N printf formatting

Parameters:
str the string representation of the type will be concatenated to this QoreString reference
foff for multi-line formatting offset, -1 = no line breaks
xsink if an error occurs, the Qore-language exception information will be added here
Returns:
-1 for exception raised, 0 = OK

Implements AbstractQoreNode.

virtual DLLEXPORT QoreString* BinaryNode::getAsString ( bool &  del,
int  foff,
class ExceptionSink xsink 
) const [virtual]

returns a QoreString giving the verbose string representation of the List (including all contained values for container types)

used for n and N printf formatting

Parameters:
del if this is true when the function returns, then the returned QoreString pointer should be deleted, if false, then it must not be
foff for multi-line formatting offset, -1 = no line breaks
xsink if an error occurs, the Qore-language exception information will be added here NOTE: Use the QoreNodeAsStringHelper class (defined in QoreStringNode.h) instead of using this function directly
See also:
QoreNodeAsStringHelper

Implements AbstractQoreNode.

virtual DLLEXPORT class AbstractQoreNode* BinaryNode::realCopy (  )  const [virtual]

returns a copy of the object; the caller owns the reference count

Returns:
a copy of the object; the caller owns the reference count

Implements AbstractQoreNode.

virtual DLLEXPORT bool BinaryNode::is_equal_soft ( const AbstractQoreNode v,
ExceptionSink xsink 
) const [virtual]

tests for equality

this function does not throw a Qore-language exception with the BinaryNode class

Parameters:
v the value to compare
xsink is not used in this implementation of the function

Implements AbstractQoreNode.

virtual DLLEXPORT bool BinaryNode::is_equal_hard ( const AbstractQoreNode v,
ExceptionSink xsink 
) const [virtual]

tests for equality

this function does not throw a Qore-language exception with the BinaryNode class

Parameters:
v the value to compare
xsink is not used in this implementation of the function

Implements AbstractQoreNode.

DLLEXPORT class BinaryNode* BinaryNode::copy (  )  const

returns a copy of the object

Returns:
a copy of the current object

DLLEXPORT void* BinaryNode::giveBuffer (  ) 

returns the data being managed and leaves this object empty

Returns:
the data being managed (leaves this object empty)
Note:
it would be a grevious error to call this function on an object with a reference_count > 1 (i.e. is_unique() is false)

DLLEXPORT int BinaryNode::preallocate ( qore_size_t  size  ) 

pre-allocates a buffer of a certain size

This function can be used to write data directly to a new BinaryNode object. This call can be made more than once, subsequent calls will cause realloc() to be called on the buffer which can be used to extend the buffer size.

Parameters:
size the number of bytes to pre-allocate
Returns:
0 for OK, -1 for error (memory could not be allocated)

DLLEXPORT int BinaryNode::setSize ( qore_size_t  size  ) 

sets the buffer size after preallocation

This function is designed to be used with BinaryNode::preallocate(). The size to be set must be less than the currently allocated size.

Parameters:
size the size of the BinaryNode to set
Returns:
0 for OK, -1 for error (size > current size)


The documentation for this class was generated from the following file:

Generated on Mon Oct 26 09:09:49 2009 for Qore Programming Language by  doxygen 1.5.6