]> git.tdb.fi Git - libs/datafile.git/blobdiff - source/binaryparser.h
More efficient way of loading binary files
[libs/datafile.git] / source / binaryparser.h
index 255209a971bed7fdd5e7149e7a9dd20a8fb30cd4..dfb0de995c7092dd60c9ebc19d6d636b408de84b 100644 (file)
@@ -14,18 +14,24 @@ Parses data in binary format.
 class BinaryParser: public ParserMode
 {
 private:
-       typedef std::map<int, StatementKey> Dictionary;
+       typedef std::map<int, StatementInfo> Dictionary;
        typedef std::map<unsigned, std::string> StringMap;
 
        Dictionary dict;
        StringMap strings;
        unsigned float_precision;
+       StatementInfo *cur_info;
+       std::vector<unsigned> sub_remaining;
 
 public:
        BinaryParser(Input &i, const std::string &s);
 
        virtual Statement parse();
        virtual void process_control_statement(const Statement &);
+
+       virtual const StatementKey *peek(unsigned);
+       virtual bool parse_and_load(unsigned, Loader &, const LoaderAction &);
+
 private:
        IntType::Store parse_int();
        FloatType::Store parse_float();