From 9a0859212de4d1304f9392fe910921227421c8c3 Mon Sep 17 00:00:00 2001
From: Patrick Simianer
Date: Sat, 16 Aug 2014 21:25:52 +0100
Subject: cleanup
---
src/test_msgpack_streaming.cc | 99 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 99 insertions(+)
create mode 100644 src/test_msgpack_streaming.cc
(limited to 'src/test_msgpack_streaming.cc')
diff --git a/src/test_msgpack_streaming.cc b/src/test_msgpack_streaming.cc
new file mode 100644
index 0000000..1a3cf55
--- /dev/null
+++ b/src/test_msgpack_streaming.cc
@@ -0,0 +1,99 @@
+#include
+#include
+#include
+#include
+#include
+
+using namespace std;
+
+
+
+struct Node {
+ int id;
+ string cat;
+ vector span;
+
+ MSGPACK_DEFINE(id, cat, span);
+};
+
+struct Vector {
+ double CountEF;
+ double EgivenFCoherent;
+ double Glue;
+ double IsSingletonF;
+ double IsSingletonFE;
+ double LanguageModel;
+ double LanguageModel_OOV;
+ double MaxLexFgivenE;
+ double MaxLexEgivenF;
+ double PassThrough;
+ double PassThrough_1;
+ double PassThrough_2;
+ double PassThrough_3;
+ double PassThrough_4;
+ double PassThrough_5;
+ double PassThrough_6;
+ double SampleCountF;
+ double WordPenalty;
+
+ MSGPACK_DEFINE(CountEF, EgivenFCoherent, Glue, IsSingletonF, IsSingletonFE, LanguageModel, LanguageModel_OOV, MaxLexEgivenF, MaxLexFgivenE, PassThrough, PassThrough_1, PassThrough_2, PassThrough_3, PassThrough_4, PassThrough_5, PassThrough_6, SampleCountF, WordPenalty);
+};
+
+struct Edge {
+ int head;
+ string rule;
+ vector tails;
+ Vector f;
+ double weight;
+
+ MSGPACK_DEFINE(head, rule, tails, f, weight);
+};
+
+struct Hg {
+ Vector weights;
+ vector nodes;
+ vector edges;
+
+ MSGPACK_DEFINE(weights, nodes, edges);
+};
+
+int
+main(int argc, char** argv) {
+ ifstream ifs(argv[1]);
+
+ size_t count = 0, n_, e_;
+ msgpack::unpacker pac;
+ while(true) {
+ pac.reserve_buffer(32*1024);
+ size_t bytes = ifs.readsome(pac.buffer(), pac.buffer_capacity());
+ pac.buffer_consumed(bytes);
+ msgpack::unpacked result;
+ while(pac.next(&result)) {
+ msgpack::object obj = result.get();
+ if (count == 0) {
+ obj.convert(&n_);
+ n_ += 2;
+ } else if (count == 1) {
+ obj.convert(&e_);
+ e_ += 2;
+ } else if (count == 2) {
+ Vector v;
+ obj.convert(&v);
+ } else if (count > 2 && count <= n_) {
+ Node n;
+ obj.convert(&n);
+ } else if (count > n_ && count <= n_+e_+1) {
+ Edge e;
+ obj.convert(&e);
+ string s = e.rule.substr(1, 4);
+ if (s == "Goal")
+ cout << s << endl;
+ }
+ count++;
+ }
+ if (!bytes) break;
+ }
+
+ return 0;
+}
+
--
cgit v1.2.3