Swarm-NG  1.1
binary_reader.hpp
1 /*
2  * binary_reader.hpp
3  *
4  * Created on: Dec 14, 2012
5  * Author: saleh
6  */
7 #pragma once
8 
9 #include "swarm/common.hpp"
10 #include "swarm/log/io.hpp"
11 #include <istream>
12 
13 class binary_reader {
14 
15  std::istream& _input;
16 
17  char* current;
18  char* buffer_begin;
19  char* buffer_end;
20 
21 public:
22  binary_reader(std::istream& input);
23 
24 
25 
30  bool validate();
31 
32 
38  gpulog::logrecord next();
39 
40  bool ensure(const size_t& len);
41  char* readBytes(const size_t& len);
42 
43  void readNextChunk();
44  ptrdiff_t tellg();
45  void seek(ptrdiff_t absolute_position);
46  void readChunk(ptrdiff_t current_offset);
47 };