Qore Programming Language  1.12.0
QoreStringNodeValueHelper Class Reference

this class is used to safely manage calls to AbstractQoreNode::getStringRepresentation() when a QoreStringNode value is needed, stack only, may not be dynamically allocated More...

#include <QoreStringNode.h>

Public Member Methods

DLLEXPORT QoreStringNodeValueHelper (const QoreValue n, const QoreEncoding *enc, ExceptionSink *xsink)
 gets the QoreString representation and ensures that it's in the desired encoding More...
 
DLLEXPORT ~QoreStringNodeValueHelper ()
 destroys the object and dereferences the QoreStringNode if it is a temporary pointer
 
DLLEXPORT QoreStringNodegetReferencedValue ()
 returns a referenced value - the caller will own the reference More...
 
DLLEXPORT bool is_temp () const
 returns true if the reference being managed is temporary
 
DLLEXPORT const QoreStringNodeoperator* ()
 returns the object being managed More...
 
DLLEXPORT const QoreStringNodeoperator-> ()
 returns the object being managed More...
 

Detailed Description

this class is used to safely manage calls to AbstractQoreNode::getStringRepresentation() when a QoreStringNode value is needed, stack only, may not be dynamically allocated

the QoreStringNode value returned by this function is managed safely in an exception-safe way with this class

printf("str='%s'\n", str->getBuffer());
return str.getReferencedValue();
DLLEXPORT const char * getBuffer() const
returns the string's buffer; this data should not be changed
this class is used to safely manage calls to AbstractQoreNode::getStringRepresentation() when a QoreS...
Definition: QoreStringNode.h:378

Constructor & Destructor Documentation

◆ QoreStringNodeValueHelper()

DLLEXPORT QoreStringNodeValueHelper::QoreStringNodeValueHelper ( const QoreValue  n,
const QoreEncoding enc,
ExceptionSink xsink 
)

gets the QoreString representation and ensures that it's in the desired encoding

a Qore-language exception may be thrown if an encoding error occurs

// get a QoreString value from "node" and ensure it's in UTF-8 encoding
// return if there was an exception converting the encoding to UTF-8
if (*xsink)
return 0;
// use the string value
return new MStringData(t->getBuffer(), MEncoding::M_ASCII);
DLLEXPORT const QoreEncoding * QCS_UTF8
UTF-8 multi-byte encoding (only UTF-8 and UTF-16 are multi-byte encodings)
Definition: QoreEncoding.h:247

Member Function Documentation

◆ getReferencedValue()

DLLEXPORT QoreStringNode* QoreStringNodeValueHelper::getReferencedValue ( )

returns a referenced value - the caller will own the reference

The string is referenced if necessary (if it was a not a temporary value)

Returns
the string value, where the caller will own the reference count

◆ operator*()

DLLEXPORT const QoreStringNode* QoreStringNodeValueHelper::operator* ( )

returns the object being managed

Returns
the object being managed

◆ operator->()

DLLEXPORT const QoreStringNode* QoreStringNodeValueHelper::operator-> ( )

returns the object being managed

Returns
the object being managed

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