BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
check-old.cxx
Go to the documentation of this file.
1// Dear emacs, this is -*- c++ -*-
2
3/**
4 * @file test/check.cxx
5 * @author <a href="mailto:Andre.dos.Anjos@cern.ch>André Rabello dos
6 * ANJOS</a>
7 * $Author: zhangy $
8 * $Revision: 1.1.1.1 $
9 * $Date: 2009/06/19 07:35:41 $
10 *
11 * This source code describes a small test program based on the eformat
12 * library. It will read a file containing complete events, in format 2.4, and
13 * check the format correctness.
14 */
15
16#include <cstdlib>
17#include <fstream>
18#include <iostream>
19
20#include "eformat/eformat.h"
21#include "eformat/old/eformat.h"
22
23/**
24 * The maximum event size, in words
25 */
26const size_t MAX_EVENT_SIZE = 2500000;
27
28/**
29 * Reads a file and check its validity (for the time being)
30 */
31int main( int argc, char** argv ) {
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
int main()
Definition phokhara.cc:42