DataHeaders.hpp

Go to the documentation of this file.
00001 #pragma ident "$Id: DataHeaders.hpp 1940 2009-06-13 11:10:37Z architest $"
00002 
00008 #ifndef GPSTK_DATAHEADERS_HPP
00009 #define GPSTK_DATAHEADERS_HPP
00010 
00011 //============================================================================
00012 //
00013 //  This file is part of GPSTk, the GPS Toolkit.
00014 //
00015 //  The GPSTk is free software; you can redistribute it and/or modify
00016 //  it under the terms of the GNU Lesser General Public License as published
00017 //  by the Free Software Foundation; either version 2.1 of the License, or
00018 //  any later version.
00019 //
00020 //  The GPSTk is distributed in the hope that it will be useful,
00021 //  but WITHOUT ANY WARRANTY; without even the implied warranty of
00022 //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00023 //  GNU Lesser General Public License for more details.
00024 //
00025 //  You should have received a copy of the GNU Lesser General Public
00026 //  License along with GPSTk; if not, write to the Free Software Foundation,
00027 //  Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00028 //
00029 //  Dagoberto Salazar - gAGE ( http://www.gage.es ). 2007, 2008, 2009
00030 //
00031 //============================================================================
00032 
00033 
00034 #include <string>
00035 #include "SatID.hpp"
00036 #include "TypeID.hpp"
00037 #include "SourceID.hpp"
00038 #include "DayTime.hpp"
00039 #include "Triple.hpp"
00040 
00041 
00042 
00043 namespace gpstk
00044 {
00045 
00049 
00051 
00053    struct sourceHeader
00054    {
00055 
00057       SourceID source;
00058 
00059 
00061       sourceHeader() {};
00062 
00063 
00065       sourceHeader( const SourceID::SourceType& st,
00066                     const std::string& name )
00067       { source.type = st; source.sourceName = name; };
00068 
00069 
00071       sourceHeader(const SourceID& sI)
00072          : source(sI)
00073       {};
00074 
00075 
00077       sourceHeader(const sourceHeader& sH)
00078       { source = sH.source; };
00079 
00080 
00082       virtual sourceHeader& operator=(const sourceHeader& right);
00083 
00084 
00086       virtual sourceHeader& operator=(const SourceID& right)
00087       { source = right; return *this; };
00088 
00089 
00091       virtual std::ostream& dump(std::ostream& s) const;
00092 
00093 
00095       virtual ~sourceHeader() {};
00096 
00097 
00098    }; // End of struct 'sourceHeader'
00099 
00100 
00101 
00103    std::ostream& operator<<( std::ostream& s,
00104                              const sourceHeader& sh );
00105 
00106 
00107 
00109    struct sourceEpochHeader : public sourceHeader
00110    {
00111 
00113       DayTime epoch;
00114 
00115 
00117       sourceEpochHeader() {};
00118 
00119 
00121       sourceEpochHeader( const SourceID::SourceType& st,
00122                          const std::string& sourcename,
00123                          const DayTime& time )
00124          : epoch(time)
00125       { source.type = st; source.sourceName = sourcename; };
00126 
00127 
00129       sourceEpochHeader( const SourceID& sI,
00130                          const DayTime& time )
00131          : epoch(time)
00132       { source = sI; };
00133 
00134 
00136       sourceEpochHeader( const sourceHeader& sh,
00137                          const DayTime& time )
00138          : sourceHeader(sh), epoch(time)
00139       {};
00140 
00141 
00143       sourceEpochHeader( const sourceEpochHeader& seh )
00144          : epoch(seh.epoch)
00145       { source = seh.source; };
00146 
00147 
00149       virtual sourceEpochHeader& operator=(const sourceEpochHeader& right);
00150 
00151 
00153       virtual sourceEpochHeader& operator=(const sourceHeader& right)
00154       { source = right.source; return (*this); };
00155 
00156 
00158       virtual sourceEpochHeader& operator=(const SourceID& right)
00159       { source = right; return (*this); };
00160 
00161 
00163       virtual std::ostream& dump(std::ostream& s) const;
00164 
00165 
00167       virtual ~sourceEpochHeader() {};
00168 
00169 
00170    }; // End of struct 'sourceEpochHeader'
00171 
00172 
00173 
00175    std::ostream& operator<<( std::ostream& s,
00176                              const sourceEpochHeader& seh );
00177 
00178 
00179 
00182    struct sourceEpochRinexHeader : public sourceEpochHeader
00183    {
00184 
00186       std::string antennaType;
00187 
00188 
00190       Triple antennaPosition;
00191 
00192 
00194       short epochFlag;
00195 
00196 
00198       sourceEpochRinexHeader() {};
00199 
00200 
00202       sourceEpochRinexHeader( const SourceID::SourceType& st,
00203                               const std::string& sourcename,
00204                               const DayTime& time,
00205                               const std::string& antType,
00206                               const Triple& antPos,
00207                               const short& flag )
00208          : antennaType(antType), antennaPosition(antPos), epochFlag(flag)
00209       { source.type = st; source.sourceName = sourcename; epoch = time; };
00210 
00211 
00213       sourceEpochRinexHeader( const SourceID& sI,
00214                               const DayTime& time,
00215                               const std::string& antType,
00216                               const Triple& antPos,
00217                               const short& flag )
00218          : antennaType(antType), antennaPosition(antPos), epochFlag(flag)
00219       { source = sI; epoch = time; };
00220 
00221 
00223       sourceEpochRinexHeader( const sourceHeader& sh,
00224                               const DayTime& time,
00225                               const std::string& antType,
00226                               const Triple& antPos,
00227                               const short& flag );
00228 
00229 
00231       sourceEpochRinexHeader(const sourceEpochHeader& seh)
00232          : sourceEpochHeader(seh)
00233       {};
00234 
00235 
00237       sourceEpochRinexHeader( const sourceEpochHeader& seh,
00238                               const std::string& antType,
00239                               const Triple& antPos,
00240                               const short& flag )
00241          : sourceEpochHeader(seh), antennaType(antType),
00242            antennaPosition(antPos), epochFlag(flag)
00243       {};
00244 
00245 
00247       sourceEpochRinexHeader(const sourceEpochRinexHeader& serh)
00248          : antennaType(serh.antennaType), antennaPosition(serh.antennaPosition),
00249            epochFlag(serh.epochFlag)
00250       { source = serh.source; epoch = serh.epoch; };
00251 
00252 
00254       virtual sourceEpochRinexHeader& operator=(
00255                                           const sourceEpochRinexHeader& right);
00256 
00257 
00259       virtual sourceEpochRinexHeader& operator=(const sourceEpochHeader& right)
00260       { source = right.source; epoch = right.epoch; return (*this); };
00261 
00262 
00264       virtual sourceEpochRinexHeader& operator=(const sourceHeader& right)
00265       { source = right.source; return (*this); };
00266 
00267 
00269       virtual sourceEpochRinexHeader& operator=(const SourceID& right)
00270       { source = right; return (*this); };
00271 
00272 
00274       virtual std::ostream& dump(std::ostream& s) const;
00275 
00276 
00278       virtual ~sourceEpochRinexHeader() {};
00279 
00280 
00281    }; // End of struct 'sourceEpochRinexHeader'
00282 
00283 
00284 
00286    std::ostream& operator<<( std::ostream& s,
00287                              const sourceEpochRinexHeader& serh );
00288 
00289 
00290 
00292    struct sourceTypeHeader : public sourceHeader
00293    {
00294 
00296       TypeID type;
00297 
00298 
00300       sourceTypeHeader() {};
00301 
00302 
00304       sourceTypeHeader( const SourceID::SourceType& st,
00305                         const std::string& sourcename,
00306                         const TypeID& datatype )
00307          : type(datatype)
00308       { source.type = st; source.sourceName = sourcename; };
00309 
00310 
00312       sourceTypeHeader( const SourceID& sI,
00313                         const TypeID& datatype )
00314          : type(datatype)
00315       { source = sI; };
00316 
00317 
00319       sourceTypeHeader( const sourceHeader& sh,
00320                         const TypeID& datatype )
00321          : sourceHeader(sh), type(datatype)
00322       {};
00323 
00324 
00326       sourceTypeHeader( const sourceTypeHeader& sth )
00327          : type(sth.type)
00328       { source = sth.source; };
00329 
00330 
00332       virtual sourceTypeHeader& operator=(const sourceTypeHeader& right);
00333 
00334 
00336       virtual sourceTypeHeader& operator=(const sourceHeader& right)
00337       { source = right.source; return (*this); };
00338 
00339 
00341       virtual sourceTypeHeader& operator=(const SourceID& right)
00342       { source = right; return (*this); };
00343 
00344 
00346       virtual std::ostream& dump(std::ostream& s) const;
00347 
00348 
00350       virtual ~sourceTypeHeader() {};
00351 
00352 
00353    }; // End of struct 'sourceTypeHeader'
00354 
00355 
00356 
00358    std::ostream& operator<<( std::ostream& s,
00359                              const sourceTypeHeader& sth );
00360 
00361 
00362 
00364    struct sourceSatHeader : public sourceHeader
00365    {
00366 
00368       SatID satellite;
00369 
00370 
00372       sourceSatHeader() {};
00373 
00374 
00376       sourceSatHeader( const SourceID::SourceType& st,
00377                        const std::string& sourcename,
00378                        const SatID& sat )
00379          : satellite(sat)
00380       { source.type = st; source.sourceName = sourcename; };
00381 
00382 
00384       sourceSatHeader( const SourceID& sI,
00385                        const SatID& sat )
00386          : satellite(sat)
00387       { source = sI; };
00388 
00389 
00391       sourceSatHeader( const sourceHeader& sh,
00392                        const SatID& sat )
00393          : sourceHeader(sh), satellite(sat)
00394       {};
00395 
00396 
00398       sourceSatHeader( const sourceSatHeader& ssh )
00399          : satellite(ssh.satellite)
00400       { source = ssh.source; };
00401 
00402 
00404       virtual sourceSatHeader& operator=(const sourceSatHeader& right);
00405 
00406 
00408       virtual sourceSatHeader& operator=(const sourceHeader& right)
00409       { source = right.source; return (*this); };
00410 
00411 
00413       virtual sourceSatHeader& operator=(const SourceID& right)
00414       { source = right; return (*this); };
00415 
00416 
00418       virtual std::ostream& dump(std::ostream& s) const;
00419 
00420 
00422       virtual ~sourceSatHeader() {};
00423 
00424 
00425    }; // End of struct 'sourceSatHeader'
00426 
00427 
00428 
00430    std::ostream& operator<<( std::ostream& s,
00431                              const sourceSatHeader& ssh );
00432 
00433 
00434 
00436    struct sourceEpochSatHeader : public sourceEpochHeader
00437    {
00438 
00440       SatID satellite;
00441 
00442 
00444       sourceEpochSatHeader() {};
00445 
00446 
00448       sourceEpochSatHeader( const SourceID::SourceType& st,
00449                             const std::string& sourcename,
00450                             const DayTime& time,
00451                             const SatID& sat )
00452          : satellite(sat)
00453       { source.type = st; source.sourceName = sourcename; epoch = time; };
00454 
00455 
00457       sourceEpochSatHeader( const SourceID& sI,
00458                             const DayTime& time,
00459                             const SatID& sat )
00460          : satellite(sat)
00461       { source = sI; epoch = time; };
00462 
00463 
00465       sourceEpochSatHeader( const sourceHeader& sh,
00466                             const DayTime& time,
00467                             const SatID& sat )
00468          : satellite(sat)
00469       { source = sh.source; epoch = time; };
00470 
00471 
00473       sourceEpochSatHeader( const sourceEpochHeader& seh,
00474                             const SatID& sat )
00475          : satellite(sat)
00476       { source = seh.source; epoch = seh.epoch; };
00477 
00478 
00480       sourceEpochSatHeader( const sourceEpochSatHeader& sesh )
00481          : satellite(sesh.satellite)
00482       { source = sesh.source; epoch = sesh.epoch; };
00483 
00484 
00486       virtual sourceEpochSatHeader& operator=(
00487                                           const sourceEpochSatHeader& right );
00488 
00489 
00491       virtual sourceEpochSatHeader& operator=(const sourceEpochHeader& right)
00492       { source = right.source; epoch = right.epoch; return (*this); };
00493 
00494 
00496       virtual sourceEpochSatHeader& operator=(const sourceHeader& right)
00497       { source = right.source; return (*this); };
00498 
00499 
00501       virtual sourceEpochSatHeader& operator=(const SourceID& right)
00502       { source = right; return (*this); };
00503 
00504 
00506       virtual std::ostream& dump(std::ostream& s) const;
00507 
00508 
00510       virtual ~sourceEpochSatHeader() {};
00511 
00512 
00513    }; // End of struct 'sourceEpochSatHeader'
00514 
00515 
00516 
00518    std::ostream& operator<<( std::ostream& s,
00519                              const sourceEpochSatHeader& sesh );
00520 
00521 
00522 
00524    struct sourceEpochTypeHeader : public sourceEpochHeader
00525    {
00526 
00528       TypeID type;
00529 
00530 
00532       sourceEpochTypeHeader() {};
00533 
00534 
00536       sourceEpochTypeHeader( const SourceID::SourceType& st,
00537                              const std::string& sourcename,
00538                              const DayTime& time,
00539                              const TypeID& datatype )
00540          : type(datatype)
00541       { source.type = st; source.sourceName = sourcename; epoch = time; };
00542 
00543 
00545       sourceEpochTypeHeader( const SourceID& sI,
00546                              const DayTime& time,
00547                              const TypeID& datatype )
00548          : type(datatype)
00549       { source = sI; epoch = time; };
00550 
00551 
00553       sourceEpochTypeHeader( const sourceHeader& sh,
00554                              const DayTime& time,
00555                              const TypeID& datatype )
00556          : type(datatype)
00557       { source = sh.source; epoch = time; };
00558 
00559 
00561       sourceEpochTypeHeader( const sourceEpochHeader& seh,
00562                              const TypeID& datatype )
00563          : type(datatype)
00564       { source = seh.source; epoch = seh.epoch; };
00565 
00566 
00568       sourceEpochTypeHeader( const sourceEpochTypeHeader& sesh )
00569          : type(sesh.type)
00570       { source = sesh.source; epoch = sesh.epoch; };
00571 
00572 
00574       virtual sourceEpochTypeHeader& operator=(
00575                                           const sourceEpochTypeHeader& right );
00576 
00577 
00579       virtual sourceEpochTypeHeader& operator=(const sourceEpochHeader& right)
00580       { source = right.source; epoch = right.epoch; return (*this); };
00581 
00582 
00584       virtual sourceEpochTypeHeader& operator=(const sourceHeader& right)
00585       { source = right.source; return (*this); };
00586 
00587 
00589       virtual sourceEpochTypeHeader& operator=(const SourceID& right)
00590       { source = right; return (*this); };
00591 
00592 
00594       virtual std::ostream& dump(std::ostream& s) const;
00595 
00596 
00598       virtual ~sourceEpochTypeHeader() {};
00599 
00600 
00601    }; // End of struct 'sourceEpochTypeHeader'
00602 
00603 
00604 
00606    std::ostream& operator<<( std::ostream& s,
00607                              const sourceEpochTypeHeader& seth );
00608 
00609 
00611 
00612 
00613 }  // End of namespace gpstk
00614 
00615 #endif   // GPSTK_DATAHEADERS_HPP

Generated on Wed Feb 8 03:30:58 2012 for GPS ToolKit Software Library by  doxygen 1.3.9.1