⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filefilterframewithheader.hpp

📁 一个gps小工具包
💻 HPP
📖 第 1 页 / 共 2 页
字号:
         /// Returns the contents of the header data list, const.      std::list<FileHeader> getHeaderData(void) const {return headerList;}         /// Returns the number of data items in the header list.      typename std::list<FileHeader>::size_type getHeaderCount(void) const          { return headerList.size(); }      typename std::list<FileHeader>::const_iterator beginHeader() const         throw(gpstk::InvalidRequest);      typename std::list<FileHeader>::const_iterator endHeader() const         throw(gpstk::InvalidRequest);      typename std::list<FileHeader>::iterator beginHeader()          throw(gpstk::InvalidRequest);      typename std::list<FileHeader>::iterator endHeader()          throw(gpstk::InvalidRequest);      bool emptyHeader() const         { return headerList.empty(); }      typename std::list<FileHeader>::size_type sizeHeader()         { return headerList.size(); }      FileHeader& frontHeader()         throw(gpstk::InvalidRequest);      const FileHeader& frontHeader() const         throw(gpstk::InvalidRequest);      FileHeader& backHeader()         throw(gpstk::InvalidRequest);      const FileHeader& backHeader() const         throw(gpstk::InvalidRequest);   protected:         ///  Run init() to load the data into the filter.        void init(const std::vector<FileHunter::FilterPair>& filter=                 std::vector<FileHunter::FilterPair>())          throw(gpstk::Exception);         /// Check to make sure headerList is empty         /// @throw InvalidRequest if headerList is empty      inline void chl(const std::string& req) throw(gpstk::InvalidRequest)      {         gpstk::InvalidRequest exc("Header list is empty attempting to"                                    " satisfy "+req+" request.");         if (headerList.empty())         {            GPSTK_THROW(exc);         }      }   protected:         std::list<FileHeader> headerList;   };   //@}   template <class FileStream, class FileData, class FileHeader>   bool FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::   writeFile(const std::string& outputFile,             const FileHeader& fh) const      throw(gpstk::Exception)   {         // make the directory (if needed)      std::string::size_type pos = outputFile.rfind('/');      if (pos != std::string::npos)         gpstk::FileUtils::makeDir(outputFile.substr(0,pos).c_str(), 0755);            FileStream stream(outputFile.c_str(), std::ios::out|std::ios::trunc);      stream.exceptions(std::ios::failbit);      stream << fh;      typename std::list<FileData>::const_iterator index;      for(index = this->dataVec.begin(); index != this->dataVec.end(); index++)         stream << (*index);      return true;   }    template <class FileStream, class FileData, class FileHeader>   typename std::list<FileHeader>::const_iterator   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::beginHeader()      const throw(gpstk::InvalidRequest)   {      try { chl("beginHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.begin();   }   template <class FileStream, class FileData, class FileHeader>   typename std::list<FileHeader>::const_iterator   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::endHeader()      const throw(gpstk::InvalidRequest)   {      try { chl("endHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.end();   }   template <class FileStream, class FileData, class FileHeader>   typename std::list<FileHeader>::iterator   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::beginHeader()      throw(gpstk::InvalidRequest)   {      try { chl("beginHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.begin();   }   template <class FileStream, class FileData, class FileHeader>   typename std::list<FileHeader>::iterator   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::endHeader()      throw(gpstk::InvalidRequest)   {      try { chl("endHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.end();   }   template <class FileStream, class FileData, class FileHeader>   FileHeader&   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::frontHeader()      throw(gpstk::InvalidRequest)   {      try { chl("frontHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.front();   }   template <class FileStream, class FileData, class FileHeader>   const FileHeader&   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::frontHeader()      const throw(gpstk::InvalidRequest)   {      try { chl("frontHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.front();   }   template <class FileStream, class FileData, class FileHeader>   FileHeader&   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::backHeader()      throw(gpstk::InvalidRequest)   {      try { chl("backHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.back();   }   template <class FileStream, class FileData, class FileHeader>   const FileHeader&   FileFilterFrameWithHeader<FileStream,FileData,FileHeader>::backHeader()      const throw(gpstk::InvalidRequest)   {      try { chl("backHeader"); }      catch(gpstk::InvalidRequest exc)      { GPSTK_RETHROW(exc); }      return headerList.back();   }   template <class FileStream, class FileData, class FileHeader>   void   FileFilterFrameWithHeader<FileStream,FileData,FileHeader> ::    init(const std::vector<FileHunter::FilterPair>& filter)      throw(gpstk::Exception)   {         // find the files      FileHunter fh(this->fs);         typename std::vector<FileHunter::FilterPair>::const_iterator itr =          filter.begin();      while (itr != filter.end())      {         fh.setFilter((*itr).first, (*itr).second);         itr++;      }      std::vector<std::string> listOfFiles =          fh.find(this->startTime, this->endTime, FileSpec::ascending);         // for each file, just read the header      typename std::vector<std::string>::iterator i;      for(i = listOfFiles.begin(); i != listOfFiles.end(); i++)      {         FileStream s((*i).c_str());         if (s.good())         {            s.exceptions(std::ios::failbit);            FileHeader header;            s >> header;            headerList.push_back(header);         }      }   }  } // namespace gpstk#endif //GPSTK_FILEFILTERFRAMEWITHHEADER_HPP

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -