BOSS
8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/RawFile/include/RawFile/raw_ifstream.h
Go to the documentation of this file.
1
#ifndef BESIII_RAW_IFSTREAM_H
2
#define BESIII_RAW_IFSTREAM_H
3
4
#include "RawFile/RawFileUtil.h"
5
#include <assert.h>
6
#include <fstream>
7
#include <pthread.h>
8
#include <stdint.h>
9
#include <string>
10
#include <vector>
11
12
class
raw_ifstream
:
virtual
public
std::ifstream {
13
public
:
14
static
raw_ifstream
*
instance
(
const
std::vector<std::string>& fnames );
15
static
void
release
();
16
17
static
void
lock
() {
18
int
lstat = pthread_mutex_lock( &_pthread_lock );
19
assert( lstat == 0 );
20
};
21
static
void
unlock
() {
22
int
lstat = pthread_mutex_unlock( &_pthread_lock );
23
assert( lstat == 0 );
24
};
25
26
std::string
currentFile
()
const
{
return
*m_curFile; }
27
28
void
next_file
();
29
30
uint32_t
runNo
();
31
32
raw_ifstream
(
const
std::vector<std::string>& fnames );
33
virtual
~raw_ifstream
();
34
35
FileStartRecord
&
fileStartRecord
() {
return
m_fileStartRecord; }
36
FileNameStrings
&
fileNameStrings
() {
return
m_fileNameStrings; }
37
RunParametersRecord
&
runParametersRecord
() {
return
m_runParametersRecord; }
38
39
private
:
40
void
init_fstream();
41
42
raw_ifstream
();
// stop default
43
44
private
:
45
bool
m_isOpen;
46
47
FileStartRecord
m_fileStartRecord;
48
FileNameStrings
m_fileNameStrings;
49
RunParametersRecord
m_runParametersRecord;
50
51
std::vector<std::string> m_fnames;
52
std::vector<std::string>::iterator m_curFile;
53
54
static
int
_nHandler;
55
static
raw_ifstream
* _instance;
56
static
pthread_mutex_t _pthread_lock;
57
};
58
59
#endif
FileNameStrings
Definition
Event/RawFile/include/RawFile/RawFileUtil.h:64
FileStartRecord
Definition
Event/RawFile/include/RawFile/RawFileUtil.h:39
RunParametersRecord
Definition
Event/RawFile/include/RawFile/RawFileUtil.h:99
raw_ifstream
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:12
raw_ifstream::raw_ifstream
raw_ifstream(const std::vector< std::string > &fnames)
Definition
raw_ifstream.cxx:43
raw_ifstream::next_file
void next_file()
Definition
raw_ifstream.cxx:53
raw_ifstream::unlock
static void unlock()
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:21
raw_ifstream::lock
static void lock()
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:17
raw_ifstream::release
static void release()
Definition
raw_ifstream.cxx:26
raw_ifstream::fileNameStrings
FileNameStrings & fileNameStrings()
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:36
raw_ifstream::instance
static raw_ifstream * instance(const std::vector< std::string > &fnames)
Definition
raw_ifstream.cxx:14
raw_ifstream::~raw_ifstream
virtual ~raw_ifstream()
Definition
raw_ifstream.cxx:51
raw_ifstream::runNo
uint32_t runNo()
Definition
raw_ifstream.cxx:67
raw_ifstream::runParametersRecord
RunParametersRecord & runParametersRecord()
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:37
raw_ifstream::fileStartRecord
FileStartRecord & fileStartRecord()
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:35
raw_ifstream::currentFile
std::string currentFile() const
Definition
Event/RawFile/include/RawFile/raw_ifstream.h:26
8.0.0
BOSS_Source
Event
RawFile
include
RawFile
raw_ifstream.h
Generated by
1.16.1