Belle II Software  release-08-01-10
BufferedReader.h
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #ifndef _Belle2_BufferedReader_hh
9 #define _Belle2_BufferedReader_hh
10 
11 #include "daq/slc/base/Reader.h"
12 
13 namespace Belle2 {
19  class BufferedReader : public Reader {
20 
21  // constructors & destructors
22  public:
24  BufferedReader(size_t size, unsigned char* memory = NULL);
26  virtual ~BufferedReader();
27 
28  // member methods implemented
29  public:
30  void seekTo(size_t pos) { m_pos = pos; }
31  unsigned char* ptr() { return m_memory; }
32  size_t count() const { return m_pos; }
33  size_t size() const { return m_size; }
34  void copy(const void*, size_t);
35  size_t read(void*, size_t) override;
36  bool available() override { return true; }
37 
38  public:
39  const BufferedReader& operator = (const BufferedReader&);
40 
41  // member data
42  protected:
43  unsigned char* m_memory;
44  size_t m_size;
45  size_t m_pos;
46  bool m_allocated;
47 
48  };
49 
51 }
52 
53 #endif
Abstract base class for different kinds of events.