X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbinarywriter.h;h=4d18196663d377e9bdf992748a9021e0a845e902;hb=818ead7b6ccef1e4d2435cc959bc07f910fcde46;hp=118f66b0d6cebdf75ea1d985a60e2ca66d9c6d50;hpb=6dd94a7fe90c6467024685fbac769067ddb74688;p=libs%2Fdatafile.git diff --git a/source/binarywriter.h b/source/binarywriter.h index 118f66b..4d18196 100644 --- a/source/binarywriter.h +++ b/source/binarywriter.h @@ -1,15 +1,9 @@ -/* $Id$ - -This file is part of libmspdatafile -Copyright © 2006 Mikko Rasa, Mikkosoft Productions -Distributed under the LGPL -*/ - #ifndef MSP_DATAFILE_BINARYWRITER_H_ #define MSP_DATAFILE_BINARYWRITER_H_ #include #include "binarydict.h" +#include "type.h" #include "writermode.h" namespace Msp { @@ -22,24 +16,24 @@ class BinaryWriter: public WriterMode { private: typedef std::map Dictionary; - typedef std::map EnumMap; + typedef std::map StringMap; Dictionary dict; - unsigned next_st_id; - EnumMap enums; - unsigned next_enum_id; + unsigned next_kwd_id; + StringMap strings; + unsigned next_str_id; public: BinaryWriter(IO::Base &o); - void write(const Statement &st); + + virtual void write(const Statement &st); private: void write_(const Statement &st); - DictEntry create_entry(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_enum(const std::string &e); + 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