Changed dump to flat std::ostream.
authorethereal <ethereal@ethv.net>
Wed, 22 Oct 2014 06:10:17 +0000 (23:10 -0700)
committerethereal <ethereal@ethv.net>
Wed, 22 Oct 2014 06:10:17 +0000 (23:10 -0700)
src/main.cpp
src/object/object.hpp
src/object/property.hpp
src/object/store.cpp
src/object/store.hpp
src/object/structure.hpp

index cb1f5c8..051b9d4 100644 (file)
@@ -31,9 +31,8 @@ public:
 };
 
 void dump_all(const char *why, object::store &st) {
-    core::strstream ss;
-    st.dump_all(ss);
-    std::cout << why << std::endl << ss.operator std::string() << std::endl;
+    std::cout << why << std::endl;
+    st.dump_all(std::cout);
 }
 
 int main(int core_unused argc, const char core_unused *argv[]) {
index 7372e45..86cddb6 100644 (file)
@@ -23,7 +23,8 @@ public:
     static constexpr id_t invalid_id = -1;
 private:
     std::unordered_map<std::type_index, boost::any> m_properties;
-    std::unordered_map<std::type_index, std::function<void (core::strstream &, boost::any &)>> m_dump_helpers;
+    std::unordered_map<std::type_index, std::function<void (std::ostream &,
+        boost::any &)>> m_dump_helpers;
     id_t m_id;
     friend class ref;
     store &m_store;
@@ -64,13 +65,13 @@ public:
 
     template<typename T>
     bool set(T && v) {
-        std::function<void (core::strstream &, boost::any &)> wrapper_fct(dump_wrapper<T>);
+        std::function<void (std::ostream &, boost::any &)> wrapper_fct(dump_wrapper<T>);
         m_dump_helpers[std::type_index(typeid(T))] = wrapper_fct;
         return m_properties.insert(
             std::make_pair(std::type_index(typeid(T)), v)).second;
     }
 
-    void dump(core::strstream &into) {
+    void dump(std::ostream &into) {
         into << "[Object " << m_id << "] = {";
         bool first = true;
         for(auto &prop : m_properties) {
@@ -84,7 +85,7 @@ public:
     }
 private:
     template<typename T>
-    static void dump_wrapper(core::strstream &s, boost::any &p) {
+    static void dump_wrapper(std::ostream &s, boost::any &p) {
         boost::any_cast<T>(p).dump(s);
     }
 };
index 6a3df06..0b90e43 100644 (file)
@@ -9,7 +9,7 @@ class property {
 public:
     virtual ~property() = default;
 
-    virtual void dump(core::strstream &) {}
+    virtual void dump(std::ostream &) {}
 };
 
 } // namespace object
index 3690967..6aecf66 100644 (file)
@@ -41,7 +41,7 @@ void store::gc() {
     for(auto id : todestroy) destroy(id);
 }
 
-void store::dump_all(core::strstream &into) {
+void store::dump_all(std::ostream &into) {
     for(auto &object : m_objects) {
         object.second.dump(into);
         into << "\n";
index cbe6253..6a141e4 100644 (file)
@@ -48,7 +48,7 @@ public:
 
     void gc();
 
-    void dump_all(core::strstream &into);
+    void dump_all(std::ostream &into);
 };
 
 } // namespace object
index 6df5350..b45b623 100644 (file)
@@ -36,7 +36,7 @@ struct structure_property : public property {
 public:
     std::map<object::id_t, std::map<object::id_t, ref>> links;
 
-    virtual void dump(core::strstream &into) {
+    virtual void dump(std::ostream &into) {
         bool first = true;
         for(auto p : links) {
             if(!first) into << ", ";