@@ -80,14 +80,20 @@ class raw_eater
8080 raw_eater (std::string rawfile, bool showlog = false ) : rawfile_(rawfile)
8181 {
8282 // trigger setup and conversion
83- if ( ! rawfile.empty () ) this ->setup_and_conversion (showlog);
83+ // if ( ! rawfile.empty() ) this->setup_and_conversion(showlog);
8484 }
8585
8686 raw_eater ()
8787 {
8888
8989 }
9090
91+ // destructor
92+ ~raw_eater ()
93+ {
94+
95+ }
96+
9197 // provide/set new raw file
9298 void set_file (std::string rawfile, bool showlog = false )
9399 {
@@ -100,11 +106,11 @@ class raw_eater
100106 datmes_.clear ();
101107
102108 // do setup and conversion
103- setup_and_conversion (showlog);
109+ // setup_and_conversion(showlog);
104110 }
105111
106112 // set up and conversion
107- void setup_and_conversion (bool showlog)
113+ void setup_and_conversion (bool showlog = false )
108114 {
109115 // make sure 'raw_file' is already set
110116 assert ( !rawfile_.empty () );
@@ -123,10 +129,8 @@ class raw_eater
123129
124130 if ( showlog )
125131 {
126- // show raw data
132+ // show raw data and display predefined markers
127133 this ->show_buffer ();
128-
129- // display predefined markers
130134 this ->show_markers ();
131135 }
132136
@@ -150,12 +154,6 @@ class raw_eater
150154 }
151155 }
152156
153- // destructor
154- ~raw_eater ()
155- {
156-
157- }
158-
159157 // display buffer/data properties
160158 void show_buffer (int numel = 32 )
161159 {
@@ -239,18 +237,23 @@ class raw_eater
239237 unsigned long int totalmarksize = 0 ;
240238 for (std::pair<std::string,std::vector<unsigned char >> mrk : markers_ )
241239 {
242- // assert ( datasec_[mrk.first].size() > 0 && "marker segment of length zero" );
243240 if ( datasec_[mrk.first ].size () == 0 )
244241 {
245- std::cout<<" warning: " <<mrk.first <<" not found in buffer\n " ;
242+ std::string errmess = mrk.first + std::string (" not found in buffer" );
243+ // std::cerr<<errmess;
244+ try {
245+ throw std::runtime_error (errmess);
246+ } catch ( const std::exception& e ) {
247+ throw ;
248+ // std::cout<<e.what()<<"\n";
249+ }
246250 }
247251 totalmarksize += datasec_[mrk.first ].size ();
248252 }
249253 // std::cout<<"totalmarksize "<<totalmarksize<<"\n";
250254 // std::cout<<"\n";
251255
252256 // check validity of format
253- // assert ( totalmarksize > 0 && "didn't find any predefined marker => probably not a valid .raw-file" );
254257 valid_ = ( totalmarksize < 100 ) ? false : true ;
255258 }
256259
@@ -389,7 +392,6 @@ class raw_eater
389392 }
390393 else
391394 {
392-
393395 // switch for datatypes
394396 switch ( dattype )
395397 {
@@ -414,9 +416,9 @@ class raw_eater
414416 convert_data_as_type<unsigned long int >(datbuf,factor,offset);
415417 break ;
416418 case 6 :
417- std::cout<<" warning: 'signed long int' datatype with experimental support\n " ;
418419 // assert ( sizeof(signed long int)*8 == typesize );
419420 // convert_data_as_type<signed long int>(datbuf,factor,offset);
421+ // throw std::runtime_error("warning: 'signed long int' datatype with experimental support");
420422 assert ( sizeof (int )*8 == typesize );
421423 convert_data_as_type<int >(datbuf,factor,offset);
422424 break ;
@@ -429,13 +431,13 @@ class raw_eater
429431 convert_data_as_type<double >(datbuf,factor,offset);
430432 break ;
431433 case 9 :
432- std::cerr<< " 'imc Devices Transitional Recording' datatype not supported\n " ;
434+ throw std::runtime_error ( " 'imc Devices Transitional Recording' datatype not supported" ) ;
433435 break ;
434436 case 10 :
435- std::cerr<< " 'Timestamp Ascii' datatype not supported\n " ;
437+ throw std::runtime_error ( " 'Timestamp Ascii' datatype not supported" ) ;
436438 break ;
437439 case 11 :
438- std::cout<< " warning: '2-Byte-Word digital' datatype with experimental support\n " ;
440+ // throw std::runtime_error( "warning: '2-Byte-Word digital' datatype with experimental support") ;
439441 assert ( sizeof (short int )*8 == typesize );
440442 convert_data_as_type<short int >(datbuf,factor,offset);
441443 break ;
0 commit comments