32 #ifndef _QORE_QOREKEYSOPERATORNODE_H
34 #define _QORE_QOREKEYSOPERATORNODE_H
36 #include "qore/intern/FunctionalOperator.h"
37 #include "qore/intern/FunctionalOperatorInterface.h"
39 class QoreKeysOperatorNode :
public QoreSingleExpressionOperatorNode<QoreOperatorNode>,
public FunctionalOperator {
41 const QoreTypeInfo* returnTypeInfo;
47 DLLLOCAL
virtual int parseInitImpl(
QoreValue& val, QoreParseContext& parse_context);
49 DLLLOCAL
virtual const QoreTypeInfo* getTypeInfo()
const {
50 return returnTypeInfo;
53 DLLLOCAL
virtual FunctionalOperatorInterface* getFunctionalIteratorImpl(FunctionalValueType& value_type,
57 DLLLOCAL QoreKeysOperatorNode(
const QoreProgramLocation* loc,
QoreValue exp)
58 : QoreSingleExpressionOperatorNode<QoreOperatorNode>(loc, exp), returnTypeInfo(nullptr) {
61 DLLLOCAL
virtual ~QoreKeysOperatorNode() {
69 DLLLOCAL
virtual const char* getTypeName()
const {
70 return keys_str.getBuffer();
73 DLLLOCAL
virtual QoreOperatorNode* copyBackground(
ExceptionSink* xsink)
const {
74 return copyBackgroundExplicit<QoreKeysOperatorNode>(xsink);
78 class QoreFunctionalKeysOperator :
public FunctionalOperatorInterface,
public ConstHashIterator {
83 DLLLOCAL
virtual ~QoreFunctionalKeysOperator() {
91 DLLLOCAL
virtual const QoreTypeInfo* getValueTypeImpl()
const {
92 return stringTypeInfo;
DLLEXPORT void deref(ExceptionSink *xsink)
decrements the reference count and calls derefImpl() if there_can_be_only_one is false,...
constant iterator class for QoreHashNode, to be only created on the stack
Definition: QoreHashNode.h:577
DLLEXPORT const QoreHashNode * getHash() const
returns the hash
container for holding Qore-language exception information and also for registering a "thread_exit" ca...
Definition: ExceptionSink.h:48
This is the hash or associative list container type in Qore, dynamically allocated only,...
Definition: QoreHashNode.h:50
Qore's string type supported by the QoreEncoding class.
Definition: QoreString.h:93
allows storing a value and setting a boolean flag that indicates if the value should be dereference i...
Definition: QoreValue.h:509
The main value class in Qore, designed to be passed by value.
Definition: QoreValue.h:275