BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
check-old.cxx File Reference
#include <cstdlib>
#include <fstream>
#include <iostream>
#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.

31 {
32 using namespace eformat;
33
34 if ( argc != 2 )
35 {
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 {
44 std::cerr << "File `" << argv[1] << "' does not exist?!" << std::endl;
45 std::exit( 1 );
46 }
47 uint32_t* event = new uint32_t[MAX_EVENT_SIZE];
48
49 while ( true )
50 {
51
52 if ( !( next_fragment( in, event, MAX_EVENT_SIZE * 4 ) ) ) break;
53
54 try
55 {
56 old::FullEventFragment fe( event );
57 // old::ROSFragment fe(event);
58 fe.check_tree();
59
60 // if check is ok, print the lvl1 identifier
61 std::cout << "Event " << fe.lvl1_id() << " is Ok." << std::endl;
62 } catch ( eformat::Issue& ex )
63 {
64 std::cerr << std::endl << "Uncaught eformat issue: " << ex.what() << std::endl;
65 std::cout << "Trying to continue..." << std::endl;
66 continue;
67 } catch ( ers::Issue& ex )
68 {
69 std::cerr << std::endl << "Uncaught ERS issue: " << ex.what() << std::endl;
70 delete[] event;
71 std::exit( 1 );
72 } catch ( std::exception& ex )
73 {
74 std::cerr << std::endl << "Uncaught std exception: " << ex.what() << std::endl;
75 delete[] event;
76 std::exit( 1 );
77 } catch ( ... )
78 {
79 std::cerr << std::endl << "Uncaught unknown exception" << std::endl;
80 delete[] event;
81 std::exit( 1 );
82 }
83 }
84
85 delete[] event;
86 return 0;
87}
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:24

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().