24 #ifndef _QORE_QOREHASHNODE_H
26 #define _QORE_QOREHASHNODE_H
28 #include <qore/AbstractQoreNode.h>
47 friend class hash_assignment_priv;
48 friend class qore_object_private;
49 friend class qore_hash_private;
56 DLLLOCAL QoreHashNode& operator=(
const QoreHashNode&);
60 class qore_hash_private *
priv;
246 DLLEXPORT int64
getKeyAsBigInt(
const char* key,
bool &found)
const;
253 DLLEXPORT
bool getKeyAsBool(
const char* key,
bool &found)
const;
258 DLLEXPORT QoreHashNode*
copy()
const;
411 DLLEXPORT
bool empty()
const;
418 DLLEXPORT
bool existsKey(
const char* key)
const;
473 DLLLOCAL
AbstractQoreNode* getReferencedKeyValue(
const char* key,
bool& exists)
const;
475 DLLLOCAL
static void doDuplicateKeyWarning(
const char* key);
478 #include <qore/ReferenceHolder.h>
507 DLLLOCAL HashIterator&
operator=(
const HashIterator&);
510 DLLLOCAL
void*
operator new(size_t);
523 DLLEXPORT
bool next();
529 DLLEXPORT
bool prev();
532 DLLEXPORT
const char*
getKey()
const;
560 DLLEXPORT
bool first()
const;
563 DLLEXPORT
bool last()
const;
566 DLLEXPORT
bool empty()
const;
569 DLLEXPORT
bool valid()
const;
594 DLLEXPORT
bool next();
600 DLLEXPORT
bool prev();
603 DLLEXPORT
bool first()
const;
606 DLLEXPORT
bool last()
const;
644 DLLEXPORT
bool next();
650 DLLEXPORT
bool prev();
653 DLLEXPORT
const char*
getKey()
const;
665 DLLEXPORT
bool first()
const;
668 DLLEXPORT
bool last()
const;
671 DLLEXPORT
bool empty()
const;
674 DLLEXPORT
bool valid()
const;
677 DLLEXPORT
void reset();
702 DLLEXPORT
bool next();
708 DLLEXPORT
bool prev();
711 DLLEXPORT
bool first()
const;
714 DLLEXPORT
bool last()
const;
724 DLLLOCAL HashAssignmentHelper& operator=(
const HashAssignmentHelper&);
727 DLLLOCAL
void*
operator new(size_t);
731 class hash_assignment_priv *
priv;
739 DLLLOCAL HashAssignmentHelper(
QoreHashNode& n_h,
const char* key,
bool must_already_exist =
false);
746 DLLLOCAL HashAssignmentHelper(
QoreHashNode& n_h,
const std::string& key,
bool must_already_exist =
false);
779 DLLLOCAL
operator bool()
const;
800 #endif // _QORE_HASH_H