BOSS 7.0.8
BESIII Offline Software System
Loading...
Searching...
No Matches
check-old.cxx File Reference
#include <fstream>
#include <iostream>
#include <cstdlib>
#include "eformat/eformat.h"
#include "eformat/old/eformat.h"

Go to the source code of this file.

Functions

int main (int argc, char **argv)
 

Variables

const size_t MAX_EVENT_SIZE = 2500000
 

Function Documentation

◆ main()

int main ( int  argc,
char **  argv 
)

Reads a file and check its validity (for the time being)

Definition at line 31 of file check-old.cxx.

32{
33 using namespace eformat;
34
35 if ( argc != 2 ) {
36 std::cerr << "usage: " << argv[0] << " <file>" << std::endl;
37 std::exit(1);
38 }
39
40 //open normally a file
41 std::fstream in(argv[1], std::ios::in|std::ios::binary);
42 if (!in) {
43 std::cerr << "File `" << argv[1] << "' does not exist?!" << std::endl;
44 std::exit(1);
45 }
46 uint32_t* event = new uint32_t[MAX_EVENT_SIZE];
47
48 while (true) {
49
50 if (!(next_fragment(in, event, MAX_EVENT_SIZE*4))) break;
51
52 try {
53 old::FullEventFragment fe(event);
54 //old::ROSFragment fe(event);
55 fe.check_tree();
56
57 //if check is ok, print the lvl1 identifier
58 std::cout << "Event " << fe.lvl1_id() << " is Ok." << std::endl;
59 }
60 catch (eformat::Issue& ex) {
61 std::cerr << std::endl
62 << "Uncaught eformat issue: " << ex.what() << std::endl;
63 std::cout << "Trying to continue..." << std::endl;
64 continue;
65 }
66 catch (ers::Issue& ex) {
67 std::cerr << std::endl
68 << "Uncaught ERS issue: " << ex.what() << std::endl;
69 delete[] event;
70 std::exit(1);
71 }
72 catch (std::exception& ex) {
73 std::cerr << std::endl
74 << "Uncaught std exception: " << ex.what() << std::endl;
75 delete[] event;
76 std::exit(1);
77 }
78 catch (...) {
79 std::cerr << std::endl << "Uncaught unknown exception" << std::endl;
80 delete[] event;
81 std::exit(1);
82 }
83
84 }
85
86 delete[] event;
87 return 0;
88}
const size_t MAX_EVENT_SIZE
Definition: check-old.cxx:26
Root Issue class.
const char * what() const
Human description message.
uint32_t * next_fragment(std::fstream &fs, uint32_t *addr=0, size_t size=0)
Definition: util.cxx:22

Variable Documentation

◆ MAX_EVENT_SIZE

const size_t MAX_EVENT_SIZE = 2500000

The maximum event size, in words

Definition at line 26 of file check-old.cxx.

Referenced by main().