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
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
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 };
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 };
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 };
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 };
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 };
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 };
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 };
00602
00603
00604
00606 std::ostream& operator<<( std::ostream& s,
00607 const sourceEpochTypeHeader& seth );
00608
00609
00611
00612
00613 }
00614
00615 #endif // GPSTK_DATAHEADERS_HPP