General Purpose Geodetic Library
SgIoAgv.h
Go to the documentation of this file.
1 /*
2  *
3  * This file is a part of Space Geodetic Library. The library is used by
4  * nuSolve, a part of CALC/SOLVE system, and designed to make analysis of
5  * geodetic VLBI observations.
6  * Copyright (C) 2010-2020 Sergei Bolotin.
7  *
8  * This program is free software: you can redistribute it and/or modify
9  * it under the terms of the GNU General Public License as published by
10  * the Free Software Foundation, either version 3 of the License, or
11  * (at your option) any later version.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16  * GNU General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public License
19  * along with this program. If not, see <http://www.gnu.org/licenses/>.
20  *
21  */
22 
23 #ifndef SG_IO_AGV
24 #define SG_IO_AGV
25 
26 
27 #ifdef HAVE_CONFIG_H
28 # include <config.h>
29 #endif
30 
31 
32 
33 
34 #include <iostream>
35 #include <stdlib.h>
36 
37 #include <QtCore/QFile>
38 #include <QtCore/QList>
39 #include <QtCore/QTextStream>
40 #include <QtCore/QVector>
41 
42 
43 #include <SgConstants.h>
44 #include <SgIoDriver.h>
45 #include <SgLogger.h>
46 #include <SgModelsInfo.h>
47 #include <SgVlbiHistory.h>
48 
49 //class SgAgvChapter;
50 class SgAgvChunk;
51 class SgAgvDriver;
52 class SgAgvSection;
53 class SgVlbiSession;
54 
55 //
57 {
58  ADS_NONE = 0,
60  ADS_SCAN = 2,
63 };
64 
65 //
67 {
68  ADT_NONE = 0,
69  ADT_CHAR = 1,
70  ADT_I2 = 2,
71  ADT_I4 = 3,
72  ADT_I8 = 4,
73  ADT_R4 = 5,
74  ADT_R8 = 6,
75 };
76 
77 //
79 {
80  ACS_NONE = 0,
81  ACS_NATIVE = 1<< 0,
82  ACS_GVH_DBH = 1<< 1,
83  ACS_GVH_VDB = 1<< 2,
84  ACS_GVH_PIMA = 1<< 3,
87 };
88 
89 
90 //
91 /***===================================================================================================*/
96 /*=====================================================================================================*/
98 {
99 public:
102  hasData_=false; isUsable_=true; hasMutableScope_=false; expectance_=ACS_ANY;};
103 
104  SgAgvDatumDescriptor(const QString& lCode, const QString descr, AgvDataScope scp, AgvDataType typ,
105  int d1, int d2, unsigned int exp, bool hasMutableScope=false);
106 
108 
109  inline virtual ~SgAgvDatumDescriptor() {};
110  inline QString className() const {return "SgAgvDatumDescriptor";};
111 
112  inline bool getHasData() const {return hasData_;};
113  inline bool getIsUsable() const {return isUsable_;};
114  inline bool getHasMutableScope() const {return hasMutableScope_;};
115 
116  inline const QString& getLCode() const {return lCode_;};
117  inline const QString& getDescription() const {return description_;};
118 
119  inline AgvDataScope getDataScope() const {return dataScope_;};
120  inline AgvDataType getDataType() const {return dataType_;};
121 
122  inline int getDim1() const {return dim1_;};
123  inline int getDim2() const {return dim2_;};
124  inline int getDim3() const {return dim3_;};
125  inline int getDim4() const {return dim4_;};
126 
127  inline const SgAgvDriver* getDriver() const {return driver_;};
128  inline unsigned int getExpectance() const {return expectance_;};
129 
130 
131  inline void setLCode(const QString& lCode) {lCode_=lCode;};
132  inline void setDescription(const QString& description) {description_=description;};
133 
134  inline void setDataScope(AgvDataScope scope) {dataScope_=scope;};
135  inline void setDataType(AgvDataType typ) {dataType_=typ;};
136 
137  inline void setDim1(int d) {dim1_=d;};
138  inline void setDim2(int d) {dim2_=d;};
139  inline void setDim3(int d) {dim3_=d;};
140  inline void setDim4(int d) {dim4_=d;};
141 
142  inline void setHasData(bool h) {hasData_=h;};
143  inline void setIsUsable(bool is) {isUsable_=is;};
144  inline void setHasMutableScope(bool has) {hasMutableScope_=has;};
145 
146  inline void setDriver(SgAgvDriver* drv) {driver_=drv;};
147  inline void setExpectance(unsigned int expect) {expectance_ = expect;};
148 
149  //
150  inline int d1() const {return effectiveSize(dim1_);};
151  inline int d2() const {return effectiveSize(dim2_);};
152  inline int d3() const {return effectiveSize(dim3_);};
153  inline int d4() const {return effectiveSize(dim4_);};
154  inline int totalMaxSize() const {return (dataType_==ADT_CHAR?1:d1())*d2()*d3()*d4();};
155  int totalSize() const;
156 
157  static QString dataType2str(AgvDataType);
158  static QString dataScope2str(AgvDataScope);
159 
160  inline bool isExpected(AgvContentStyle contentStyle) const {return expectance_ & contentStyle;};
161 
162 protected:
163  QString lCode_;
164  QString description_;
167  int dim1_;
168  int dim2_;
169  int dim3_;
170  int dim4_;
173  bool hasData_;
174  bool isUsable_; // for reading
175  unsigned int expectance_;
176  //
177  int effectiveSize(int d) const;
178 };
179 /*=====================================================================================================*/
180 
181 
182 
183 
184 
185 //
186 /***===================================================================================================*/
191 /*=====================================================================================================*/
192 template<class C> class SgAgvDatum
193 {
194 public:
195  inline SgAgvDatum() {descriptor_=NULL; data_=NULL;};
196 
197  inline SgAgvDatum(SgAgvDatumDescriptor* descr) {descriptor_=descr; data_=NULL;};
198 
199  inline ~SgAgvDatum() {freeSpace(); descriptor_=NULL;};
200  inline QString className() const {return "SgAgvDatum";};
201  inline bool isAllocated() const {return data_ != NULL;};
202 
203  C getValue(int idx1, int idx2, int idx3, int idx4) const;
204 
205  C& value(int idx1, int idx2, int idx3, int idx4);
206 
207  void allocateSpace();
208 
209  void freeSpace();
210 
211  bool isEmpty();
212 
213 protected:
215  C *data_;
216 };
217 /*=====================================================================================================*/
218 
219 
220 
221 
222 //
223 /***===================================================================================================*/
228 /*=====================================================================================================*/
230 {
231 public:
232  inline SgAgvDatumString() {descriptor_=NULL; data_=NULL;};
233 
235 
237  inline QString className() const {return "SgAgvDatumString";};
238  inline bool isAllocated() const {return data_ != NULL;};
239 
240  const QString& getValue(int idx2, int idx3, int idx4) const;
241 
243 
244  QString& value(int idx2, int idx3, int idx4);
245 
246  void allocateSpace();
247 
248  void freeSpace();
249 
250  bool isEmpty();
251 
252 protected:
254  QString *data_;
255 };
256 /*=====================================================================================================*/
257 
258 
259 
260 
261 
262 //
263 /***===================================================================================================*/
268 /*=====================================================================================================*/
270 {
271 public:
272  inline SgAgvRecord() : content_("") {owner_=NULL;};
273  inline SgAgvRecord(SgAgvSection *owner, const QString& content, int si=0)
274  : content_(content), lCode_(content.left(8)) {owner_=owner; subIdx_=si;};
275  inline ~SgAgvRecord() {};
276  inline QString className() const {return "SgAgvRecord";};
277 
278  inline const QString& content() const {return content_;};
279  inline const QString& lCode() const {return lCode_;};
280  inline int getSubIdx() const {return subIdx_;};
281 
282  int exportData(QTextStream& ts, const QString& prefix);
283 
284 protected:
285  QString content_;
286  QString lCode_;
288  int subIdx_;
289 };
290 /*=====================================================================================================*/
291 
292 
293 
294 
295 
296 
297 /***===================================================================================================*/
302 /*=====================================================================================================*/
303 class SgAgvSection : public QList<SgAgvRecord*>
304 {
305 public:
306  inline SgAgvSection() : startEpoch_(tZero), prefix_("") {idx_=0;};
307  inline SgAgvSection(const QString prefix, int idx) : prefix_(prefix) {idx_=idx;};
308  inline ~SgAgvSection() {for (int i=0; i<size(); i++) delete at(i); clear();};
309  inline QString className() const {return "SgAgvSection";};
310 
311  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
312 
313  int exportData(QTextStream& ts, SgAgvDriver* /*drv*/)
314  {ts << prefix_ << "." << idx_ + 1 << " @section_length: 0 records\n"; return 1;};
315  int importData(QTextStream& ts, SgAgvDriver* drv);
316 
317 protected:
319  QString prefix_;
320  int idx_;
321  bool parseSectionLengthString(const QString& str, int& num2read);
322 };
323 /*=====================================================================================================*/
324 
325 
326 
327 
328 
329 /***===================================================================================================*/
334 /*=====================================================================================================*/
336 {
337 public:
338  inline SgAgvFileSection() {prefix_="FILE";};
339  inline SgAgvFileSection(int idx) : SgAgvSection("FILE", idx) {};
340  inline ~SgAgvFileSection() {};
341  inline QString className() const {return "SgAgvFileSection";};
342 
343  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
344 
345  int exportData(QTextStream& ts, SgAgvDriver* drv);
346 // int importData(QTextStream& ts, SgAgvDriver* drv);
347 
348 protected:
349 
350 };
351 /*=====================================================================================================*/
352 
353 
354 
355 
356 
357 /***===================================================================================================*/
362 /*=====================================================================================================*/
364 {
365 public:
366  inline SgAgvPreaSection() {prefix_="PREA";};
367  inline SgAgvPreaSection(int idx) : SgAgvSection("PREA", idx) {};
368  inline ~SgAgvPreaSection() {};
369  inline QString className() const {return "SgAgvPreaSection";};
370 
371  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
372 
373  int exportData(QTextStream& ts, SgAgvDriver* drv);
374  int importData(QTextStream& ts, SgAgvDriver* drv);
375 
376 protected:
377 };
378 /*=====================================================================================================*/
379 
380 
381 
382 
383 /***===================================================================================================*/
388 /*=====================================================================================================*/
390 {
391 public:
393  {prefix_="TEXT"; histVer_=-1;};
394  inline SgAgvTextSection(int idx) : SgAgvSection("TEXT", idx), headerByIdx_(),
395  numByIdx_(), maxLenByIdx_() {histVer_=idx+1;};
396  inline ~SgAgvTextSection() {headerByIdx_.clear(); numByIdx_.clear(); maxLenByIdx_.clear();};
397  inline QString className() const {return "SgAgvTextSection";};
398 
399  inline SgVlbiHistory& history() {return history_;};
400  inline const SgVlbiHistory& history() const {return history_;};
401 
402  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
403 
404  int exportData(QTextStream& ts, SgAgvDriver* drv);
405  int importData(QTextStream& ts, SgAgvDriver* drv);
406 
407 protected:
408  QMap<int, QString> headerByIdx_;
409  QMap<int, int> numByIdx_;
410  QMap<int, int> maxLenByIdx_;
413  int histVer_;
414 
415  bool parseChapterInitString(const QString& str, int& num2read);
416 };
417 /*=====================================================================================================*/
418 
419 
420 
421 
422 /***===================================================================================================*/
427 /*=====================================================================================================*/
429 {
430 public:
431  inline SgAgvTocsSection() {prefix_="TOCS";};
432  inline SgAgvTocsSection(int idx) : SgAgvSection("TOCS", idx) {};
433  inline ~SgAgvTocsSection() {;};
434  inline QString className() const {return "SgAgvTocsSection";};
435 
436  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
437 
438  int exportData(QTextStream& ts, SgAgvDriver* drv);
439  int importData(QTextStream& ts, SgAgvDriver* drv);
440 
441 protected:
444 };
445 /*=====================================================================================================*/
446 
447 
448 
449 
450 
451 /***===================================================================================================*/
456 /*=====================================================================================================*/
458 {
459 public:
460  inline SgAgvDataSection() {prefix_="DATA";};
461  inline SgAgvDataSection(int idx) : SgAgvSection("DATA", idx) {};
462  inline ~SgAgvDataSection() {;};
463  inline QString className() const {return "SgAgvDataSection";};
464 
465  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
466 
467  int exportData(QTextStream& ts, SgAgvDriver* drv);
468  int importData(QTextStream& ts, SgAgvDriver* drv);
469 
470 protected:
471  int writeDatum(QTextStream& ts, SgAgvDatumDescriptor* dd, const QString& prfx, SgAgvDriver* drv);
472  int writeDatumOpt(QTextStream& ts, SgAgvDatumDescriptor* dd, const QString& prfx, SgAgvDriver* drv);
473 };
474 /*=====================================================================================================*/
475 
476 
477 
478 
479 
480 
481 /***===================================================================================================*/
486 /*=====================================================================================================*/
488 {
489 public:
491  inputFmtDate_(tZero) {idx_=0;};
492  inline SgAgvChunk(int idx) : sFile_(idx), sPrea_(idx), sText_(idx), sTocs_(idx), sData_(idx),
494  inputFmtDate_(tZero) {idx_=idx;};
495  inline ~SgAgvChunk() {};
496  inline QString className() const {return "SgAgvChunk";};
497  inline int getIdx() const {return idx_;};
498 
499  void fillDataStructures(const SgVlbiSession *session, SgAgvDriver* drv);
500 
501  void exportData(QTextStream& ts, SgAgvDriver* drv);
502  void importData(QTextStream& ts, SgAgvDriver* drv);
503 
504  inline SgVlbiHistory& history() {return sText_.history();};
505  inline const SgVlbiHistory& history() const {return sText_.history();};
506 
507 
508 protected:
509  int idx_;
516  QString sMagicString_;
517  static const QString magicPrefix_;
518  static const QString currentFmtVersion_; //the verions is a string in a form of an
519  //date, like "2005.01.14"
522  bool parseMagicString(const QString& str);
523  bool parseEndString(const QString& str);
524 };
525 /*=====================================================================================================*/
526 
527 
528 /*=====================================================================================================*/
529 
530 /*=====================================================================================================*/
531 #endif //SG_IO_AGV
532 
AgvDataScope
Definition: SgIoAgv.h:57
@ ADS_SESSION
session scope
Definition: SgIoAgv.h:59
@ ADS_NONE
undefinite
Definition: SgIoAgv.h:58
@ ADS_BASELINE
baseline scope
Definition: SgIoAgv.h:62
@ ADS_SCAN
scan scope
Definition: SgIoAgv.h:60
@ ADS_STATION
station scope
Definition: SgIoAgv.h:61
AgvDataType
Definition: SgIoAgv.h:67
@ ADT_I8
baseline scope
Definition: SgIoAgv.h:72
@ ADT_CHAR
session scope
Definition: SgIoAgv.h:69
@ ADT_R4
baseline scope
Definition: SgIoAgv.h:73
@ ADT_R8
baseline scope
Definition: SgIoAgv.h:74
@ ADT_NONE
undefinite
Definition: SgIoAgv.h:68
@ ADT_I2
scan scope
Definition: SgIoAgv.h:70
@ ADT_I4
station scope
Definition: SgIoAgv.h:71
AgvContentStyle
Definition: SgIoAgv.h:79
@ ACS_ANY
Definition: SgIoAgv.h:86
@ ACS_NATIVE
Definition: SgIoAgv.h:81
@ ACS_GVH_VDB
Definition: SgIoAgv.h:83
@ ACS_NONE
undefinited
Definition: SgIoAgv.h:80
@ ACS_GVH_PIMA
Definition: SgIoAgv.h:84
@ ACS_GVH
Definition: SgIoAgv.h:85
@ ACS_GVH_DBH
Definition: SgIoAgv.h:82
const SgMJD tZero(1957, 10, 4)
int idx_
Definition: SgIoAgv.h:505
static const QString magicPrefix_
Definition: SgIoAgv.h:517
QString sMagicString_
Definition: SgIoAgv.h:516
QString inputFmtVersion_
Definition: SgIoAgv.h:520
static const QString currentFmtVersion_
Definition: SgIoAgv.h:518
SgAgvSection sHeap_
Definition: SgIoAgv.h:515
SgAgvChunk(int idx)
Definition: SgIoAgv.h:492
void exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1700
QString className() const
Definition: SgIoAgv.h:496
SgAgvFileSection sFile_
Definition: SgIoAgv.h:510
SgAgvPreaSection sPrea_
Definition: SgIoAgv.h:511
SgAgvTextSection sText_
Definition: SgIoAgv.h:512
bool parseEndString(const QString &str)
Definition: SgIoAgv.cpp:1830
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1687
bool parseMagicString(const QString &str)
Definition: SgIoAgv.cpp:1781
void importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1728
SgMJD inputFmtDate_
Definition: SgIoAgv.h:521
const SgVlbiHistory & history() const
Definition: SgIoAgv.h:505
SgVlbiHistory & history()
Definition: SgIoAgv.h:504
int getIdx() const
Definition: SgIoAgv.h:497
SgAgvDataSection sData_
Definition: SgIoAgv.h:514
~SgAgvChunk()
Definition: SgIoAgv.h:495
SgAgvChunk()
Definition: SgIoAgv.h:490
SgAgvTocsSection sTocs_
Definition: SgIoAgv.h:513
int importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1637
int writeDatumOpt(QTextStream &ts, SgAgvDatumDescriptor *dd, const QString &prfx, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1489
int writeDatum(QTextStream &ts, SgAgvDatumDescriptor *dd, const QString &prfx, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1411
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1330
SgAgvDataSection(int idx)
Definition: SgIoAgv.h:461
QString className() const
Definition: SgIoAgv.h:463
int exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1346
void setDim2(int d)
Definition: SgIoAgv.h:138
AgvDataType getDataType() const
Definition: SgIoAgv.h:120
void setDim1(int d)
Definition: SgIoAgv.h:137
bool getIsUsable() const
Definition: SgIoAgv.h:113
static QString dataType2str(AgvDataType)
Definition: SgIoAgv.cpp:201
int d3() const
Definition: SgIoAgv.h:152
int getDim1() const
Definition: SgIoAgv.h:122
QString className() const
Definition: SgIoAgv.h:110
void setDataType(AgvDataType typ)
Definition: SgIoAgv.h:135
int totalSize() const
Definition: SgIoAgv.cpp:182
void setDim4(int d)
Definition: SgIoAgv.h:140
void setLCode(const QString &lCode)
Definition: SgIoAgv.h:131
virtual ~SgAgvDatumDescriptor()
Definition: SgIoAgv.h:109
int d1() const
Definition: SgIoAgv.h:150
unsigned int getExpectance() const
Definition: SgIoAgv.h:128
const QString & getLCode() const
Definition: SgIoAgv.h:116
AgvDataScope dataScope_
Definition: SgIoAgv.h:165
unsigned int expectance_
Definition: SgIoAgv.h:175
int getDim3() const
Definition: SgIoAgv.h:124
bool getHasMutableScope() const
Definition: SgIoAgv.h:114
int totalMaxSize() const
Definition: SgIoAgv.h:154
AgvDataType dataType_
Definition: SgIoAgv.h:166
SgAgvDriver * driver_
Definition: SgIoAgv.h:172
int d2() const
Definition: SgIoAgv.h:151
void setIsUsable(bool is)
Definition: SgIoAgv.h:143
const SgAgvDriver * getDriver() const
Definition: SgIoAgv.h:127
int d4() const
Definition: SgIoAgv.h:153
void setDataScope(AgvDataScope scope)
Definition: SgIoAgv.h:134
bool getHasData() const
Definition: SgIoAgv.h:112
const QString & getDescription() const
Definition: SgIoAgv.h:117
int effectiveSize(int d) const
Definition: SgIoAgv.cpp:126
bool isExpected(AgvContentStyle contentStyle) const
Definition: SgIoAgv.h:160
int getDim2() const
Definition: SgIoAgv.h:123
void setExpectance(unsigned int expect)
Definition: SgIoAgv.h:147
void setDim3(int d)
Definition: SgIoAgv.h:139
void setHasData(bool h)
Definition: SgIoAgv.h:142
AgvDataScope getDataScope() const
Definition: SgIoAgv.h:119
static QString dataScope2str(AgvDataScope)
Definition: SgIoAgv.cpp:210
void setDriver(SgAgvDriver *drv)
Definition: SgIoAgv.h:146
void setDescription(const QString &description)
Definition: SgIoAgv.h:132
int getDim4() const
Definition: SgIoAgv.h:125
QString description_
Definition: SgIoAgv.h:164
void setHasMutableScope(bool has)
Definition: SgIoAgv.h:144
const QString & getValue(int idx2, int idx3, int idx4) const
Definition: SgIoAgv.cpp:406
QString className() const
Definition: SgIoAgv.h:237
QString & value(int idx2, int idx3, int idx4)
Definition: SgIoAgv.cpp:426
void allocateSpace()
Definition: SgIoAgv.cpp:345
SgAgvDatumString(SgAgvDatumDescriptor *descr)
Definition: SgIoAgv.h:234
void freeSpace()
Definition: SgIoAgv.cpp:374
SgAgvDatumDescriptor * descriptor()
Definition: SgIoAgv.h:242
bool isAllocated() const
Definition: SgIoAgv.h:238
QString * data_
Definition: SgIoAgv.h:254
SgAgvDatumDescriptor * descriptor_
Definition: SgIoAgv.h:253
SgAgvDatum()
Definition: SgIoAgv.h:195
~SgAgvDatum()
Definition: SgIoAgv.h:199
QString className() const
Definition: SgIoAgv.h:200
void allocateSpace()
Definition: SgIoAgv.cpp:226
SgAgvDatumDescriptor * descriptor_
Definition: SgIoAgv.h:214
bool isAllocated() const
Definition: SgIoAgv.h:201
bool isEmpty()
Definition: SgIoAgv.cpp:265
C getValue(int idx1, int idx2, int idx3, int idx4) const
Definition: SgIoAgv.cpp:283
C * data_
Definition: SgIoAgv.h:215
C & value(int idx1, int idx2, int idx3, int idx4)
Definition: SgIoAgv.cpp:305
SgAgvDatum(SgAgvDatumDescriptor *descr)
Definition: SgIoAgv.h:197
void freeSpace()
Definition: SgIoAgv.cpp:255
SgAgvFileSection(int idx)
Definition: SgIoAgv.h:339
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:596
QString className() const
Definition: SgIoAgv.h:341
int exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:623
SgAgvPreaSection(int idx)
Definition: SgIoAgv.h:367
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:646
QString className() const
Definition: SgIoAgv.h:369
int exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:698
int importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:714
QString className() const
Definition: SgIoAgv.h:276
int getSubIdx() const
Definition: SgIoAgv.h:280
SgAgvSection * owner_
Definition: SgIoAgv.h:287
const QString & lCode() const
Definition: SgIoAgv.h:279
int exportData(QTextStream &ts, const QString &prefix)
Definition: SgIoAgv.cpp:466
SgAgvRecord(SgAgvSection *owner, const QString &content, int si=0)
Definition: SgIoAgv.h:273
const QString & content() const
Definition: SgIoAgv.h:278
SgAgvRecord()
Definition: SgIoAgv.h:272
QString content_
Definition: SgIoAgv.h:285
~SgAgvRecord()
Definition: SgIoAgv.h:275
int subIdx_
Definition: SgIoAgv.h:288
QString lCode_
Definition: SgIoAgv.h:286
int exportData(QTextStream &ts, SgAgvDriver *)
Definition: SgIoAgv.h:313
bool parseSectionLengthString(const QString &str, int &num2read)
Definition: SgIoAgv.cpp:551
SgAgvSection()
Definition: SgIoAgv.h:306
~SgAgvSection()
Definition: SgIoAgv.h:308
int importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:494
QString className() const
Definition: SgIoAgv.h:309
SgMJD startEpoch_
Definition: SgIoAgv.h:318
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:482
QString prefix_
Definition: SgIoAgv.h:319
SgAgvSection(const QString prefix, int idx)
Definition: SgIoAgv.h:307
SgAgvTextSection(int idx)
Definition: SgIoAgv.h:394
SgVlbiHistory & history()
Definition: SgIoAgv.h:399
SgVlbiHistory history_
Definition: SgIoAgv.h:411
QMap< int, QString > headerByIdx_
Definition: SgIoAgv.h:408
QMap< int, int > maxLenByIdx_
Definition: SgIoAgv.h:410
SgMJD histEpoch_
Definition: SgIoAgv.h:412
int exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:981
int importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1020
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:933
const SgVlbiHistory & history() const
Definition: SgIoAgv.h:400
QString className() const
Definition: SgIoAgv.h:397
bool parseChapterInitString(const QString &str, int &num2read)
Definition: SgIoAgv.cpp:1090
QMap< int, int > numByIdx_
Definition: SgIoAgv.h:409
void fillDataStructures(const SgVlbiSession *session, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1152
SgAgvDatumDescriptor * agvRecord2datumDescriptor(SgAgvRecord *rec)
Definition: SgIoAgv.cpp:1201
SgAgvTocsSection(int idx)
Definition: SgIoAgv.h:432
int importData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1294
QString className() const
Definition: SgIoAgv.h:434
int exportData(QTextStream &ts, SgAgvDriver *drv)
Definition: SgIoAgv.cpp:1271
SgAgvRecord * datumDescriptor2agvRecord(SgAgvDatumDescriptor *dd)
Definition: SgIoAgv.cpp:1184
Definition: SgMJD.h:59