]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binarywriter.h
Add an abstraction layer for output
[libs/datafile.git] / source / binarywriter.h
index 6ad290451b4502c3566a68668a476a40c7595b82..81b4a46dfe70d0c9851498afbd794ce13e1c9944 100644 (file)
@@ -15,25 +15,27 @@ Writes data in binary format.
 class BinaryWriter: public WriterMode
 {
 private:
-       typedef std::map<DictEntry, unsigned> Dictionary;
+       typedef std::map<DictEntry, int> Dictionary;
        typedef std::map<std::string, unsigned> StringMap;
 
        Dictionary dict;
        unsigned next_kwd_id;
        StringMap strings;
        unsigned next_str_id;
+       unsigned float_precision;
 
 public:
-       BinaryWriter(IO::Base &o);
+       BinaryWriter(Output &o);
 
+       virtual void set_float_precision(unsigned);
        virtual void write(const Statement &st);
 private:
        void write_(const Statement &st);
        void collect_keywords(const Statement &st);
-       void write_int(long long n);
-       void write_string(const std::string &s);
-       void write_float(float f);
-       void write_symbol(const Symbol &s);
+       void write_int(IntType::Store n);
+       void write_string(const StringType::Store &s);
+       void write_float(FloatType::Store f);
+       void write_symbol(const SymbolType::Store &s);
 };
 
 } // namespace DataFile