summaryrefslogtreecommitdiffstats
path: root/vdslib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2016-12-02 15:40:36 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2016-12-12 02:55:44 +0100
commitf2fd8d33d46edb8b3c4351d14f4abbc386ffbabf (patch)
tree087f1b61806834edd4349fb52ba69c5b1dd34756 /vdslib
parentf97313b7611fc90f87c656c61c97ff2baa0b22a7 (diff)
Include asciistream in implementation only.
Diffstat (limited to 'vdslib')
-rw-r--r--vdslib/src/vespa/vdslib/container/parameters.cpp24
-rw-r--r--vdslib/src/vespa/vdslib/container/parameters.h29
-rw-r--r--vdslib/src/vespa/vdslib/container/parameters.hpp28
-rw-r--r--vdslib/src/vespa/vdslib/container/writabledocumentlist.cpp5
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>