1 /*****************************************************************************
2 * Copyright (c) 2019 FrontISTR Commons
3 * This software is released under the MIT License, see LICENSE.txt
4 *****************************************************************************/
5 /*
6 CFSTRDB_Fixtemp Ver.1.0
7 */
8
9 #include "CFSTRDB.h"
10 #include "CHECData.h"
11
12 using namespace std;
13
CFSTRDB_Fixtemp()14 CFSTRDB_Fixtemp::CFSTRDB_Fixtemp()
15 : CFSTRDataBlock(FSTRDB_FIXTEMP), ItemList() {
16 amp[0] = 0;
17 }
18
~CFSTRDB_Fixtemp()19 CFSTRDB_Fixtemp::~CFSTRDB_Fixtemp() { Clear(); }
20
Clear()21 void CFSTRDB_Fixtemp::Clear() {
22 ItemList.clear();
23 amp[0] = 0;
24 }
25
Write(CHECData * hecd)26 void CFSTRDB_Fixtemp::Write(CHECData *hecd) {
27 if (ItemList.size() == 0) return;
28
29 if (amp[0] == 0) {
30 hecd->WriteHeader("!FIXTEMP");
31
32 } else {
33 hecd->WriteHeader("!FIXTEMP", "S", "AMP", amp);
34 }
35
36 vector<CItem>::iterator iter;
37
38 for (iter = ItemList.begin(); iter != ItemList.end(); iter++) {
39 hecd->WriteData("SF", iter->ngrp, iter->value);
40 }
41 }
42
Read(CHECData * hecd,char * header_line)43 bool CFSTRDB_Fixtemp::Read(CHECData *hecd, char *header_line) {
44 int rcode[10];
45 amp[0] = 0;
46
47 if (!hecd->ParseHeader(header_line, rcode, "S", "AMP", amp)) return false;
48
49 while (1) {
50 CItem item;
51
52 if (!hecd->ReadData(rcode, "SF", item.ngrp, &item.value)) break;
53
54 ItemList.push_back(item);
55 }
56
57 return true;
58 }
59