diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2016-12-02 15:40:36 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2016-12-12 02:55:44 +0100 |
commit | f2fd8d33d46edb8b3c4351d14f4abbc386ffbabf (patch) | |
tree | 087f1b61806834edd4349fb52ba69c5b1dd34756 /vdslib | |
parent | f97313b7611fc90f87c656c61c97ff2baa0b22a7 (diff) |
Include asciistream in implementation only.
Diffstat (limited to 'vdslib')
-rw-r--r-- | vdslib/src/vespa/vdslib/container/parameters.cpp | 24 | ||||
-rw-r--r-- | vdslib/src/vespa/vdslib/container/parameters.h | 29 | ||||
-rw-r--r-- | vdslib/src/vespa/vdslib/container/parameters.hpp | 28 | ||||
-rw-r--r-- | vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp | 5 |
4 files changed, 60 insertions, 26 deletions
diff --git a/vdslib/src/vespa/vdslib/container/parameters.cpp b/vdslib/src/vespa/vdslib/container/parameters.cpp index cbf5e3a9979..0a0fefdb255 100644 --- a/vdslib/src/vespa/vdslib/container/parameters.cpp +++ b/vdslib/src/vespa/vdslib/container/parameters.cpp @@ -1,11 +1,18 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> -#include <vespa/vdslib/container/parameters.h> +#include "parameters.hpp" #include <vespa/vespalib/objects/nbostream.h> using namespace vdslib; +Parameters::Parameters() : _parameters() { } + +Parameters::Parameters(const document::DocumentTypeRepo &repo, document::ByteBuffer& buffer) + : _parameters() +{ + deserialize(repo, buffer); +} + Parameters::~Parameters() { } @@ -30,8 +37,7 @@ void Parameters::onSerialize(document::ByteBuffer& buffer) const } } -void Parameters::onDeserialize(const document::DocumentTypeRepo &repo, - document::ByteBuffer& buffer) +void Parameters::onDeserialize(const document::DocumentTypeRepo &repo, document::ByteBuffer& buffer) { (void) repo; _parameters.clear(); @@ -149,3 +155,13 @@ std::string Parameters::toString() const } return ret; } + +template void vdslib::Parameters::set(const vespalib::stringref &, int); +template void vdslib::Parameters::set(const vespalib::stringref &, long); +template void vdslib::Parameters::set(const vespalib::stringref &, double); +template void vdslib::Parameters::set(const vespalib::stringref &, const char *); +template void vdslib::Parameters::set(const vespalib::stringref &, std::string); +template int vdslib::Parameters::get(const vespalib::stringref &, int) const; +template long vdslib::Parameters::get(const vespalib::stringref &, long) const; +template double vdslib::Parameters::get(const vespalib::stringref &, double) const; +template std::string vdslib::Parameters::get(const vespalib::stringref &, std::string) const;
\ No newline at end of file diff --git a/vdslib/src/vespa/vdslib/container/parameters.h b/vdslib/src/vespa/vdslib/container/parameters.h index b687e8aa1b0..2a551d6ff39 100644 --- a/vdslib/src/vespa/vdslib/container/parameters.h +++ b/vdslib/src/vespa/vdslib/container/parameters.h @@ -16,9 +16,12 @@ #include <vespa/document/util/serializable.h> #include <vespa/document/util/xmlserializable.h> -#include <vespa/vespalib/stllike/asciistream.h> #include <vespa/vespalib/stllike/hash_map.h> +namespace vespalib { + class asciistream; +} + namespace vdslib { class Parameters : public document::Deserializable, @@ -40,15 +43,12 @@ private: ParametersMap _parameters; void onSerialize(document::ByteBuffer& buffer) const; - void onDeserialize(const document::DocumentTypeRepo &repo, - document::ByteBuffer& buffer); + void onDeserialize(const document::DocumentTypeRepo &repo, document::ByteBuffer& buffer); void printXml(document::XmlOutputStream& xos) const; public: - Parameters() : _parameters() {} - Parameters(const document::DocumentTypeRepo &repo, - document::ByteBuffer& buffer) - : _parameters() { deserialize(repo, buffer); } + Parameters(); + Parameters(const document::DocumentTypeRepo &repo, document::ByteBuffer& buffer); virtual ~Parameters(); bool operator==(const Parameters &other) const; @@ -78,11 +78,7 @@ public: * @param t The value to save. Will be converted to a string. */ template<typename T> - void set(const KeyT & id, const T& t) { - vespalib::asciistream ost; - ost << t; - _parameters[id] = ost.str(); - } + void set(const KeyT & id, T t); /** * Get the value identified by the id given, as the same type as the default @@ -94,14 +90,7 @@ public: * the default itself if value did not exist. */ template<typename T> - T get(const KeyT & id, const T& def) const { - vespalib::stringref ref; - if (!get(id, ref)) return def; - vespalib::asciistream ist(ref); - T t; - ist >> t; - return t; - } + T get(const KeyT & id, T def) const; std::string toString() const; }; diff --git a/vdslib/src/vespa/vdslib/container/parameters.hpp b/vdslib/src/vespa/vdslib/container/parameters.hpp new file mode 100644 index 00000000000..192b4c74ebe --- /dev/null +++ b/vdslib/src/vespa/vdslib/container/parameters.hpp @@ -0,0 +1,28 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#pragma once + +#include "parameters.h" +#include <vespa/vespalib/stllike/asciistream.h> + +namespace vdslib { + +template<typename T> +void +Parameters::set(const KeyT & id, T t) { + vespalib::asciistream ost; + ost << t; + _parameters[id] = ost.str(); +} + +template<typename T> +T +Parameters::get(const KeyT & id, T def) const { + vespalib::stringref ref; + if (!get(id, ref)) return def; + vespalib::asciistream ist(ref); + T t; + ist >> t; + return t; +} + +} diff --git a/vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp b/vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp index 818c3847a45..f90c4101c3c 100644 --- a/vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp +++ b/vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp @@ -1,6 +1,7 @@ // Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -#include <vespa/fastos/fastos.h> -#include <vespa/vdslib/container/writabledocumentlist.h> + +#include "writabledocumentlist.h" +#include <vespa/vespalib/util/exceptions.h> #include <vespa/log/log.h> |