LCOV - code coverage report
Current view: top level - alma/ASDM - SubscanRow.cc (source / functions) Hit Total Coverage
Test: casacpp_coverage.info Lines: 134 349 38.4 %
Date: 2024-12-11 20:54:31 Functions: 28 64 43.8 %

          Line data    Source code
       1             : 
       2             : /*
       3             :  * ALMA - Atacama Large Millimeter Array
       4             :  * (c) European Southern Observatory, 2002
       5             :  * (c) Associated Universities Inc., 2002
       6             :  * Copyright by ESO (in the framework of the ALMA collaboration),
       7             :  * Copyright by AUI (in the framework of the ALMA collaboration),
       8             :  * All rights reserved.
       9             :  * 
      10             :  * This library is free software; you can redistribute it and/or
      11             :  * modify it under the terms of the GNU Lesser General Public
      12             :  * License as published by the Free software Foundation; either
      13             :  * version 2.1 of the License, or (at your option) any later version.
      14             :  * 
      15             :  * This library is distributed in the hope that it will be useful,
      16             :  * but WITHOUT ANY WARRANTY, without even the implied warranty of
      17             :  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      18             :  * Lesser General Public License for more details.
      19             :  * 
      20             :  * You should have received a copy of the GNU Lesser General Public
      21             :  * License along with this library; if not, write to the Free Software
      22             :  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
      23             :  * MA 02111-1307  USA
      24             :  *
      25             :  * Warning!
      26             :  *  -------------------------------------------------------------------- 
      27             :  * | This is generated code!  Do not modify this file.                  |
      28             :  * | If you do, all changes will be lost when the file is re-generated. |
      29             :  *  --------------------------------------------------------------------
      30             :  *
      31             :  * File SubscanRow.cpp
      32             :  */
      33             :  
      34             : #include <vector>
      35             : #include <set>
      36             : 
      37             : #include <alma/ASDM/ASDM.h>
      38             : #include <alma/ASDM/SubscanRow.h>
      39             : #include <alma/ASDM/SubscanTable.h>
      40             : 
      41             : #include <alma/ASDM/ExecBlockTable.h>
      42             : #include <alma/ASDM/ExecBlockRow.h>
      43             :         
      44             : 
      45             : using asdm::ASDM;
      46             : using asdm::SubscanRow;
      47             : using asdm::SubscanTable;
      48             : 
      49             : using asdm::ExecBlockTable;
      50             : using asdm::ExecBlockRow;
      51             : 
      52             : 
      53             : #include <alma/ASDM/Parser.h>
      54             : 
      55             : #include <alma/ASDM/EnumerationParser.h>
      56             : #include <alma/ASDM/ASDMValuesParser.h>
      57             :  
      58             : #include <alma/ASDM/InvalidArgumentException.h>
      59             : 
      60             : using namespace std;
      61             : 
      62             : namespace asdm {
      63       16460 :         SubscanRow::~SubscanRow() {
      64       16460 :         }
      65             : 
      66             :         /**
      67             :          * Return the table to which this row belongs.
      68             :          */
      69           0 :         SubscanTable &SubscanRow::getTable() const {
      70           0 :                 return table;
      71             :         }
      72             : 
      73           0 :         bool SubscanRow::isAdded() const {
      74           0 :                 return hasBeenAdded;
      75             :         }       
      76             : 
      77        8230 :         void SubscanRow::isAdded(bool added) {
      78        8230 :                 hasBeenAdded = added;
      79        8230 :         }
      80             :         
      81             : #ifndef WITHOUT_ACS
      82             :         using asdmIDL::SubscanRowIDL;
      83             : #endif
      84             :         
      85             : #ifndef WITHOUT_ACS
      86             :         /**
      87             :          * Return this row in the form of an IDL struct.
      88             :          * @return The values of this row as a SubscanRowIDL struct.
      89             :          */
      90             :         SubscanRowIDL *SubscanRow::toIDL() const {
      91             :                 SubscanRowIDL *x = new SubscanRowIDL ();
      92             :                 
      93             :                 // Fill the IDL structure.
      94             :         
      95             :                 
      96             :         
      97             :                 
      98             :                 
      99             :                 
     100             :                         
     101             :                                 
     102             :                 x->scanNumber = scanNumber;
     103             :                                 
     104             :                         
     105             :                 
     106             :         
     107             : 
     108             :         
     109             :                 
     110             :                 
     111             :                 
     112             :                         
     113             :                                 
     114             :                 x->subscanNumber = subscanNumber;
     115             :                                 
     116             :                         
     117             :                 
     118             :         
     119             : 
     120             :         
     121             :                 
     122             :                 
     123             :                 
     124             :                         
     125             :                 x->startTime = startTime.toIDLArrayTime();
     126             :                         
     127             :                 
     128             :         
     129             : 
     130             :         
     131             :                 
     132             :                 
     133             :                 
     134             :                         
     135             :                 x->endTime = endTime.toIDLArrayTime();
     136             :                         
     137             :                 
     138             :         
     139             : 
     140             :         
     141             :                 
     142             :                 
     143             :                 
     144             :                         
     145             :                                 
     146             :                 x->fieldName = CORBA::string_dup(fieldName.c_str());
     147             :                                 
     148             :                         
     149             :                 
     150             :         
     151             : 
     152             :         
     153             :                 
     154             :                 
     155             :                 
     156             :                         
     157             :                                 
     158             :                 x->subscanIntent = subscanIntent;
     159             :                                 
     160             :                         
     161             :                 
     162             :         
     163             : 
     164             :         
     165             :                 
     166             :                 
     167             :                 x->subscanModeExists = subscanModeExists;
     168             :                 
     169             :                 
     170             :                         
     171             :                                 
     172             :                 x->subscanMode = subscanMode;
     173             :                                 
     174             :                         
     175             :                 
     176             :         
     177             : 
     178             :         
     179             :                 
     180             :                 
     181             :                 
     182             :                         
     183             :                                 
     184             :                 x->numIntegration = numIntegration;
     185             :                                 
     186             :                         
     187             :                 
     188             :         
     189             : 
     190             :         
     191             :                 
     192             :                 
     193             :                 
     194             :                         
     195             :                 x->numSubintegration.length(numSubintegration.size());
     196             :                 for (unsigned int i = 0; i < numSubintegration.size(); ++i) {
     197             :                         
     198             :                                 
     199             :                         x->numSubintegration[i] = numSubintegration.at(i);
     200             :                                 
     201             :                         
     202             :                 }
     203             :                         
     204             :                 
     205             :         
     206             : 
     207             :         
     208             :                 
     209             :                 
     210             :                 x->correlatorCalibrationExists = correlatorCalibrationExists;
     211             :                 
     212             :                 
     213             :                         
     214             :                                 
     215             :                 x->correlatorCalibration = correlatorCalibration;
     216             :                                 
     217             :                         
     218             :                 
     219             :         
     220             : 
     221             :         
     222             :         
     223             :                 
     224             :         
     225             :         
     226             :                 
     227             :                 
     228             :                 
     229             :                         
     230             :                 x->execBlockId = execBlockId.toIDLTag();
     231             :                         
     232             :                                 
     233             :         
     234             : 
     235             :         
     236             :                 
     237             :         
     238             : 
     239             :                 
     240             :                 return x;
     241             :         
     242             :         }
     243             :         
     244             :         void SubscanRow::toIDL(asdmIDL::SubscanRowIDL& x) const {
     245             :                 // Set the x's fields.
     246             :         
     247             :                 
     248             :         
     249             :                 
     250             :                 
     251             :                 
     252             :                         
     253             :                                 
     254             :                 x.scanNumber = scanNumber;
     255             :                                 
     256             :                         
     257             :                 
     258             :         
     259             : 
     260             :         
     261             :                 
     262             :                 
     263             :                 
     264             :                         
     265             :                                 
     266             :                 x.subscanNumber = subscanNumber;
     267             :                                 
     268             :                         
     269             :                 
     270             :         
     271             : 
     272             :         
     273             :                 
     274             :                 
     275             :                 
     276             :                         
     277             :                 x.startTime = startTime.toIDLArrayTime();
     278             :                         
     279             :                 
     280             :         
     281             : 
     282             :         
     283             :                 
     284             :                 
     285             :                 
     286             :                         
     287             :                 x.endTime = endTime.toIDLArrayTime();
     288             :                         
     289             :                 
     290             :         
     291             : 
     292             :         
     293             :                 
     294             :                 
     295             :                 
     296             :                         
     297             :                                 
     298             :                 x.fieldName = CORBA::string_dup(fieldName.c_str());
     299             :                                 
     300             :                         
     301             :                 
     302             :         
     303             : 
     304             :         
     305             :                 
     306             :                 
     307             :                 
     308             :                         
     309             :                                 
     310             :                 x.subscanIntent = subscanIntent;
     311             :                                 
     312             :                         
     313             :                 
     314             :         
     315             : 
     316             :         
     317             :                 
     318             :                 
     319             :                 x.subscanModeExists = subscanModeExists;
     320             :                 
     321             :                 
     322             :                         
     323             :                                 
     324             :                 x.subscanMode = subscanMode;
     325             :                                 
     326             :                         
     327             :                 
     328             :         
     329             : 
     330             :         
     331             :                 
     332             :                 
     333             :                 
     334             :                         
     335             :                                 
     336             :                 x.numIntegration = numIntegration;
     337             :                                 
     338             :                         
     339             :                 
     340             :         
     341             : 
     342             :         
     343             :                 
     344             :                 
     345             :                 
     346             :                         
     347             :                 x.numSubintegration.length(numSubintegration.size());
     348             :                 for (unsigned int i = 0; i < numSubintegration.size(); ++i) {
     349             :                         
     350             :                                 
     351             :                         x.numSubintegration[i] = numSubintegration.at(i);
     352             :                                 
     353             :                         
     354             :                 }
     355             :                         
     356             :                 
     357             :         
     358             : 
     359             :         
     360             :                 
     361             :                 
     362             :                 x.correlatorCalibrationExists = correlatorCalibrationExists;
     363             :                 
     364             :                 
     365             :                         
     366             :                                 
     367             :                 x.correlatorCalibration = correlatorCalibration;
     368             :                                 
     369             :                         
     370             :                 
     371             :         
     372             : 
     373             :         
     374             :         
     375             :                 
     376             :         
     377             :         
     378             :                 
     379             :                 
     380             :                 
     381             :                         
     382             :                 x.execBlockId = execBlockId.toIDLTag();
     383             :                         
     384             :                                 
     385             :         
     386             : 
     387             :         
     388             :                 
     389             :         
     390             : 
     391             :         
     392             :         }
     393             : #endif
     394             :         
     395             : 
     396             : #ifndef WITHOUT_ACS
     397             :         /**
     398             :          * Fill the values of this row from the IDL struct SubscanRowIDL.
     399             :          * @param x The IDL struct containing the values used to fill this row.
     400             :          */
     401             :         void SubscanRow::setFromIDL (SubscanRowIDL x){
     402             :                 try {
     403             :                 // Fill the values from x.
     404             :         
     405             :                 
     406             :         
     407             :                 
     408             :                 
     409             :                         
     410             :                 setScanNumber(x.scanNumber);
     411             :                         
     412             :                 
     413             :                 
     414             :         
     415             : 
     416             :         
     417             :                 
     418             :                 
     419             :                         
     420             :                 setSubscanNumber(x.subscanNumber);
     421             :                         
     422             :                 
     423             :                 
     424             :         
     425             : 
     426             :         
     427             :                 
     428             :                 
     429             :                         
     430             :                 setStartTime(ArrayTime (x.startTime));
     431             :                         
     432             :                 
     433             :                 
     434             :         
     435             : 
     436             :         
     437             :                 
     438             :                 
     439             :                         
     440             :                 setEndTime(ArrayTime (x.endTime));
     441             :                         
     442             :                 
     443             :                 
     444             :         
     445             : 
     446             :         
     447             :                 
     448             :                 
     449             :                         
     450             :                 setFieldName(string (x.fieldName));
     451             :                         
     452             :                 
     453             :                 
     454             :         
     455             : 
     456             :         
     457             :                 
     458             :                 
     459             :                         
     460             :                 setSubscanIntent(x.subscanIntent);
     461             :                         
     462             :                 
     463             :                 
     464             :         
     465             : 
     466             :         
     467             :                 
     468             :                 subscanModeExists = x.subscanModeExists;
     469             :                 if (x.subscanModeExists) {
     470             :                 
     471             :                 
     472             :                         
     473             :                 setSubscanMode(x.subscanMode);
     474             :                         
     475             :                 
     476             :                 
     477             :                 }
     478             :                 
     479             :         
     480             : 
     481             :         
     482             :                 
     483             :                 
     484             :                         
     485             :                 setNumIntegration(x.numIntegration);
     486             :                         
     487             :                 
     488             :                 
     489             :         
     490             : 
     491             :         
     492             :                 
     493             :                 
     494             :                         
     495             :                 numSubintegration .clear();
     496             :                 for (unsigned int i = 0; i <x.numSubintegration.length(); ++i) {
     497             :                         
     498             :                         numSubintegration.push_back(x.numSubintegration[i]);
     499             :                         
     500             :                 }
     501             :                         
     502             :                 
     503             :                 
     504             :         
     505             : 
     506             :         
     507             :                 
     508             :                 correlatorCalibrationExists = x.correlatorCalibrationExists;
     509             :                 if (x.correlatorCalibrationExists) {
     510             :                 
     511             :                 
     512             :                         
     513             :                 setCorrelatorCalibration(x.correlatorCalibration);
     514             :                         
     515             :                 
     516             :                 
     517             :                 }
     518             :                 
     519             :         
     520             : 
     521             :         
     522             :         
     523             :                 
     524             :         
     525             :                 
     526             :                 
     527             :                         
     528             :                 setExecBlockId(Tag (x.execBlockId));
     529             :                         
     530             :                 
     531             :                 
     532             :         
     533             : 
     534             :         
     535             :                 
     536             :         
     537             : 
     538             :                 } catch (const IllegalAccessException &err) {
     539             :                         throw ConversionException (err.getMessage(),"Subscan");
     540             :                 }
     541             :         }
     542             : #endif
     543             :         
     544             :         /**
     545             :          * Return this row in the form of an XML string.
     546             :          * @return The values of this row as an XML string.
     547             :          */
     548         536 :         string SubscanRow::toXML() const {
     549         536 :                 string buf;
     550         536 :                 buf.append("<row> \n");
     551             :                 
     552             :         
     553             :                 
     554             :         
     555             :                 
     556             :                 
     557         536 :                 Parser::toXML(scanNumber, "scanNumber", buf);
     558             :                 
     559             :                 
     560             :         
     561             : 
     562             :         
     563             :                 
     564             :                 
     565         536 :                 Parser::toXML(subscanNumber, "subscanNumber", buf);
     566             :                 
     567             :                 
     568             :         
     569             : 
     570             :         
     571             :                 
     572             :                 
     573         536 :                 Parser::toXML(startTime, "startTime", buf);
     574             :                 
     575             :                 
     576             :         
     577             : 
     578             :         
     579             :                 
     580             :                 
     581         536 :                 Parser::toXML(endTime, "endTime", buf);
     582             :                 
     583             :                 
     584             :         
     585             : 
     586             :         
     587             :                 
     588             :                 
     589         536 :                 Parser::toXML(fieldName, "fieldName", buf);
     590             :                 
     591             :                 
     592             :         
     593             : 
     594             :         
     595             :                 
     596             :                 
     597         536 :                         buf.append(EnumerationParser::toXML("subscanIntent", subscanIntent));
     598             :                 
     599             :                 
     600             :         
     601             : 
     602             :         
     603             :                 
     604         536 :                 if (subscanModeExists) {
     605             :                 
     606             :                 
     607           0 :                         buf.append(EnumerationParser::toXML("subscanMode", subscanMode));
     608             :                 
     609             :                 
     610             :                 }
     611             :                 
     612             :         
     613             : 
     614             :         
     615             :                 
     616             :                 
     617         536 :                 Parser::toXML(numIntegration, "numIntegration", buf);
     618             :                 
     619             :                 
     620             :         
     621             : 
     622             :         
     623             :                 
     624             :                 
     625         536 :                 Parser::toXML(numSubintegration, "numSubintegration", buf);
     626             :                 
     627             :                 
     628             :         
     629             : 
     630             :         
     631             :                 
     632         536 :                 if (correlatorCalibrationExists) {
     633             :                 
     634             :                 
     635           0 :                         buf.append(EnumerationParser::toXML("correlatorCalibration", correlatorCalibration));
     636             :                 
     637             :                 
     638             :                 }
     639             :                 
     640             :         
     641             : 
     642             :         
     643             :         
     644             :                 
     645             :         
     646             :                 
     647             :                 
     648         536 :                 Parser::toXML(execBlockId, "execBlockId", buf);
     649             :                 
     650             :                 
     651             :         
     652             : 
     653             :         
     654             :                 
     655             :         
     656             : 
     657             :                 
     658         536 :                 buf.append("</row>\n");
     659         536 :                 return buf;
     660           0 :         }
     661             : 
     662             :         /**
     663             :          * Fill the values of this row from an XML string 
     664             :          * that was produced by the toXML() method.
     665             :          * @param x The XML string being used to set the values of this row.
     666             :          */
     667        7694 :         void SubscanRow::setFromXML (string rowDoc) {
     668        7694 :                 Parser row(rowDoc);
     669        7694 :                 string s = "";
     670             :                 try {
     671             :         
     672             :                 
     673             :         
     674             :                 
     675             :                         
     676        7694 :                 setScanNumber(Parser::getInteger("scanNumber","Subscan",rowDoc));
     677             :                         
     678             :                 
     679             :         
     680             : 
     681             :         
     682             :                 
     683             :                         
     684        7694 :                 setSubscanNumber(Parser::getInteger("subscanNumber","Subscan",rowDoc));
     685             :                         
     686             :                 
     687             :         
     688             : 
     689             :         
     690             :                 
     691             :                         
     692        7694 :                 setStartTime(Parser::getArrayTime("startTime","Subscan",rowDoc));
     693             :                         
     694             :                 
     695             :         
     696             : 
     697             :         
     698             :                 
     699             :                         
     700        7694 :                 setEndTime(Parser::getArrayTime("endTime","Subscan",rowDoc));
     701             :                         
     702             :                 
     703             :         
     704             : 
     705             :         
     706             :                 
     707             :                         
     708        7694 :                 setFieldName(Parser::getString("fieldName","Subscan",rowDoc));
     709             :                         
     710             :                 
     711             :         
     712             : 
     713             :         
     714             :                 
     715             :                 
     716             :                 
     717        7694 :                 subscanIntent = EnumerationParser::getSubscanIntent("subscanIntent","Subscan",rowDoc);
     718             :                 
     719             :                 
     720             :                 
     721             :         
     722             : 
     723             :         
     724             :                 
     725        7694 :         if (row.isStr("<subscanMode>")) {
     726             :                 
     727             :                 
     728             :                 
     729        7275 :                 subscanMode = EnumerationParser::getSwitchingMode("subscanMode","Subscan",rowDoc);
     730             :                 
     731             :                 
     732             :                 
     733        7275 :                 subscanModeExists = true;
     734             :         }
     735             :                 
     736             :         
     737             : 
     738             :         
     739             :                 
     740             :                         
     741        7694 :                 setNumIntegration(Parser::getInteger("numIntegration","Subscan",rowDoc));
     742             :                         
     743             :                 
     744             :         
     745             : 
     746             :         
     747             :                 
     748             :                         
     749             :                                         
     750        7694 :                 setNumSubintegration(Parser::get1DInteger("numSubintegration","Subscan",rowDoc));
     751             :                                 
     752             :                         
     753             :                 
     754             :         
     755             : 
     756             :         
     757             :                 
     758        7694 :         if (row.isStr("<correlatorCalibration>")) {
     759             :                 
     760             :                 
     761             :                 
     762        7275 :                 correlatorCalibration = EnumerationParser::getCorrelatorCalibration("correlatorCalibration","Subscan",rowDoc);
     763             :                 
     764             :                 
     765             :                 
     766        7275 :                 correlatorCalibrationExists = true;
     767             :         }
     768             :                 
     769             :         
     770             : 
     771             :         
     772             :         
     773             :                 
     774             :         
     775             :                 
     776             :                         
     777        7694 :                 setExecBlockId(Parser::getTag("execBlockId","ExecBlock",rowDoc));
     778             :                         
     779             :                 
     780             :         
     781             : 
     782             :         
     783             :                 
     784             :         
     785             : 
     786           0 :                 } catch (const IllegalAccessException &err) {
     787           0 :                         throw ConversionException (err.getMessage(),"Subscan");
     788           0 :                 }
     789        7694 :         }
     790             :         
     791           0 :         void SubscanRow::toBin(EndianOSStream& eoss) {
     792             :         
     793             :         
     794             :         
     795             :         
     796             :                 
     797           0 :         execBlockId.toBin(eoss);
     798             :                 
     799             :         
     800             : 
     801             :         
     802             :         
     803             :                 
     804             :                                                 
     805           0 :                         eoss.writeInt(scanNumber);
     806             :                                 
     807             :                 
     808             :         
     809             : 
     810             :         
     811             :         
     812             :                 
     813             :                                                 
     814           0 :                         eoss.writeInt(subscanNumber);
     815             :                                 
     816             :                 
     817             :         
     818             : 
     819             :         
     820             :         
     821             :                 
     822           0 :         startTime.toBin(eoss);
     823             :                 
     824             :         
     825             : 
     826             :         
     827             :         
     828             :                 
     829           0 :         endTime.toBin(eoss);
     830             :                 
     831             :         
     832             : 
     833             :         
     834             :         
     835             :                 
     836             :                                                 
     837           0 :                         eoss.writeString(fieldName);
     838             :                                 
     839             :                 
     840             :         
     841             : 
     842             :         
     843             :         
     844             :                 
     845             :                                         
     846           0 :                 eoss.writeString(CSubscanIntent::name(subscanIntent));
     847             :                         /* eoss.writeInt(subscanIntent); */
     848             :                                 
     849             :                 
     850             :         
     851             : 
     852             :         
     853             :         
     854             :                 
     855             :                                                 
     856           0 :                         eoss.writeInt(numIntegration);
     857             :                                 
     858             :                 
     859             :         
     860             : 
     861             :         
     862             :         
     863             :                 
     864             :                 
     865             :                         
     866           0 :                 eoss.writeInt((int) numSubintegration.size());
     867           0 :                 for (unsigned int i = 0; i < numSubintegration.size(); i++)
     868             :                                 
     869           0 :                         eoss.writeInt(numSubintegration.at(i));
     870             :                                 
     871             :                                 
     872             :                                                 
     873             :                 
     874             :         
     875             : 
     876             : 
     877             :         
     878             :         
     879           0 :         eoss.writeBoolean(subscanModeExists);
     880           0 :         if (subscanModeExists) {
     881             :         
     882             :         
     883             :         
     884             :                 
     885             :                                         
     886           0 :                 eoss.writeString(CSwitchingMode::name(subscanMode));
     887             :                         /* eoss.writeInt(subscanMode); */
     888             :                                 
     889             :                 
     890             :         
     891             : 
     892             :         }
     893             : 
     894           0 :         eoss.writeBoolean(correlatorCalibrationExists);
     895           0 :         if (correlatorCalibrationExists) {
     896             :         
     897             :         
     898             :         
     899             :                 
     900             :                                         
     901           0 :                 eoss.writeString(CCorrelatorCalibration::name(correlatorCalibration));
     902             :                         /* eoss.writeInt(correlatorCalibration); */
     903             :                                 
     904             :                 
     905             :         
     906             : 
     907             :         }
     908             : 
     909           0 :         }
     910             :         
     911           0 : void SubscanRow::execBlockIdFromBin(EndianIStream& eis) {
     912             :                 
     913             :         
     914             :                 
     915             :                 
     916           0 :                 execBlockId =  Tag::fromBin(eis);
     917             :                 
     918             :         
     919             :         
     920           0 : }
     921           0 : void SubscanRow::scanNumberFromBin(EndianIStream& eis) {
     922             :                 
     923             :         
     924             :         
     925             :                 
     926             :                         
     927           0 :                 scanNumber =  eis.readInt();
     928             :                         
     929             :                 
     930             :         
     931             :         
     932           0 : }
     933           0 : void SubscanRow::subscanNumberFromBin(EndianIStream& eis) {
     934             :                 
     935             :         
     936             :         
     937             :                 
     938             :                         
     939           0 :                 subscanNumber =  eis.readInt();
     940             :                         
     941             :                 
     942             :         
     943             :         
     944           0 : }
     945           0 : void SubscanRow::startTimeFromBin(EndianIStream& eis) {
     946             :                 
     947             :         
     948             :                 
     949             :                 
     950           0 :                 startTime =  ArrayTime::fromBin(eis);
     951             :                 
     952             :         
     953             :         
     954           0 : }
     955           0 : void SubscanRow::endTimeFromBin(EndianIStream& eis) {
     956             :                 
     957             :         
     958             :                 
     959             :                 
     960           0 :                 endTime =  ArrayTime::fromBin(eis);
     961             :                 
     962             :         
     963             :         
     964           0 : }
     965           0 : void SubscanRow::fieldNameFromBin(EndianIStream& eis) {
     966             :                 
     967             :         
     968             :         
     969             :                 
     970             :                         
     971           0 :                 fieldName =  eis.readString();
     972             :                         
     973             :                 
     974             :         
     975             :         
     976           0 : }
     977           0 : void SubscanRow::subscanIntentFromBin(EndianIStream& eis) {
     978             :                 
     979             :         
     980             :         
     981             :                 
     982             :                         
     983           0 :                 subscanIntent = CSubscanIntent::literal(eis.readString());
     984             :                         
     985             :                 
     986             :         
     987             :         
     988           0 : }
     989           0 : void SubscanRow::numIntegrationFromBin(EndianIStream& eis) {
     990             :                 
     991             :         
     992             :         
     993             :                 
     994             :                         
     995           0 :                 numIntegration =  eis.readInt();
     996             :                         
     997             :                 
     998             :         
     999             :         
    1000           0 : }
    1001           0 : void SubscanRow::numSubintegrationFromBin(EndianIStream& eis) {
    1002             :                 
    1003             :         
    1004             :         
    1005             :                 
    1006             :                         
    1007             :         
    1008           0 :                 numSubintegration.clear();
    1009             :                 
    1010           0 :                 unsigned int numSubintegrationDim1 = eis.readInt();
    1011           0 :                 for (unsigned int  i = 0 ; i < numSubintegrationDim1; i++)
    1012             :                         
    1013           0 :                         numSubintegration.push_back(eis.readInt());
    1014             :                         
    1015             :         
    1016             : 
    1017             :                 
    1018             :         
    1019             :         
    1020           0 : }
    1021             : 
    1022           0 : void SubscanRow::subscanModeFromBin(EndianIStream& eis) {
    1023             :                 
    1024           0 :         subscanModeExists = eis.readBoolean();
    1025           0 :         if (subscanModeExists) {
    1026             :                 
    1027             :         
    1028             :         
    1029             :                 
    1030             :                         
    1031           0 :                 subscanMode = CSwitchingMode::literal(eis.readString());
    1032             :                         
    1033             :                 
    1034             :         
    1035             : 
    1036             :         }
    1037             :         
    1038           0 : }
    1039           0 : void SubscanRow::correlatorCalibrationFromBin(EndianIStream& eis) {
    1040             :                 
    1041           0 :         correlatorCalibrationExists = eis.readBoolean();
    1042           0 :         if (correlatorCalibrationExists) {
    1043             :                 
    1044             :         
    1045             :         
    1046             :                 
    1047             :                         
    1048           0 :                 correlatorCalibration = CCorrelatorCalibration::literal(eis.readString());
    1049             :                         
    1050             :                 
    1051             :         
    1052             : 
    1053             :         }
    1054             :         
    1055           0 : }
    1056             :         
    1057             :         
    1058           0 :         SubscanRow* SubscanRow::fromBin(EndianIStream& eis, SubscanTable& table, const vector<string>& attributesSeq) {
    1059           0 :                 SubscanRow* row = new  SubscanRow(table);
    1060             :                 
    1061           0 :                 map<string, SubscanAttributeFromBin>::iterator iter ;
    1062           0 :                 for (unsigned int i = 0; i < attributesSeq.size(); i++) {
    1063           0 :                         iter = row->fromBinMethods.find(attributesSeq.at(i));
    1064           0 :                         if (iter != row->fromBinMethods.end()) {
    1065           0 :                                 (row->*(row->fromBinMethods[ attributesSeq.at(i) ] ))(eis);                       
    1066             :                         }
    1067             :                         else {
    1068           0 :                                 BinaryAttributeReaderFunctor* functorP = table.getUnknownAttributeBinaryReader(attributesSeq.at(i));
    1069           0 :                                 if (functorP)
    1070           0 :                                         (*functorP)(eis);
    1071             :                                 else
    1072           0 :                                         throw ConversionException("There is not method to read an attribute '"+attributesSeq.at(i)+"'.", "SubscanTable");
    1073             :                         }
    1074             :                                 
    1075             :                 }                               
    1076           0 :                 return row;
    1077             :         }
    1078             : 
    1079             :         //
    1080             :         // A collection of methods to set the value of the attributes from their textual value in the XML representation
    1081             :         // of one row.
    1082             :         //
    1083             :         
    1084             :         // Convert a string into an Tag 
    1085           0 :         void SubscanRow::execBlockIdFromText(const string & s) {
    1086             :                  
    1087             :           
    1088           0 :                 execBlockId = ASDMValuesParser::parse<Tag>(s);
    1089             :           
    1090             :                 
    1091           0 :         }
    1092             :         
    1093             :         
    1094             :         // Convert a string into an int 
    1095           0 :         void SubscanRow::scanNumberFromText(const string & s) {
    1096             :                  
    1097             :           
    1098           0 :                 scanNumber = ASDMValuesParser::parse<int>(s);
    1099             :           
    1100             :                 
    1101           0 :         }
    1102             :         
    1103             :         
    1104             :         // Convert a string into an int 
    1105           0 :         void SubscanRow::subscanNumberFromText(const string & s) {
    1106             :                  
    1107             :           
    1108           0 :                 subscanNumber = ASDMValuesParser::parse<int>(s);
    1109             :           
    1110             :                 
    1111           0 :         }
    1112             :         
    1113             :         
    1114             :         // Convert a string into an ArrayTime 
    1115           0 :         void SubscanRow::startTimeFromText(const string & s) {
    1116             :                  
    1117             :           
    1118           0 :                 startTime = ASDMValuesParser::parse<ArrayTime>(s);
    1119             :           
    1120             :                 
    1121           0 :         }
    1122             :         
    1123             :         
    1124             :         // Convert a string into an ArrayTime 
    1125           0 :         void SubscanRow::endTimeFromText(const string & s) {
    1126             :                  
    1127             :           
    1128           0 :                 endTime = ASDMValuesParser::parse<ArrayTime>(s);
    1129             :           
    1130             :                 
    1131           0 :         }
    1132             :         
    1133             :         
    1134             :         // Convert a string into an String 
    1135           0 :         void SubscanRow::fieldNameFromText(const string & s) {
    1136             :                  
    1137             :           
    1138           0 :                 fieldName = ASDMValuesParser::parse<string>(s);
    1139             :           
    1140             :                 
    1141           0 :         }
    1142             :         
    1143             :         
    1144             :         // Convert a string into an SubscanIntent 
    1145           0 :         void SubscanRow::subscanIntentFromText(const string & s) {
    1146             :                  
    1147             :           
    1148           0 :                 subscanIntent = ASDMValuesParser::parse<SubscanIntentMod::SubscanIntent>(s);
    1149             :           
    1150             :                 
    1151           0 :         }
    1152             :         
    1153             :         
    1154             :         // Convert a string into an int 
    1155           0 :         void SubscanRow::numIntegrationFromText(const string & s) {
    1156             :                  
    1157             :           
    1158           0 :                 numIntegration = ASDMValuesParser::parse<int>(s);
    1159             :           
    1160             :                 
    1161           0 :         }
    1162             :         
    1163             :         
    1164             :         // Convert a string into an int 
    1165           0 :         void SubscanRow::numSubintegrationFromText(const string & s) {
    1166             :                  
    1167             :           
    1168           0 :                 numSubintegration = ASDMValuesParser::parse1D<int>(s);
    1169             :           
    1170             :                 
    1171           0 :         }
    1172             :         
    1173             : 
    1174             :         
    1175             :         // Convert a string into an SwitchingMode 
    1176           0 :         void SubscanRow::subscanModeFromText(const string & s) {
    1177           0 :                 subscanModeExists = true;
    1178             :                  
    1179             :           
    1180           0 :                 subscanMode = ASDMValuesParser::parse<SwitchingModeMod::SwitchingMode>(s);
    1181             :           
    1182             :                 
    1183           0 :         }
    1184             :         
    1185             :         
    1186             :         // Convert a string into an CorrelatorCalibration 
    1187           0 :         void SubscanRow::correlatorCalibrationFromText(const string & s) {
    1188           0 :                 correlatorCalibrationExists = true;
    1189             :                  
    1190             :           
    1191           0 :                 correlatorCalibration = ASDMValuesParser::parse<CorrelatorCalibrationMod::CorrelatorCalibration>(s);
    1192             :           
    1193             :                 
    1194           0 :         }
    1195             :         
    1196             :         
    1197             :         
    1198           0 :         void SubscanRow::fromText(const std::string& attributeName, const std::string&  t) {
    1199           0 :                 map<string, SubscanAttributeFromText>::iterator iter;
    1200           0 :                 if ((iter = fromTextMethods.find(attributeName)) == fromTextMethods.end())
    1201           0 :                         throw ConversionException("I do not know what to do with '"+attributeName+"' and its content '"+t+"' (while parsing an XML document)", "SubscanTable");
    1202           0 :                 (this->*(iter->second))(t);
    1203           0 :         }
    1204             :                         
    1205             :         ////////////////////////////////////////////////
    1206             :         // Intrinsic Table Attributes getters/setters //
    1207             :         ////////////////////////////////////////////////
    1208             :         
    1209             :         
    1210             : 
    1211             :         
    1212             :         /**
    1213             :          * Get scanNumber.
    1214             :          * @return scanNumber as int
    1215             :          */
    1216       17141 :         int SubscanRow::getScanNumber() const {
    1217             :         
    1218       17141 :                 return scanNumber;
    1219             :         }
    1220             : 
    1221             :         /**
    1222             :          * Set scanNumber with the specified int.
    1223             :          * @param scanNumber The int value to which scanNumber is to be set.
    1224             :          
    1225             :         
    1226             :                 
    1227             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1228             :                 
    1229             :          */
    1230        8230 :         void SubscanRow::setScanNumber (int scanNumber)  {
    1231             :         
    1232             :         
    1233        8230 :                 if (hasBeenAdded) {
    1234             :                 
    1235           0 :                         throw IllegalAccessException("scanNumber", "Subscan");
    1236             :                 
    1237             :                 }
    1238             :         
    1239        8230 :                 this->scanNumber = scanNumber;
    1240             :         
    1241        8230 :         }
    1242             :         
    1243             :         
    1244             : 
    1245             :         
    1246             : 
    1247             :         
    1248             :         /**
    1249             :          * Get subscanNumber.
    1250             :          * @return subscanNumber as int
    1251             :          */
    1252        8935 :         int SubscanRow::getSubscanNumber() const {
    1253             :         
    1254        8935 :                 return subscanNumber;
    1255             :         }
    1256             : 
    1257             :         /**
    1258             :          * Set subscanNumber with the specified int.
    1259             :          * @param subscanNumber The int value to which subscanNumber is to be set.
    1260             :          
    1261             :         
    1262             :                 
    1263             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1264             :                 
    1265             :          */
    1266        8230 :         void SubscanRow::setSubscanNumber (int subscanNumber)  {
    1267             :         
    1268             :         
    1269        8230 :                 if (hasBeenAdded) {
    1270             :                 
    1271           0 :                         throw IllegalAccessException("subscanNumber", "Subscan");
    1272             :                 
    1273             :                 }
    1274             :         
    1275        8230 :                 this->subscanNumber = subscanNumber;
    1276             :         
    1277        8230 :         }
    1278             :         
    1279             :         
    1280             : 
    1281             :         
    1282             : 
    1283             :         
    1284             :         /**
    1285             :          * Get startTime.
    1286             :          * @return startTime as ArrayTime
    1287             :          */
    1288        1000 :         ArrayTime SubscanRow::getStartTime() const {
    1289             :         
    1290        1000 :                 return startTime;
    1291             :         }
    1292             : 
    1293             :         /**
    1294             :          * Set startTime with the specified ArrayTime.
    1295             :          * @param startTime The ArrayTime value to which startTime is to be set.
    1296             :          
    1297             :         
    1298             :                 
    1299             :          */
    1300        8230 :         void SubscanRow::setStartTime (ArrayTime startTime)  {
    1301             :         
    1302             :         
    1303        8230 :                 if (hasBeenAdded) {
    1304             :                 
    1305             :                 }
    1306             :         
    1307        8230 :                 this->startTime = startTime;
    1308             :         
    1309        8230 :         }
    1310             :         
    1311             :         
    1312             : 
    1313             :         
    1314             : 
    1315             :         
    1316             :         /**
    1317             :          * Get endTime.
    1318             :          * @return endTime as ArrayTime
    1319             :          */
    1320        1000 :         ArrayTime SubscanRow::getEndTime() const {
    1321             :         
    1322        1000 :                 return endTime;
    1323             :         }
    1324             : 
    1325             :         /**
    1326             :          * Set endTime with the specified ArrayTime.
    1327             :          * @param endTime The ArrayTime value to which endTime is to be set.
    1328             :          
    1329             :         
    1330             :                 
    1331             :          */
    1332        8230 :         void SubscanRow::setEndTime (ArrayTime endTime)  {
    1333             :         
    1334             :         
    1335        8230 :                 if (hasBeenAdded) {
    1336             :                 
    1337             :                 }
    1338             :         
    1339        8230 :                 this->endTime = endTime;
    1340             :         
    1341        8230 :         }
    1342             :         
    1343             :         
    1344             : 
    1345             :         
    1346             : 
    1347             :         
    1348             :         /**
    1349             :          * Get fieldName.
    1350             :          * @return fieldName as std::string
    1351             :          */
    1352         117 :         std::string SubscanRow::getFieldName() const {
    1353             :         
    1354         117 :                 return fieldName;
    1355             :         }
    1356             : 
    1357             :         /**
    1358             :          * Set fieldName with the specified std::string.
    1359             :          * @param fieldName The std::string value to which fieldName is to be set.
    1360             :          
    1361             :         
    1362             :                 
    1363             :          */
    1364        8230 :         void SubscanRow::setFieldName (std::string fieldName)  {
    1365             :         
    1366             :         
    1367        8230 :                 if (hasBeenAdded) {
    1368             :                 
    1369             :                 }
    1370             :         
    1371        8230 :                 this->fieldName = fieldName;
    1372             :         
    1373        8230 :         }
    1374             :         
    1375             :         
    1376             : 
    1377             :         
    1378             : 
    1379             :         
    1380             :         /**
    1381             :          * Get subscanIntent.
    1382             :          * @return subscanIntent as SubscanIntentMod::SubscanIntent
    1383             :          */
    1384        2253 :         SubscanIntentMod::SubscanIntent SubscanRow::getSubscanIntent() const {
    1385             :         
    1386        2253 :                 return subscanIntent;
    1387             :         }
    1388             : 
    1389             :         /**
    1390             :          * Set subscanIntent with the specified SubscanIntentMod::SubscanIntent.
    1391             :          * @param subscanIntent The SubscanIntentMod::SubscanIntent value to which subscanIntent is to be set.
    1392             :          
    1393             :         
    1394             :                 
    1395             :          */
    1396         536 :         void SubscanRow::setSubscanIntent (SubscanIntentMod::SubscanIntent subscanIntent)  {
    1397             :         
    1398             :         
    1399         536 :                 if (hasBeenAdded) {
    1400             :                 
    1401             :                 }
    1402             :         
    1403         536 :                 this->subscanIntent = subscanIntent;
    1404             :         
    1405         536 :         }
    1406             :         
    1407             :         
    1408             : 
    1409             :         
    1410             :         /**
    1411             :          * The attribute subscanMode is optional. Return true if this attribute exists.
    1412             :          * @return true if and only if the subscanMode attribute exists. 
    1413             :          */
    1414         117 :         bool SubscanRow::isSubscanModeExists() const {
    1415         117 :                 return subscanModeExists;
    1416             :         }
    1417             :         
    1418             : 
    1419             :         
    1420             :         /**
    1421             :          * Get subscanMode, which is optional.
    1422             :          * @return subscanMode as SwitchingModeMod::SwitchingMode
    1423             :          * @throw IllegalAccessException If subscanMode does not exist.
    1424             :          */
    1425         117 :         SwitchingModeMod::SwitchingMode SubscanRow::getSubscanMode() const  {
    1426         117 :                 if (!subscanModeExists) {
    1427           0 :                         throw IllegalAccessException("subscanMode", "Subscan");
    1428             :                 }
    1429             :         
    1430         117 :                 return subscanMode;
    1431             :         }
    1432             : 
    1433             :         /**
    1434             :          * Set subscanMode with the specified SwitchingModeMod::SwitchingMode.
    1435             :          * @param subscanMode The SwitchingModeMod::SwitchingMode value to which subscanMode is to be set.
    1436             :          
    1437             :         
    1438             :          */
    1439           0 :         void SubscanRow::setSubscanMode (SwitchingModeMod::SwitchingMode subscanMode) {
    1440             :         
    1441           0 :                 this->subscanMode = subscanMode;
    1442             :         
    1443           0 :                 subscanModeExists = true;
    1444             :         
    1445           0 :         }
    1446             :         
    1447             :         
    1448             :         /**
    1449             :          * Mark subscanMode, which is an optional field, as non-existent.
    1450             :          */
    1451           0 :         void SubscanRow::clearSubscanMode () {
    1452           0 :                 subscanModeExists = false;
    1453           0 :         }
    1454             :         
    1455             : 
    1456             :         
    1457             : 
    1458             :         
    1459             :         /**
    1460             :          * Get numIntegration.
    1461             :          * @return numIntegration as int
    1462             :          */
    1463         411 :         int SubscanRow::getNumIntegration() const {
    1464             :         
    1465         411 :                 return numIntegration;
    1466             :         }
    1467             : 
    1468             :         /**
    1469             :          * Set numIntegration with the specified int.
    1470             :          * @param numIntegration The int value to which numIntegration is to be set.
    1471             :          
    1472             :         
    1473             :                 
    1474             :          */
    1475        8230 :         void SubscanRow::setNumIntegration (int numIntegration)  {
    1476             :         
    1477             :         
    1478        8230 :                 if (hasBeenAdded) {
    1479             :                 
    1480             :                 }
    1481             :         
    1482        8230 :                 this->numIntegration = numIntegration;
    1483             :         
    1484        8230 :         }
    1485             :         
    1486             :         
    1487             : 
    1488             :         
    1489             : 
    1490             :         
    1491             :         /**
    1492             :          * Get numSubintegration.
    1493             :          * @return numSubintegration as std::vector<int >
    1494             :          */
    1495         411 :         std::vector<int > SubscanRow::getNumSubintegration() const {
    1496             :         
    1497         411 :                 return numSubintegration;
    1498             :         }
    1499             : 
    1500             :         /**
    1501             :          * Set numSubintegration with the specified std::vector<int >.
    1502             :          * @param numSubintegration The std::vector<int > value to which numSubintegration is to be set.
    1503             :          
    1504             :         
    1505             :                 
    1506             :          */
    1507        8230 :         void SubscanRow::setNumSubintegration (std::vector<int > numSubintegration)  {
    1508             :         
    1509             :         
    1510        8230 :                 if (hasBeenAdded) {
    1511             :                 
    1512             :                 }
    1513             :         
    1514        8230 :                 this->numSubintegration = numSubintegration;
    1515             :         
    1516        8230 :         }
    1517             :         
    1518             :         
    1519             : 
    1520             :         
    1521             :         /**
    1522             :          * The attribute correlatorCalibration is optional. Return true if this attribute exists.
    1523             :          * @return true if and only if the correlatorCalibration attribute exists. 
    1524             :          */
    1525         117 :         bool SubscanRow::isCorrelatorCalibrationExists() const {
    1526         117 :                 return correlatorCalibrationExists;
    1527             :         }
    1528             :         
    1529             : 
    1530             :         
    1531             :         /**
    1532             :          * Get correlatorCalibration, which is optional.
    1533             :          * @return correlatorCalibration as CorrelatorCalibrationMod::CorrelatorCalibration
    1534             :          * @throw IllegalAccessException If correlatorCalibration does not exist.
    1535             :          */
    1536         117 :         CorrelatorCalibrationMod::CorrelatorCalibration SubscanRow::getCorrelatorCalibration() const  {
    1537         117 :                 if (!correlatorCalibrationExists) {
    1538           0 :                         throw IllegalAccessException("correlatorCalibration", "Subscan");
    1539             :                 }
    1540             :         
    1541         117 :                 return correlatorCalibration;
    1542             :         }
    1543             : 
    1544             :         /**
    1545             :          * Set correlatorCalibration with the specified CorrelatorCalibrationMod::CorrelatorCalibration.
    1546             :          * @param correlatorCalibration The CorrelatorCalibrationMod::CorrelatorCalibration value to which correlatorCalibration is to be set.
    1547             :          
    1548             :         
    1549             :          */
    1550           0 :         void SubscanRow::setCorrelatorCalibration (CorrelatorCalibrationMod::CorrelatorCalibration correlatorCalibration) {
    1551             :         
    1552           0 :                 this->correlatorCalibration = correlatorCalibration;
    1553             :         
    1554           0 :                 correlatorCalibrationExists = true;
    1555             :         
    1556           0 :         }
    1557             :         
    1558             :         
    1559             :         /**
    1560             :          * Mark correlatorCalibration, which is an optional field, as non-existent.
    1561             :          */
    1562           0 :         void SubscanRow::clearCorrelatorCalibration () {
    1563           0 :                 correlatorCalibrationExists = false;
    1564           0 :         }
    1565             :         
    1566             : 
    1567             :         
    1568             :         ///////////////////////////////////////////////
    1569             :         // Extrinsic Table Attributes getters/setters//
    1570             :         ///////////////////////////////////////////////
    1571             :         
    1572             :         
    1573             : 
    1574             :         
    1575             :         /**
    1576             :          * Get execBlockId.
    1577             :          * @return execBlockId as Tag
    1578             :          */
    1579       17141 :         Tag SubscanRow::getExecBlockId() const {
    1580             :         
    1581       17141 :                 return execBlockId;
    1582             :         }
    1583             : 
    1584             :         /**
    1585             :          * Set execBlockId with the specified Tag.
    1586             :          * @param execBlockId The Tag value to which execBlockId is to be set.
    1587             :          
    1588             :         
    1589             :                 
    1590             :          * @throw IllegalAccessException If an attempt is made to change this field after is has been added to the table.
    1591             :                 
    1592             :          */
    1593        8230 :         void SubscanRow::setExecBlockId (Tag execBlockId)  {
    1594             :         
    1595             :         
    1596        8230 :                 if (hasBeenAdded) {
    1597             :                 
    1598           0 :                         throw IllegalAccessException("execBlockId", "Subscan");
    1599             :                 
    1600             :                 }
    1601             :         
    1602        8230 :                 this->execBlockId = execBlockId;
    1603             :         
    1604        8230 :         }
    1605             :         
    1606             :         
    1607             : 
    1608             : 
    1609             :         //////////////////////////////////////
    1610             :         // Links Attributes getters/setters //
    1611             :         //////////////////////////////////////
    1612             :         
    1613             :         
    1614             :         
    1615             :         
    1616             :                 
    1617             : 
    1618             :         /**
    1619             :          * Returns the pointer to the row in the ExecBlock table having ExecBlock.execBlockId == execBlockId
    1620             :          * @return a ExecBlockRow*
    1621             :          * 
    1622             :          
    1623             :          */
    1624           0 :          ExecBlockRow* SubscanRow::getExecBlockUsingExecBlockId() {
    1625             :          
    1626           0 :                 return table.getContainer().getExecBlock().getRowByKey(execBlockId);
    1627             :          }
    1628             :          
    1629             : 
    1630             :         
    1631             : 
    1632             :         
    1633             :         /**
    1634             :          * Create a SubscanRow.
    1635             :          * <p>
    1636             :          * This constructor is private because only the
    1637             :          * table can create rows.  All rows know the table
    1638             :          * to which they belong.
    1639             :          * @param table The table to which this row belongs.
    1640             :          */ 
    1641        8230 :         SubscanRow::SubscanRow (SubscanTable &t) : table(t) {
    1642        8230 :                 hasBeenAdded = false;
    1643             :                 
    1644             :         
    1645             :         
    1646             : 
    1647             :         
    1648             : 
    1649             :         
    1650             : 
    1651             :         
    1652             : 
    1653             :         
    1654             : 
    1655             :         
    1656             : 
    1657             :         
    1658        8230 :                 subscanModeExists = false;
    1659             :         
    1660             : 
    1661             :         
    1662             : 
    1663             :         
    1664             : 
    1665             :         
    1666        8230 :                 correlatorCalibrationExists = false;
    1667             :         
    1668             : 
    1669             :         
    1670             :         
    1671             : 
    1672             :         
    1673             :         
    1674             :         
    1675             :         
    1676             : 
    1677             :         
    1678             : 
    1679             :         
    1680             : 
    1681             :         
    1682             : 
    1683             :         
    1684             : 
    1685             :         
    1686             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    1687        8230 : subscanIntent = CSubscanIntent::from_int(0);
    1688             :         
    1689             : 
    1690             :         
    1691             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    1692        8230 : subscanMode = CSwitchingMode::from_int(0);
    1693             :         
    1694             : 
    1695             :         
    1696             : 
    1697             :         
    1698             : 
    1699             :         
    1700             : // This attribute is scalar and has an enumeration type. Let's initialize it to some valid value (the 1st of the enumeration).          
    1701        8230 : correlatorCalibration = CCorrelatorCalibration::from_int(0);
    1702             :         
    1703             : 
    1704             :         
    1705             :         
    1706        8230 :          fromBinMethods["execBlockId"] = &SubscanRow::execBlockIdFromBin; 
    1707        8230 :          fromBinMethods["scanNumber"] = &SubscanRow::scanNumberFromBin; 
    1708        8230 :          fromBinMethods["subscanNumber"] = &SubscanRow::subscanNumberFromBin; 
    1709        8230 :          fromBinMethods["startTime"] = &SubscanRow::startTimeFromBin; 
    1710        8230 :          fromBinMethods["endTime"] = &SubscanRow::endTimeFromBin; 
    1711        8230 :          fromBinMethods["fieldName"] = &SubscanRow::fieldNameFromBin; 
    1712        8230 :          fromBinMethods["subscanIntent"] = &SubscanRow::subscanIntentFromBin; 
    1713        8230 :          fromBinMethods["numIntegration"] = &SubscanRow::numIntegrationFromBin; 
    1714        8230 :          fromBinMethods["numSubintegration"] = &SubscanRow::numSubintegrationFromBin; 
    1715             :                 
    1716             :         
    1717        8230 :          fromBinMethods["subscanMode"] = &SubscanRow::subscanModeFromBin; 
    1718        8230 :          fromBinMethods["correlatorCalibration"] = &SubscanRow::correlatorCalibrationFromBin; 
    1719             :         
    1720             :         
    1721             :         
    1722             :         
    1723             :                                  
    1724        8230 :         fromTextMethods["execBlockId"] = &SubscanRow::execBlockIdFromText;
    1725             :                  
    1726             :         
    1727             :                                  
    1728        8230 :         fromTextMethods["scanNumber"] = &SubscanRow::scanNumberFromText;
    1729             :                  
    1730             :         
    1731             :                                  
    1732        8230 :         fromTextMethods["subscanNumber"] = &SubscanRow::subscanNumberFromText;
    1733             :                  
    1734             :         
    1735             :                                  
    1736        8230 :         fromTextMethods["startTime"] = &SubscanRow::startTimeFromText;
    1737             :                  
    1738             :         
    1739             :                                  
    1740        8230 :         fromTextMethods["endTime"] = &SubscanRow::endTimeFromText;
    1741             :                  
    1742             :         
    1743             :                                  
    1744        8230 :         fromTextMethods["fieldName"] = &SubscanRow::fieldNameFromText;
    1745             :                  
    1746             :         
    1747             :                                  
    1748        8230 :         fromTextMethods["subscanIntent"] = &SubscanRow::subscanIntentFromText;
    1749             :                  
    1750             :         
    1751             :                                  
    1752        8230 :         fromTextMethods["numIntegration"] = &SubscanRow::numIntegrationFromText;
    1753             :                  
    1754             :         
    1755             :                                  
    1756        8230 :         fromTextMethods["numSubintegration"] = &SubscanRow::numSubintegrationFromText;
    1757             :                  
    1758             :         
    1759             : 
    1760             :          
    1761             :                                 
    1762        8230 :         fromTextMethods["subscanMode"] = &SubscanRow::subscanModeFromText;
    1763             :                         
    1764             :          
    1765             :                                 
    1766        8230 :         fromTextMethods["correlatorCalibration"] = &SubscanRow::correlatorCalibrationFromText;
    1767             :                         
    1768             :                 
    1769        8230 :         }
    1770             :         
    1771           0 :         SubscanRow::SubscanRow (SubscanTable &t, SubscanRow *row) : table(t) {
    1772           0 :                 hasBeenAdded = false;
    1773             :                 
    1774           0 :                 if (row == 0) {
    1775             :         
    1776             :         
    1777             :         
    1778             : 
    1779             :         
    1780             : 
    1781             :         
    1782             : 
    1783             :         
    1784             : 
    1785             :         
    1786             : 
    1787             :         
    1788             : 
    1789             :         
    1790           0 :                 subscanModeExists = false;
    1791             :         
    1792             : 
    1793             :         
    1794             : 
    1795             :         
    1796             : 
    1797             :         
    1798           0 :                 correlatorCalibrationExists = false;
    1799             :         
    1800             : 
    1801             :         
    1802             :         
    1803             :                 
    1804             :                 }
    1805             :                 else {
    1806             :         
    1807             :                 
    1808           0 :                         execBlockId = row->execBlockId;
    1809             :                 
    1810           0 :                         scanNumber = row->scanNumber;
    1811             :                 
    1812           0 :                         subscanNumber = row->subscanNumber;
    1813             :                 
    1814             :                 
    1815             :                 
    1816             :                 
    1817           0 :                         startTime = row->startTime;
    1818             :                 
    1819           0 :                         endTime = row->endTime;
    1820             :                 
    1821           0 :                         fieldName = row->fieldName;
    1822             :                 
    1823           0 :                         subscanIntent = row->subscanIntent;
    1824             :                 
    1825           0 :                         numIntegration = row->numIntegration;
    1826             :                 
    1827           0 :                         numSubintegration = row->numSubintegration;
    1828             :                 
    1829             :                 
    1830             :                 
    1831             :                 
    1832           0 :                 if (row->subscanModeExists) {
    1833           0 :                         subscanMode = row->subscanMode;              
    1834           0 :                         subscanModeExists = true;
    1835             :                 }
    1836             :                 else
    1837           0 :                         subscanModeExists = false;
    1838             :                 
    1839           0 :                 if (row->correlatorCalibrationExists) {
    1840           0 :                         correlatorCalibration = row->correlatorCalibration;          
    1841           0 :                         correlatorCalibrationExists = true;
    1842             :                 }
    1843             :                 else
    1844           0 :                         correlatorCalibrationExists = false;
    1845             :                 
    1846             :                 }
    1847             :                 
    1848           0 :                  fromBinMethods["execBlockId"] = &SubscanRow::execBlockIdFromBin; 
    1849           0 :                  fromBinMethods["scanNumber"] = &SubscanRow::scanNumberFromBin; 
    1850           0 :                  fromBinMethods["subscanNumber"] = &SubscanRow::subscanNumberFromBin; 
    1851           0 :                  fromBinMethods["startTime"] = &SubscanRow::startTimeFromBin; 
    1852           0 :                  fromBinMethods["endTime"] = &SubscanRow::endTimeFromBin; 
    1853           0 :                  fromBinMethods["fieldName"] = &SubscanRow::fieldNameFromBin; 
    1854           0 :                  fromBinMethods["subscanIntent"] = &SubscanRow::subscanIntentFromBin; 
    1855           0 :                  fromBinMethods["numIntegration"] = &SubscanRow::numIntegrationFromBin; 
    1856           0 :                  fromBinMethods["numSubintegration"] = &SubscanRow::numSubintegrationFromBin; 
    1857             :                         
    1858             :         
    1859           0 :                  fromBinMethods["subscanMode"] = &SubscanRow::subscanModeFromBin; 
    1860           0 :                  fromBinMethods["correlatorCalibration"] = &SubscanRow::correlatorCalibrationFromBin; 
    1861             :                         
    1862           0 :         }
    1863             : 
    1864             :         
    1865           0 :         bool SubscanRow::compareNoAutoInc(Tag execBlockId, int scanNumber, int subscanNumber, ArrayTime startTime, ArrayTime endTime, std::string fieldName, SubscanIntentMod::SubscanIntent subscanIntent, int numIntegration, std::vector<int > numSubintegration) {
    1866             :                 bool result;
    1867           0 :                 result = true;
    1868             :                 
    1869             :         
    1870             :                 
    1871           0 :                 result = result && (this->execBlockId == execBlockId);
    1872             :                 
    1873           0 :                 if (!result) return false;
    1874             :         
    1875             : 
    1876             :         
    1877             :                 
    1878           0 :                 result = result && (this->scanNumber == scanNumber);
    1879             :                 
    1880           0 :                 if (!result) return false;
    1881             :         
    1882             : 
    1883             :         
    1884             :                 
    1885           0 :                 result = result && (this->subscanNumber == subscanNumber);
    1886             :                 
    1887           0 :                 if (!result) return false;
    1888             :         
    1889             : 
    1890             :         
    1891             :                 
    1892           0 :                 result = result && (this->startTime == startTime);
    1893             :                 
    1894           0 :                 if (!result) return false;
    1895             :         
    1896             : 
    1897             :         
    1898             :                 
    1899           0 :                 result = result && (this->endTime == endTime);
    1900             :                 
    1901           0 :                 if (!result) return false;
    1902             :         
    1903             : 
    1904             :         
    1905             :                 
    1906           0 :                 result = result && (this->fieldName == fieldName);
    1907             :                 
    1908           0 :                 if (!result) return false;
    1909             :         
    1910             : 
    1911             :         
    1912             :                 
    1913           0 :                 result = result && (this->subscanIntent == subscanIntent);
    1914             :                 
    1915           0 :                 if (!result) return false;
    1916             :         
    1917             : 
    1918             :         
    1919             :                 
    1920           0 :                 result = result && (this->numIntegration == numIntegration);
    1921             :                 
    1922           0 :                 if (!result) return false;
    1923             :         
    1924             : 
    1925             :         
    1926             :                 
    1927           0 :                 result = result && (this->numSubintegration == numSubintegration);
    1928             :                 
    1929           0 :                 if (!result) return false;
    1930             :         
    1931             : 
    1932           0 :                 return result;
    1933             :         }       
    1934             :         
    1935             :         
    1936             :         
    1937           0 :         bool SubscanRow::compareRequiredValue(ArrayTime startTime, ArrayTime endTime, std::string fieldName, SubscanIntentMod::SubscanIntent subscanIntent, int numIntegration, std::vector<int > numSubintegration) {
    1938             :                 bool result;
    1939           0 :                 result = true;
    1940             :                 
    1941             :         
    1942           0 :                 if (!(this->startTime == startTime)) return false;
    1943             :         
    1944             : 
    1945             :         
    1946           0 :                 if (!(this->endTime == endTime)) return false;
    1947             :         
    1948             : 
    1949             :         
    1950           0 :                 if (!(this->fieldName == fieldName)) return false;
    1951             :         
    1952             : 
    1953             :         
    1954           0 :                 if (!(this->subscanIntent == subscanIntent)) return false;
    1955             :         
    1956             : 
    1957             :         
    1958           0 :                 if (!(this->numIntegration == numIntegration)) return false;
    1959             :         
    1960             : 
    1961             :         
    1962           0 :                 if (!(this->numSubintegration == numSubintegration)) return false;
    1963             :         
    1964             : 
    1965           0 :                 return result;
    1966             :         }
    1967             :         
    1968             :         
    1969             :         /**
    1970             :          * Return true if all required attributes of the value part are equal to their homologues
    1971             :          * in x and false otherwise.
    1972             :          *
    1973             : 
    1974             :          * @param x a pointer on the SubscanRow whose required attributes of the value part 
    1975             : 
    1976             :          * will be compared with those of this.
    1977             :          * @return a boolean.
    1978             :          */
    1979           0 :         bool SubscanRow::equalByRequiredValue(SubscanRow*  x ) {
    1980             :                 
    1981             :                         
    1982           0 :                 if (this->startTime != x->startTime) return false;
    1983             :                         
    1984           0 :                 if (this->endTime != x->endTime) return false;
    1985             :                         
    1986           0 :                 if (this->fieldName != x->fieldName) return false;
    1987             :                         
    1988           0 :                 if (this->subscanIntent != x->subscanIntent) return false;
    1989             :                         
    1990           0 :                 if (this->numIntegration != x->numIntegration) return false;
    1991             :                         
    1992           0 :                 if (this->numSubintegration != x->numSubintegration) return false;
    1993             :                         
    1994             :                 
    1995           0 :                 return true;
    1996             :         }       
    1997             :         
    1998             : /*
    1999             :          map<string, SubscanAttributeFromBin> SubscanRow::initFromBinMethods() {
    2000             :                 map<string, SubscanAttributeFromBin> result;
    2001             :                 
    2002             :                 result["execBlockId"] = &SubscanRow::execBlockIdFromBin;
    2003             :                 result["scanNumber"] = &SubscanRow::scanNumberFromBin;
    2004             :                 result["subscanNumber"] = &SubscanRow::subscanNumberFromBin;
    2005             :                 result["startTime"] = &SubscanRow::startTimeFromBin;
    2006             :                 result["endTime"] = &SubscanRow::endTimeFromBin;
    2007             :                 result["fieldName"] = &SubscanRow::fieldNameFromBin;
    2008             :                 result["subscanIntent"] = &SubscanRow::subscanIntentFromBin;
    2009             :                 result["numIntegration"] = &SubscanRow::numIntegrationFromBin;
    2010             :                 result["numSubintegration"] = &SubscanRow::numSubintegrationFromBin;
    2011             :                 
    2012             :                 
    2013             :                 result["subscanMode"] = &SubscanRow::subscanModeFromBin;
    2014             :                 result["correlatorCalibration"] = &SubscanRow::correlatorCalibrationFromBin;
    2015             :                         
    2016             :                 
    2017             :                 return result;  
    2018             :         }
    2019             : */      
    2020             : } // End namespace asdm
    2021             :  

Generated by: LCOV version 1.16