//---------------------------------------------------------------------------// #ifndef IMCOBJECT #define IMCOBJECT #include "imc_key.hpp" //---------------------------------------------------------------------------// namespace imc { // format and processor (corresponds to key CF) struct format { int fileformat_; int processor_; // construct members by parsing particular parameters from buffer void parse(const std::vector* buffer, const std::vector parameters) { } format(): fileformat_(-1), processor_(-1) {} // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss< rawdata_; unsigned long int begin_buffer_, end_buffer_; // construct members by parsing particular parameters from buffer void parse(const std::vector* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector parameters) { } // get info string std::string get_info(int width = 20) { std::stringstream ss; ss<* buffer, const std::vector& parameters) { if ( key.name_ == std::string("CF") ) { fmt_.parse(buffer,parameters); objidx_ = 0; } else if ( key.name_ == std::string("CK") ) { kyg_.parse(buffer,parameters); objidx_ = 1; } else if ( key.name_ == std::string("CB") ) { grp_.parse(buffer,parameters); objidx_ = 2; } else if ( key.name_ == std::string("CT") ) { txt_.parse(buffer,parameters); objidx_ = 3; } else if ( key.name_ == std::string("CG") ) { dtf_.parse(buffer,parameters); objidx_ = 4; } else if ( key.name_ == std::string("CD") && key.version_ == 1 ) { abs_.parse(buffer,parameters); objidx_ = 5; } else if ( key.name_ == std::string("CC") ) { cmt_.parse(buffer,parameters); objidx_ = 6; } else if ( key.name_ == std::string("CP") ) { cmt_.parse(buffer,parameters); objidx_ = 7; } else if ( key.name_ == std::string("Cb") ) { bfr_.parse(buffer,parameters); objidx_ = 8; } else if ( key.name_ == std::string("CR") ) { rng_.parse(buffer,parameters); objidx_ = 9; } else if ( key.name_ == std::string("CN") ) { chn_.parse(buffer,parameters); objidx_ = 10; } else if ( key.name_ == std::string("CS") ) { dat_.parse(buffer,parameters); objidx_ = 11; } else if ( key.name_ == std::string("NO") ) { org_.parse(buffer,parameters); objidx_ = 12; } else if ( key.name_ == std::string("NT") ) { trt_.parse(buffer,parameters); objidx_ = 13; } else { throw std::logic_error( std::string("unsupported block associated to key ") + key.name_ ); } } // provide info string std::string get_info(int width = 20) { switch (objidx_) { case 0: return fmt_.get_info(); case 1: return kyg_.get_info(); case 2: return grp_.get_info(); case 3: return txt_.get_info(); case 4: return dtf_.get_info(); case 5: return abs_.get_info(); case 6: return cmt_.get_info(); case 7: return pkg_.get_info(); case 8: return bfr_.get_info(); case 9: return rng_.get_info(); case 10: return chn_.get_info(); case 11: return dat_.get_info(); case 12: return org_.get_info(); case 13: return trt_.get_info(); default: return std::string(""); } } }; } #endif //---------------------------------------------------------------------------//