The unified diff between revisions [5faf8525..] and [9867efd6..] is displayed below. It can also be downloaded as a raw diff.
#
#
# patch "CMakeLists.txt"
# from [b8570d1c8da32bb3f49860f4e186da1ad3dbd59c]
# to [425f98a63acac54685f5ab8466561dcedacfb730]
#
# patch "markov.cc"
# from [49cdf27001d01c35712aba913bf4ac8e7d7f775f]
# to [b0ce6578ebe4d2fdb671a7a0c33f9d41a5e128c5]
#
# patch "markov.hh"
# from [7dab25f5b7ca2e025ff8b7c1933f6a2f89aef7cf]
# to [d6bdb71376cc7dea297ff33c6deaf8eeee58931a]
#
# patch "tokens_test.cc"
# from [9c4d1052169de64388df878bb13cc0e7ca664197]
# to [ec8501546e175fa12130e15c4c5f5641ddf03689]
#
============================================================
--- CMakeLists.txt b8570d1c8da32bb3f49860f4e186da1ad3dbd59c
+++ CMakeLists.txt 425f98a63acac54685f5ab8466561dcedacfb730
@@ -1,28 +1,30 @@
+PROJECT (fritz.it)
-project (fritz.it)
+FIND_PACKAGE (Boost)
+INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIRS})
+LINK_DIRECTORIES(${Boost_LIBRARY_DIRS})
+MESSAGE(STATUS "Linking in::: ${Boost_LIBRARY_DIRS} (${LINK_FLAGS})")
-find_library (LIB_RT rt)
-find_library (LIB_DL dl)
+ADD_EXECUTABLE (fritz_server fritz.cc fritz_server.cc)
+ADD_LIBRARY (fritz_client SHARED fritz_client.cc fritz.cc)
+ADD_EXECUTABLE (fritz_this fritz_this.cc)
+ADD_EXECUTABLE (tokens_test tokens_test.cc markov.cc)
+ADD_EXECUTABLE (test test.cc)
-add_executable (fritz_server fritz.cc fritz_server.cc)
-IF (LIB_RT)
- target_link_libraries (fritz_server ${LIB_RT} dl)
-ENDIF (LIB_RT)
+FIND_LIBRARY (LIB_DL dl)
IF (LIB_DL)
- target_link_libraries (fritz_server ${LIB_DL} dl)
+ TARGET_LINK_LIBRARIES (fritz_server ${LIB_DL} dl)
+ TARGET_LINK_LIBRARIES (fritz_client ${LIB_DL} dl)
ENDIF (LIB_DL)
-add_library (fritz_client SHARED fritz_client.cc fritz.cc)
+FIND_LIBRARY (LIB_RT rt)
IF (LIB_RT)
- target_link_libraries (fritz_client ${LIB_RT} dl)
+ TARGET_LINK_LIBRARIES (fritz_server ${LIB_DL} dl)
+ TARGET_LINK_LIBRARIES (fritz_client ${LIB_DL} dl)
ENDIF (LIB_RT)
-IF (LIB_DL)
- target_link_libraries (fritz_client ${LIB_DL} dl)
-ENDIF (LIB_DL)
-add_executable (fritz_this fritz_this.cc)
+IF (Boost_FOUND)
+ TARGET_LINK_LIBRARIES (fritz_server boost_serialization dl)
+ TARGET_LINK_LIBRARIES (tokens_test boost_serialization dl)
+ENDIF (Boost_FOUND)
-add_executable (tokens_test tokens_test.cc markov.cc)
-
-add_executable (test test.cc)
-
============================================================
--- markov.cc 49cdf27001d01c35712aba913bf4ac8e7d7f775f
+++ markov.cc b0ce6578ebe4d2fdb671a7a0c33f9d41a5e128c5
============================================================
--- markov.hh 7dab25f5b7ca2e025ff8b7c1933f6a2f89aef7cf
+++ markov.hh d6bdb71376cc7dea297ff33c6deaf8eeee58931a
@@ -7,7 +7,12 @@
#include <deque>
#include <map>
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
class MarkovState {
+ friend class boost::serialization::access;
+
public:
std::deque<token_t> state;
bool valid;
@@ -19,6 +24,12 @@ public:
bool operator==(const MarkovState &);
bool operator!=(const MarkovState &);
bool operator<(const MarkovState &);
+ template <class Archive>
+ void serialize(Archive &ar, const unsigned int version)
+ {
+ ar & state;
+ ar & valid;
+ }
};
typedef std::pair< MarkovState, MarkovState > markov_pair;
@@ -87,11 +98,17 @@ private:
class MarkovModel {
private:
std::map<markov_pair, int > edges;
+ friend class boost::serialization::access;
public:
MarkovModel (const Stash&, int);
~MarkovModel ();
void Dump();
+ template <class Archive>
+ void serialize(Archive & ar, const unsigned int version)
+ {
+ ar & edges;
+ }
};
#endif
============================================================
--- tokens_test.cc 9c4d1052169de64388df878bb13cc0e7ca664197
+++ tokens_test.cc ec8501546e175fa12130e15c4c5f5641ddf03689
@@ -1,8 +1,12 @@
#include <iostream>
+#include <fstream>
#include "markov.hh"
#include "tokens.hh"
+#include <boost/archive/text_oarchive.hpp>
+#include <boost/archive/text_iarchive.hpp>
+
using namespace std;
typedef Tokens<string> s_tok;
@@ -42,7 +46,14 @@ test (void)
input_test (t);
// t.playback ();
MarkovModel m(t, 2);
-// m.Dump();
+ m.Dump();
+
+ {
+ int a = 2;
+ std::ofstream ofs ("test.ser");
+ boost::archive::text_oarchive oa(ofs);
+ oa << a;
+ }
}
int