00001 #pragma ident "$Id: MDPStream.hpp 3140 2012-06-18 15:03:02Z susancummins $" 00002 00003 //============================================================================ 00004 // 00005 // This file is part of GPSTk, the GPS Toolkit. 00006 // 00007 // The GPSTk is free software; you can redistribute it and/or modify 00008 // it under the terms of the GNU Lesser General Public License as published 00009 // by the Free Software Foundation; either version 2.1 of the License, or 00010 // any later version. 00011 // 00012 // The GPSTk is distributed in the hope that it will be useful, 00013 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 // GNU Lesser General Public License for more details. 00016 // 00017 // You should have received a copy of the GNU Lesser General Public 00018 // License along with GPSTk; if not, write to the Free Software Foundation, 00019 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110, USA 00020 // 00021 // Copyright 2004, The University of Texas at Austin 00022 // 00023 //============================================================================ 00024 00025 //============================================================================ 00026 // 00027 //This software developed by Applied Research Laboratories at the University of 00028 //Texas at Austin, under contract to an agency or agencies within the U.S. 00029 //Department of Defense. The U.S. Government retains all rights to use, 00030 //duplicate, distribute, disclose, or release this software. 00031 // 00032 //Pursuant to DoD Directive 523024 00033 // 00034 // DISTRIBUTION STATEMENT A: This software has been approved for public 00035 // release, distribution is unlimited. 00036 // 00037 //============================================================================= 00038 00039 #ifndef MDPSTREAM_HPP 00040 #define MDPSTREAM_HPP 00041 00047 #include "FFBinaryStream.hpp" 00048 #include "MDPHeader.hpp" 00049 00050 namespace gpstk 00051 { 00055 class MDPStream : public FFBinaryStream 00056 { 00057 public: 00058 MDPStream() 00059 : streamState(outOfSync), 00060 headerCount(0) 00061 {} 00062 00067 MDPStream(const char* fn, 00068 std::ios::openmode mode = std::ios::in) 00069 : FFBinaryStream(fn, mode), 00070 streamState(outOfSync), 00071 headerCount(0) 00072 {} 00073 00075 virtual ~MDPStream() 00076 {} 00077 00079 virtual void open(const char* fn, std::ios::openmode mode = std::ios::in) 00080 { 00081 FFBinaryStream::open(fn, mode); 00082 streamState = outOfSync; 00083 } 00084 00086 enum {outOfSync, gotHeader, gotBody} streamState; 00087 00089 MDPHeader header; 00090 unsigned long headerCount; 00091 00093 std::string rawHeader; 00094 }; // class MDPStream 00095 } // namespace gpstk 00096 00097 #endif
1.3.9.1