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

📄 timetag.hpp

📁 一个gps小工具包
💻 HPP
字号:
#pragma ident "$Id: TimeTag.hpp 316 2006-11-28 22:17:17Z snelsen $"#ifndef GPSTK_TIMETAG_HPP#define GPSTK_TIMETAG_HPP//============================================================================////  This file is part of GPSTk, the GPS Toolkit.////  The GPSTk is free software; you can redistribute it and/or modify//  it under the terms of the GNU Lesser General Public License as published//  by the Free Software Foundation; either version 2.1 of the License, or//  any later version.////  The GPSTk is distributed in the hope that it will be useful,//  but WITHOUT ANY WARRANTY; without even the implied warranty of//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the//  GNU Lesser General Public License for more details.////  You should have received a copy of the GNU Lesser General Public//  License along with GPSTk; if not, write to the Free Software Foundation,//  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA//  //  Copyright 2004, The University of Texas at Austin////============================================================================#include "CommonTime.hpp"#include "StringUtils.hpp"#include <map>namespace gpstk{      /** This class is an abstract base class inherited by all the classes       * that provide a specific time representation.       * These time representations must ensure or provide a way for the        * user to verify their own self-consistency.       */   class TimeTag   {   public:               /// Virtual Destructor.      virtual ~TimeTag()          throw()      {}               /// This function probably won't throw exceptions because if you can         /// represent a time in this format, you can probably represent it in         /// the Common format.      virtual CommonTime convertToCommonTime() const = 0;               /// This function may throw exceptions b/c it is possible that it may         /// not be possible to represent the  time specified by the Common          /// object "bt" in this object.      virtual void convertFromCommonTime( const CommonTime& ct ) = 0;         /// This function formats this time to a string.  The exceptions          /// thrown would only be due to problems parsing the fmt string.         ///       virtual std::string printf(const std::string& fmt) const         throw( gpstk::StringUtils::StringException ) = 0;         /**          * This function sets this object to the time stored in the given          * string \a str.          * @param str the string to parse          * @param fmt the string containing the time format          * @throw InvalidRequest if an invalid time is given.          * @throw StringException on problems parsing the strings.          */      virtual void scanf( const std::string& str,                          const std::string& fmt )         throw( gpstk::InvalidRequest,                gpstk::StringUtils::StringException );         /// This type maps a character ( from a time format ) to its         /// corresponding value ( from a time string ).      typedef std::map< char, std::string> IdToValue;               /**          * This is the workhorse for the scanf family of functions.  It parses          * the given string \a str with the given format \a fmt in order to          * extract a time or part of a time from \a str.           * @param str the string from which to cull time information           * @param fmt the string containing the time format           * @param info a mapping of all of the character identifier to their           *  respective culled time information          * @throw StringException on problems parsing the strings.          */      static void getInfo( const std::string& str,                           const std::string& fmt,                           IdToValue& info )         throw( gpstk::StringUtils::StringException );         /**          * Set this object using the information provided in \a info.          * @param info the IdToValue object to which this object shall be set.          * @return true if this object was successfully set using the           *  data in \a info, false if not.          */      virtual bool setFromInfo( const IdToValue& info )         throw() = 0;               /// Return a string containing the characters that this class         /// understands when printing times.      virtual std::string getPrintChars() const         throw() = 0;         /// Return a string containing the default format to use in printing.      virtual std::string getDefaultFormat() const         throw() = 0;         /// Returns true if this object's members are valid, false otherwise.      virtual bool isValid() const         throw() = 0;         /// Reset this object to the default state.      virtual void reset()         throw() = 0;         /// Format this time as a string using a format specified by the          /// inheriting class.      virtual std::string asString() const         throw( gpstk::StringUtils::StringException )      { return printf( getDefaultFormat() ); }         /// Hey, it's an implicit casting operator!  Basically just a lazy         /// way to get at convertToCommonTime().      operator CommonTime() const      { return convertToCommonTime(); }         /// This returns the regular expression prefix that is used when          /// searching for integer specifiers.      static std::string getFormatPrefixInt()      { return "%[ 0-]?[[:digit:]]*"; }               /// This returns the regular expression prefix that is used when         /// searching for float specifiers.      static std::string getFormatPrefixFloat()      { return getFormatPrefixInt() + "(\\.[[:digit:]]+)?"; }   };} // namespacestd::ostream& operator<<( std::ostream& s,                          const gpstk::TimeTag& t );#endif // GPSTK_BASETIME_HPP

⌨️ 快捷键说明

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