Belle II Software development
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
13namespace 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.