| Qore Programming Language - C/C++ Library 1.0.8

Public Member Functions | List of all members
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 Functions
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 QoreStringNode * | getReferencedValue ()
| 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 QoreStringNode * | operator* ()
| returns the object being managed More...
DLLEXPORT const QoreStringNode * | operator-> ()
| 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

QoreStringNodeValueHelper str(n);
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
QoreStringNodeValueHelper t(node, QCS_UTF8, xsink);
// 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*()

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:

- include/qore/QoreStringNode.h