HashAssignmentHelper Class Reference

use this class to make assignments to hash keys from a pointer to the key value More...

`#include <QoreHashNode.h>`

## Public Member Functions

DLLEXPORT | HashAssignmentHelper (QoreHashNode &n_h, const char *key, bool must_already_exist=false)
| constructor taking a const char* More...
DLLEXPORT | HashAssignmentHelper (QoreHashNode &n_h, const std::string &key, bool must_already_exist=false)
| constructor taking a const std::string& More...
DLLEXPORT | HashAssignmentHelper (ExceptionSink *xsink, QoreHashNode &n_h, const QoreString &key, bool must_already_exist=false)
| constructor taking a const QoreString& More...
DLLEXPORT | HashAssignmentHelper (ExceptionSink *xsink, QoreHashNode &n_h, const QoreString *key, bool must_already_exist=false)
| constructor taking a const QoreString& More...
DLLEXPORT | HashAssignmentHelper (HashIterator &hi)
| constructor taking a HashIterator& More...
DLLEXPORT | ~HashAssignmentHelper ()
| destroys the object and does post processing on the new value
DLLEXPORT void | assign (QoreValue v, ExceptionSink *xsink)
| assigns a value to the hash key, dereferences any old value, assumes that the value is already referenced for the assignment More...
DLLEXPORT QoreValue | get () const
| returns the current value of the hash key; the pointer returned is still owned by the hash More...
DLLEXPORT | operator bool () const
| returns true if the object is holding a valid pointer, false if not More...
DLLEXPORT QoreValue | operator* () const
| returns the current value of the hash key; any pointer returned is still owned by the hash More...
DLLEXPORT void | reassign (const char *key, bool must_already_exist=false)
| reassigns the object to the given key for a new assignment More...
DLLEXPORT void | reassign (const std::string &key, bool must_already_exist=false)
| reassigns the object to the given key for a new assignment More...
DLLEXPORT QoreValue | swap (QoreValue v, ExceptionSink *xsink)
| swaps the current value with the new value of the hash key, assumes that the new value is already referenced for the assignment; returns the old value More...

## Protected Attributes

class hash_assignment_priv * | priv
| private implementation

## Detailed Description

use this class to make assignments to hash keys from a pointer to the key value

## Constructor & Destructor Documentation

## HashAssignmentHelper() [1/5]

DLLEXPORT HashAssignmentHelper::HashAssignmentHelper | ( | QoreHashNode & | n_h,
|  | const char * | key,
|  | bool | must_already_exist = `false`
| ) |  |

constructor taking a const char*

Parameters

  n_h | the hash to use
  key | the key to assign
  must_already_exist | if true, then this constructor will only succeed if the key already exists

## HashAssignmentHelper() [2/5]

DLLEXPORT HashAssignmentHelper::HashAssignmentHelper | ( | QoreHashNode & | n_h,
|  | const std::string & | key,
|  | bool | must_already_exist = `false`
| ) |  |

constructor taking a const std::string&

Parameters

  n_h | the hash to use
  key | the key to assign
  must_already_exist | if true, then this constructor will only succeed if the key already exists

## HashAssignmentHelper() [3/5]

DLLEXPORT HashAssignmentHelper::HashAssignmentHelper | ( | ExceptionSink * | xsink,
|  | QoreHashNode & | n_h,
|  | const QoreString & | key,
|  | bool | must_already_exist = `false`
| ) |  |

constructor taking a const QoreString&

this constructor may raise a Qore-language exception if the key argument cannot be successfully converted to the default encoding, in which case no further functions should be called on the object

Parameters

  xsink | the container object for Qore-language exceptions, in case one is thrown trying to covert the key encoding to the default encoding
  n_h | the hash to use
  key | the key to assign
  must_already_exist | if true, then this constructor will only succeed if the key already exists

## HashAssignmentHelper() [4/5]

DLLEXPORT HashAssignmentHelper::HashAssignmentHelper | ( | ExceptionSink * | xsink,
|  | QoreHashNode & | n_h,
|  | const QoreString * | key,
|  | bool | must_already_exist = `false`
| ) |  |

constructor taking a const QoreString&

this constructor may raise a Qore-language exception if the key argument cannot be successfully converted to the default encoding, in which case no further functions should be called on the object

Parameters

  xsink | the container object for Qore-language exceptions, in case one is thrown trying to covert the key encoding to the default encoding
  n_h | the hash to use
  key | the key to assign
  must_already_exist | if true, then this constructor will only succeed if the key already exists

## HashAssignmentHelper() [5/5]

DLLEXPORT HashAssignmentHelper::HashAssignmentHelper | ( | HashIterator & | hi | ) |

constructor taking a HashIterator&

Parameters

  hi | the HashIterator to use for the key and hash

## Member Function Documentation

## assign()

DLLEXPORT void HashAssignmentHelper::assign | ( | QoreValue | v,
|  | ExceptionSink * | xsink
| ) |  |

assigns a value to the hash key, dereferences any old value, assumes that the value is already referenced for the assignment

a Qore-language exception could be raised when the existing value is dereferenced (i.e. if it's an object that goes out of scope and the destructor raises an exception, for example)

## get()

DLLEXPORT QoreValue HashAssignmentHelper::get | ( |  | ) | const

returns the current value of the hash key; the pointer returned is still owned by the hash

Returns
  the current value of the hash key

Since
  Qore 0.9

## operator bool()

DLLEXPORT HashAssignmentHelper::operator bool | ( |  | ) | const

returns true if the object is holding a valid pointer, false if not

in case this function returns false

## operator*()

DLLEXPORT QoreValue HashAssignmentHelper::operator* | ( |  | ) | const

returns the current value of the hash key; any pointer returned is still owned by the hash

Returns
  the current value of the hash key

## reassign() [1/2]

DLLEXPORT void HashAssignmentHelper::reassign | ( | const char * | key,
|  | bool | must_already_exist = `false`
| ) |  |

reassigns the object to the given key for a new assignment

Parameters

  key | the key to assign
  must_already_exist | if true, then this function will not create a new key

Since
  Qore 0.8.12

## reassign() [2/2]

DLLEXPORT void HashAssignmentHelper::reassign | ( | const std::string & | key,
|  | bool | must_already_exist = `false`
| ) |  |

reassigns the object to the given key for a new assignment

Parameters

  key | the key to assign
  must_already_exist | if true, then this function will not create a new key

Since
  Qore 0.8.12

## swap()

DLLEXPORT QoreValue HashAssignmentHelper::swap | ( | QoreValue | v,
|  | ExceptionSink * | xsink
| ) |  |

swaps the current value with the new value of the hash key, assumes that the new value is already referenced for the assignment; returns the old value

could throw a Qore-language exception if there is a type error; in this case 0 is returned and the value passed for the assignment is dereferenced

Returns
  the old value of the hash key including its reference count (the old value is not dereferenced); the caller owns the value returned

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

- include/qore/QoreHashNode.h