Qore Programming Language  0.9.0
QoreStringValueHelper Class Reference

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

#include <QoreStringNode.h>

Collaboration diagram for QoreStringValueHelper:

Public Member Methods

DLLEXPORT QoreStringValueHelper (const QoreValue n)
 creates the object and acquires a pointer to the QoreString representation of the QoreValue passed
 
DLLEXPORT QoreStringValueHelper (const QoreValue n, const QoreEncoding *enc, ExceptionSink *xsink)
 gets the QoreString representation and ensures that it's in the desired encoding More...
 
DLLLOCAL ~QoreStringValueHelper ()
 destroys the object and deletes the QoreString pointer being managed if it was a temporary pointer
 
DLLLOCAL char * giveBuffer ()
 returns a char* string that the caller owns and must free() More...
 
DLLLOCAL QoreStringgiveString ()
 returns a copy of the QoreString that the caller owns More...
 
DLLLOCAL bool is_temp () const
 returns true if the pointer being managed is temporary
 
DLLLOCAL const QoreStringoperator* ()
 returns the object being managed More...
 
DLLLOCAL const QoreStringoperator-> ()
 returns the object being managed More...
 

Private Member Methods

DLLLOCAL QoreStringValueHelper (const QoreStringValueHelper &)
 this function is not implemented; it is here as a private function in order to prohibit it from being used
 
DLLLOCAL void * operator new (size_t)
 this function is not implemented; it is here as a private function in order to prohibit it from being used
 
DLLLOCAL QoreStringValueHelperoperator= (const QoreStringValueHelper &)
 this function is not implemented; it is here as a private function in order to prohibit it from being used
 
DLLLOCAL void setup (ExceptionSink *xsink, const QoreValue n, const QoreEncoding *enc=0)
 sets up the object / common initialization
 

Detailed Description

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

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

printf("str='%s'\n", str->getBuffer());

Constructor & Destructor Documentation

◆ QoreStringValueHelper()

DLLEXPORT QoreStringValueHelper::QoreStringValueHelper ( 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

◆ giveBuffer()

DLLLOCAL char* QoreStringValueHelper::giveBuffer ( )
inline

returns a char* string that the caller owns and must free()

the object is empty after this call

◆ giveString()

DLLLOCAL QoreString* QoreStringValueHelper::giveString ( )
inline

returns a copy of the QoreString that the caller owns

the object may be left empty after this call

Returns
a QoreString pointer owned by the caller

◆ operator*()

DLLLOCAL const QoreString* QoreStringValueHelper::operator* ( )
inline

returns the object being managed

Returns
the object being managed

◆ operator->()

DLLLOCAL const QoreString* QoreStringValueHelper::operator-> ( )
inline

returns the object being managed

Returns
the object being managed

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