Qore Programming Language  0.9.4.6
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...
 
DLLLOCAL bool is_temp () const
 returns true if the referenced being managed is temporary
 
DLLLOCAL const QoreStringNodeoperator* ()
 returns the object being managed More...
 
DLLLOCAL 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();

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);

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*()

DLLLOCAL const QoreStringNode* QoreStringNodeValueHelper::operator* ( )
inline

returns the object being managed

Returns
the object being managed

◆ operator->()

DLLLOCAL const QoreStringNode* QoreStringNodeValueHelper::operator-> ( )
inline

returns the object being managed

Returns
the object being managed

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