diff options
Diffstat (limited to 'document/src/vespa/document/select/context.h')
-rw-r--r-- | document/src/vespa/document/select/context.h | 36 |
1 files changed, 19 insertions, 17 deletions
diff --git a/document/src/vespa/document/select/context.h b/document/src/vespa/document/select/context.h index 11a3a2be51c..0e347e22bb5 100644 --- a/document/src/vespa/document/select/context.h +++ b/document/src/vespa/document/select/context.h @@ -2,9 +2,9 @@ #pragma once #include <vespa/vespalib/stllike/string.h> -#include <vespa/vespalib/stllike/hash_map.h> +#include <memory> -namespace document{ +namespace document { class Document; class DocumentId; @@ -12,24 +12,26 @@ class DocumentUpdate; namespace select { -class Context -{ -public: - typedef vespalib::hash_map<vespalib::string, double> VariableMap; +class Value; +class VariableMap; +class Context { +public: Context(); - Context(const Document& doc); - Context(const DocumentId& docId); - Context(const DocumentUpdate& docUpdate); + Context(const Document & doc); + Context(const DocumentId & docId); + Context(const DocumentUpdate & docUpdate); virtual ~Context(); - const Document * _doc; - const DocumentId * _docId; - const DocumentUpdate * _docUpdate; - VariableMap _variables; -}; - -} // select -} // document + void setVariableMap(std::unique_ptr<VariableMap> map); + std::unique_ptr<Value> getValue(const vespalib::string & value) const; + const Document *_doc; + const DocumentId *_docId; + const DocumentUpdate *_docUpdate; +private: + std::unique_ptr<VariableMap> _variables; +}; +} +} |