X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbinarywriter.h;h=f028f39d96f811775a30a9d9a0fa2b730a3fe9e2;hb=5c98c1f499413c41fd46ddf71a46b481338d7d6b;hp=cf8f9fcaa016c35bfedb9172a6c0c76c940b00d5;hpb=27630d44298cb67e075c166f4421288cc8ca117e;p=libs%2Fdatafile.git diff --git a/source/binarywriter.h b/source/binarywriter.h index cf8f9fc..f028f39 100644 --- a/source/binarywriter.h +++ b/source/binarywriter.h @@ -1,10 +1,3 @@ -/* $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_ @@ -15,23 +8,26 @@ Distributed under the LGPL namespace Msp { namespace DataFile { +/** +Writes data in binary format. +*/ 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(std::ostream &o); - void write(const Statement &st); + BinaryWriter(IO::Base &o); + + 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);