summaryrefslogtreecommitdiffstats
path: root/staging_vespalib
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2017-01-05 11:21:23 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2017-01-05 11:47:21 +0000
commit9a70779d68a5f9ab211d97b69a932a1043052ff6 (patch)
tree7af51fe4c78b54dfcda6480b364bf546c2a549e5 /staging_vespalib
parent2215bcf9d1ba62af6906769f666665b226b1ba20 (diff)
Move trace slime serialization too vespa.
Diffstat (limited to 'staging_vespalib')
-rw-r--r--staging_vespalib/CMakeLists.txt1
-rw-r--r--staging_vespalib/src/module.conf.rhel68
-rw-r--r--staging_vespalib/src/testlist.txt1
-rw-r--r--staging_vespalib/src/tests/trace/.gitignore1
-rw-r--r--staging_vespalib/src/tests/trace/CMakeLists.txt8
-rw-r--r--staging_vespalib/src/tests/trace/trace.cpp110
-rw-r--r--staging_vespalib/src/vespa/vespalib/CMakeLists.txt1
-rw-r--r--staging_vespalib/src/vespa/vespalib/trace/CMakeLists.txt7
-rw-r--r--staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.cpp68
-rw-r--r--staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.h31
-rw-r--r--staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.cpp62
-rw-r--r--staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.h32
12 files changed, 0 insertions, 330 deletions
diff --git a/staging_vespalib/CMakeLists.txt b/staging_vespalib/CMakeLists.txt
index 0f08ddc6791..65cd8bb8630 100644
--- a/staging_vespalib/CMakeLists.txt
+++ b/staging_vespalib/CMakeLists.txt
@@ -43,6 +43,5 @@ vespa_define_module(
src/vespa/vespalib/net
src/vespa/vespalib/objects
src/vespa/vespalib/stllike
- src/vespa/vespalib/trace
src/vespa/vespalib/util
)
diff --git a/staging_vespalib/src/module.conf.rhel6 b/staging_vespalib/src/module.conf.rhel6
deleted file mode 100644
index 5867773215b..00000000000
--- a/staging_vespalib/src/module.conf.rhel6
+++ /dev/null
@@ -1,8 +0,0 @@
-module staging_vespalib
-require module fastos shared library fastos
-require module log shared library vespalog
-require module fastlib shared library fast
-require module vespalib shared library vespalib
-require module fnet shared library fnet
-require module boost
-provide library staging_vespalib
diff --git a/staging_vespalib/src/testlist.txt b/staging_vespalib/src/testlist.txt
index 3856ebba9b8..f29e51218ec 100644
--- a/staging_vespalib/src/testlist.txt
+++ b/staging_vespalib/src/testlist.txt
@@ -23,6 +23,5 @@ tests/shutdownguard
tests/state_server
tests/stllike
tests/timer
-tests/trace
tests/util/process_memory_stats
tests/xmlserializable
diff --git a/staging_vespalib/src/tests/trace/.gitignore b/staging_vespalib/src/tests/trace/.gitignore
deleted file mode 100644
index 14ed55a124e..00000000000
--- a/staging_vespalib/src/tests/trace/.gitignore
+++ /dev/null
@@ -1 +0,0 @@
-staging_vespalib_trace_test_app
diff --git a/staging_vespalib/src/tests/trace/CMakeLists.txt b/staging_vespalib/src/tests/trace/CMakeLists.txt
deleted file mode 100644
index 9eeef16e6ea..00000000000
--- a/staging_vespalib/src/tests/trace/CMakeLists.txt
+++ /dev/null
@@ -1,8 +0,0 @@
-# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_executable(staging_vespalib_trace_test_app TEST
- SOURCES
- trace.cpp
- DEPENDS
- staging_vespalib
-)
-vespa_add_test(NAME staging_vespalib_trace_test_app COMMAND staging_vespalib_trace_test_app)
diff --git a/staging_vespalib/src/tests/trace/trace.cpp b/staging_vespalib/src/tests/trace/trace.cpp
deleted file mode 100644
index a7896d43338..00000000000
--- a/staging_vespalib/src/tests/trace/trace.cpp
+++ /dev/null
@@ -1,110 +0,0 @@
-// 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/log/log.h>
-LOG_SETUP("trace_test");
-#include <vespa/vespalib/testkit/test_kit.h>
-#include <vespa/vespalib/trace/tracenode.h>
-#include <vespa/vespalib/trace/slime_trace_serializer.h>
-#include <vespa/vespalib/trace/slime_trace_deserializer.h>
-
-using namespace vespalib;
-using namespace vespalib::slime;
-
-TEST("that a single trace node is serialized") {
- TraceNode node;
- Slime slime;
- SlimeTraceSerializer serializer(slime.setObject());
- node.accept(serializer);
- Inspector & i(slime.get());
- EXPECT_TRUE(i["timestamp"].valid());
- EXPECT_EQUAL(0l, i["timestamp"].asLong());
- EXPECT_FALSE(i["payload"].valid());
-}
-
-TEST("that a trace node with children is serialized") {
- TraceNode node;
- node.addChild("foo", 1234);
- node.addChild("bar", 1235);
- Slime slime;
- SlimeTraceSerializer serializer(slime.setObject());
- node.accept(serializer);
- Inspector & i(slime.get());
- EXPECT_TRUE(i["timestamp"].valid());
- EXPECT_EQUAL(0l, i["timestamp"].asLong());
- EXPECT_TRUE(i["children"].valid());
- Inspector & iBar(i["children"][0]);
- Inspector & iFoo(i["children"][1]);
- EXPECT_TRUE(iFoo.valid());
- EXPECT_TRUE(iBar.valid());
- EXPECT_EQUAL(1234, iFoo["timestamp"].asLong());
- EXPECT_EQUAL("foo", iFoo["payload"].asString().make_string());
- EXPECT_EQUAL(1235, iBar["timestamp"].asLong());
- EXPECT_EQUAL("bar", iBar["payload"].asString().make_string());
-}
-
-TEST("that an empty root trace node can be deserialized") {
- Slime slime;
- Cursor & root(slime.setObject());
- SlimeTraceDeserializer deserializer(root);
- TraceNode node(deserializer.deserialize());
- EXPECT_FALSE(node.hasNote());
- EXPECT_EQUAL(0, node.getTimestamp());
-}
-
-
-TEST("that a single trace node can be deserialized") {
- Slime slime;
- Cursor & root(slime.setObject());
- root.setLong("timestamp", 1234);
- root.setString("payload", "hello");
- SlimeTraceDeserializer deserializer(root);
- TraceNode node(deserializer.deserialize());
- EXPECT_EQUAL(1234, node.getTimestamp());
- EXPECT_TRUE(node.hasNote());
- EXPECT_EQUAL("hello", node.getNote());
-}
-
-TEST("that a trace node with children can be deserialized") {
- Slime slime;
- Cursor & root(slime.setObject());
- Cursor & rootChildren(root.setArray("children"));
- Cursor & foo(rootChildren.addObject());
- foo.setLong("timestamp", 123);
- Cursor &fooArray(foo.setArray("children"));
- Cursor &foobar(fooArray.addObject());
- foobar.setLong("timestamp", 45);
- foobar.setString("payload", "world");
- Cursor & bar(rootChildren.addObject());
- bar.setLong("timestamp", 67);
- bar.setString("payload", "!");
-
- vespalib::slime::SimpleBuffer buf;
- vespalib::slime::JsonFormat::encode(slime, buf, false);
-
- SlimeTraceDeserializer deserializer(root);
- TraceNode node(deserializer.deserialize());
- EXPECT_FALSE(node.hasNote());
- ASSERT_EQUAL(2u, node.getNumChildren());
- TraceNode fooNode(node.getChild(0));
- ASSERT_EQUAL(1u, fooNode.getNumChildren());
- TraceNode fooBarNode(fooNode.getChild(0));
- EXPECT_EQUAL("world", fooBarNode.getNote());
- TraceNode barNode(node.getChild(1));
- EXPECT_EQUAL("!", barNode.getNote());
- ASSERT_EQUAL(0u, barNode.getNumChildren());
-}
-
-TEST("test serialization and deserialization") {
- TraceNode root;
- root.addChild("foo", 45);
- root.addChild("bar");
- root.addChild(TraceNode());
- Slime slime;
- SlimeTraceSerializer s(slime.setObject());
- root.accept(s);
- SlimeTraceDeserializer d(slime.get());
- TraceNode root2(d.deserialize());
- ASSERT_EQUAL(3u, root2.getNumChildren());
-}
-
-TEST_MAIN() { TEST_RUN_ALL(); }
diff --git a/staging_vespalib/src/vespa/vespalib/CMakeLists.txt b/staging_vespalib/src/vespa/vespalib/CMakeLists.txt
index 640278a583b..6c5ad7b0dee 100644
--- a/staging_vespalib/src/vespa/vespalib/CMakeLists.txt
+++ b/staging_vespalib/src/vespa/vespalib/CMakeLists.txt
@@ -7,7 +7,6 @@ vespa_add_library(staging_vespalib
$<TARGET_OBJECTS:staging_vespalib_vespalib_objects>
$<TARGET_OBJECTS:staging_vespalib_vespalib_stllike>
$<TARGET_OBJECTS:staging_vespalib_vespalib_net>
- $<TARGET_OBJECTS:staging_vespalib_vespalib_trace>
INSTALL lib64
DEPENDS
)
diff --git a/staging_vespalib/src/vespa/vespalib/trace/CMakeLists.txt b/staging_vespalib/src/vespa/vespalib/trace/CMakeLists.txt
deleted file mode 100644
index f2e583a2dfa..00000000000
--- a/staging_vespalib/src/vespa/vespalib/trace/CMakeLists.txt
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-vespa_add_library(staging_vespalib_vespalib_trace OBJECT
- SOURCES
- slime_trace_serializer.cpp
- slime_trace_deserializer.cpp
- DEPENDS
-)
diff --git a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.cpp b/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.cpp
deleted file mode 100644
index fc28dfbb40b..00000000000
--- a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/trace/slime_trace_deserializer.h>
-#include <vespa/vespalib/trace/slime_trace_serializer.h>
-#include <vespa/vespalib/trace/tracenode.h>
-
-using namespace vespalib::slime;
-
-namespace vespalib {
-
-SlimeTraceDeserializer::SlimeTraceDeserializer(const Inspector & inspector)
- : _inspector(inspector)
-{
-}
-
-TraceNode
-SlimeTraceDeserializer::deserialize() const
-{
- return deserialize(_inspector);
-}
-
-TraceNode
-SlimeTraceDeserializer::deserialize(const Inspector & inspector)
-{
- TraceNode node(deserializeTraceNode(inspector));
- deserializeChildren(inspector[SlimeTraceSerializer::CHILDREN], node);
- return node;
-}
-
-TraceNode
-SlimeTraceDeserializer::deserializeTraceNode(const Inspector & inspector)
-{
- int64_t timestamp(decodeTimestamp(inspector));
- if (hasPayload(inspector)) {
- std::string note(decodePayload(inspector));
- return TraceNode(note, timestamp);
- }
- return TraceNode(timestamp);
-}
-
-bool
-SlimeTraceDeserializer::hasPayload(const Inspector & inspector)
-{
- return inspector[SlimeTraceSerializer::PAYLOAD].valid();
-}
-
-vespalib::string
-SlimeTraceDeserializer::decodePayload(const Inspector & inspector)
-{
- return inspector[SlimeTraceSerializer::PAYLOAD].asString().make_string();
-}
-
-int64_t
-SlimeTraceDeserializer::decodeTimestamp(const Inspector & inspector)
-{
- return inspector[SlimeTraceSerializer::TIMESTAMP].asLong();
-}
-
-void
-SlimeTraceDeserializer::deserializeChildren(const Inspector & inspector, TraceNode & node)
-{
- for (size_t i(0); i < inspector.children(); i++) {
- Inspector & child(inspector[i]);
- TraceNode childNode(deserialize(child));
- node.addChild(childNode);
- }
-}
-
-}
diff --git a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.h b/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.h
deleted file mode 100644
index dc8c6dc5cff..00000000000
--- a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_deserializer.h
+++ /dev/null
@@ -1,31 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#pragma once
-
-#include <vespa/vespalib/data/slime/slime.h>
-#include <vespa/vespalib/stllike/string.h>
-#include <stack>
-
-namespace vespalib {
-
-class TraceNode;
-
-/**
- * For deserializing a TraceNode and its children. Note that the ordering of nodes
- * are NOT guaranteed.
- */
-class SlimeTraceDeserializer
-{
-public:
- SlimeTraceDeserializer(const slime::Inspector & inspector);
- TraceNode deserialize() const;
-private:
- static TraceNode deserialize(const slime::Inspector & inspector);
- static TraceNode deserializeTraceNode(const slime::Inspector & inspector);
- static void deserializeChildren(const slime::Inspector & inspector, TraceNode & node);
- static bool hasPayload(const slime::Inspector & inspector);
- static int64_t decodeTimestamp(const slime::Inspector & inspector);
- static vespalib::string decodePayload(const slime::Inspector & inspector);
- const slime::Inspector & _inspector;
-};
-
-}
diff --git a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.cpp b/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.cpp
deleted file mode 100644
index 4332d6bf045..00000000000
--- a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.cpp
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/trace/slime_trace_serializer.h>
-#include <vespa/vespalib/trace/trace.h>
-
-using namespace vespalib::slime;
-
-namespace vespalib {
-
-const Memory SlimeTraceSerializer::TIMESTAMP("timestamp");
-const Memory SlimeTraceSerializer::PAYLOAD("payload");
-const Memory SlimeTraceSerializer::CHILDREN("children");
-
-SlimeTraceSerializer::SlimeTraceSerializer(Cursor & cursor)
- : _cursors()
-{
- _cursors.push(&cursor);
-}
-
-void
-SlimeTraceSerializer::visit(const TraceNode & node)
-{
- assert(!_cursors.empty());
- Cursor * current(_cursors.top());
- assert(current != NULL);
- _cursors.pop();
- addTimestamp(*current, node);
- addPayload(*current, node);
- addChildrenCursors(*current, node);
-}
-
-void
-SlimeTraceSerializer::addTimestamp(Cursor & current, const TraceNode & node)
-{
- current.setLong(TIMESTAMP, node.getTimestamp());
-}
-
-void
-SlimeTraceSerializer::addPayload(Cursor & current, const TraceNode & node)
-{
- if (node.hasNote()) {
- current.setString(PAYLOAD, Memory(node.getNote()));
- }
-}
-
-void
-SlimeTraceSerializer::addChildrenCursors(Cursor & current, const TraceNode & node)
-{
- if (node.getNumChildren() > 0) {
- addChildrenCursorsToStack(current.setArray(CHILDREN), node);
- }
-}
-
-void
-SlimeTraceSerializer::addChildrenCursorsToStack(Cursor & childrenArray, const TraceNode & node)
-{
- for (uint32_t childIndex(0); childIndex < node.getNumChildren(); childIndex++) {
- Cursor & child(childrenArray.addObject());
- _cursors.push(&child);
- }
-}
-
-}
diff --git a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.h b/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.h
deleted file mode 100644
index 3b50f0878bf..00000000000
--- a/staging_vespalib/src/vespa/vespalib/trace/slime_trace_serializer.h
+++ /dev/null
@@ -1,32 +0,0 @@
-// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#pragma once
-
-#include <vespa/vespalib/trace/tracevisitor.h>
-#include <vespa/vespalib/data/slime/slime.h>
-#include <stack>
-
-namespace vespalib {
-
-class TraceNode;
-
-/**
- * A serializer of TraceNodes using the TraceVisitor API. The serialized order of the nodes are NOT
- * guaranteed to be in the same order as the original.
- */
-class SlimeTraceSerializer : public TraceVisitor
-{
-public:
- SlimeTraceSerializer(slime::Cursor & cursor);
- void visit(const TraceNode & node);
- static const slime::Memory TIMESTAMP;
- static const slime::Memory PAYLOAD;
- static const slime::Memory CHILDREN;
-private:
- void addTimestamp(slime::Cursor & current, const TraceNode & node);
- void addPayload(slime::Cursor & current, const TraceNode & node);
- void addChildrenCursors(slime::Cursor & current, const TraceNode & node);
- void addChildrenCursorsToStack(slime::Cursor & childrenArray, const TraceNode & node);
- std::stack<slime::Cursor *> _cursors;
-};
-
-}