casa  $Rev:20696$
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
TotalPowerRow.ByRef.h
Go to the documentation of this file.
00001 
00002 /*
00003  * ALMA - Atacama Large Millimeter Array
00004  * (c) European Southern Observatory, 2002
00005  * (c) Associated Universities Inc., 2002
00006  * Copyright by ESO (in the framework of the ALMA collaboration),
00007  * Copyright by AUI (in the framework of the ALMA collaboration),
00008  * All rights reserved.
00009  * 
00010  * This library is free software; you can redistribute it and/or
00011  * modify it under the terms of the GNU Lesser General Public
00012  * License as published by the Free software Foundation; either
00013  * version 2.1 of the License, or (at your option) any later version.
00014  * 
00015  * This library is distributed in the hope that it will be useful,
00016  * but WITHOUT ANY WARRANTY, without even the implied warranty of
00017  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00018  * Lesser General Public License for more details.
00019  * 
00020  * You should have received a copy of the GNU Lesser General Public
00021  * License along with this library; if not, write to the Free Software
00022  * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
00023  * MA 02111-1307  USA
00024  *
00025  * Warning!
00026  *  -------------------------------------------------------------------- 
00027  * | This is generated code!  Do not modify this file.                  |
00028  * | If you do, all changes will be lost when the file is re-generated. |
00029  *  --------------------------------------------------------------------
00030  *
00031  * File TotalPowerRow.h
00032  */
00033  
00034 #ifndef TotalPowerRow_CLASS
00035 #define TotalPowerRow_CLASS
00036 
00037 #include <vector>
00038 #include <string>
00039 #include <set>
00040 using std::vector;
00041 using std::string;
00042 using std::set;
00043 
00044 #ifndef WITHOUT_ACS
00045 #include <asdmIDLC.h>
00046 using asdmIDL::TotalPowerRowIDL;
00047 #endif
00048 
00049 #include <Angle.h>
00050 #include <AngularRate.h>
00051 #include <ArrayTime.h>
00052 #include <ArrayTimeInterval.h>
00053 #include <Complex.h>
00054 #include <Entity.h>
00055 #include <EntityId.h>
00056 #include <EntityRef.h>
00057 #include <Flux.h>
00058 #include <Frequency.h>
00059 #include <Humidity.h>
00060 #include <Interval.h>
00061 #include <Length.h>
00062 #include <Pressure.h>
00063 #include <Speed.h>
00064 #include <Tag.h>
00065 #include <Temperature.h>
00066 #include <ConversionException.h>
00067 #include <NoSuchRow.h>
00068 #include <IllegalAccessException.h>
00069  
00070 using asdm::Angle;
00071 using asdm::AngularRate;
00072 using asdm::ArrayTime;
00073 using asdm::Complex;
00074 using asdm::Entity;
00075 using asdm::EntityId;
00076 using asdm::EntityRef;
00077 using asdm::Flux;
00078 using asdm::Frequency;
00079 using asdm::Humidity;
00080 using asdm::Interval;
00081 using asdm::Length;
00082 using asdm::Pressure;
00083 using asdm::Speed;
00084 using asdm::Tag;
00085 using asdm::Temperature;
00086 using asdm::ConversionException;
00087 using asdm::NoSuchRow;
00088 using asdm::IllegalAccessException;
00089 
00090 
00091 namespace asdm {
00092 
00093 //class asdm::TotalPowerTable;
00094 
00095 
00096 // class asdm::StateRow;
00097 class StateRow;
00098 
00099 // class asdm::FieldRow;
00100 class FieldRow;
00101 
00102 // class asdm::ConfigDescriptionRow;
00103 class ConfigDescriptionRow;
00104 
00105 // class asdm::ExecBlockRow;
00106 class ExecBlockRow;
00107         
00108 
00112 class TotalPowerRow {
00113 friend class asdm::TotalPowerTable;
00114 
00115 public:
00116 
00117         virtual ~TotalPowerRow();
00118 
00122         TotalPowerTable &getTable() const;
00123         
00124 #ifndef WITHOUT_ACS
00125 
00129         TotalPowerRowIDL *toIDL() const;
00130 #endif
00131         
00132 #ifndef WITHOUT_ACS
00133 
00137         void setFromIDL (TotalPowerRowIDL x) throw(ConversionException);
00138 #endif
00139         
00144         string toXML() const;
00145 
00151         void setFromXML (string rowDoc) throw(ConversionException);
00152         
00157          void toBin(EndianOSStream& eoss);
00158          
00164          static TotalPowerRow* fromBin(EndianIStream& eis, TotalPowerTable& table);
00165         
00167         // Intrinsic Table Attributes //
00169         
00170         
00171         // ===> Attribute time
00172         
00173         
00174         
00175 
00176         
00181         ArrayTime getTime() const;
00182         
00183  
00184         
00185         
00192         void setTime (ArrayTime& time) throw(IllegalAccessException);
00193                 
00194         
00195         
00196         
00197 
00198 
00199         
00200         // ===> Attribute scanNumber
00201         
00202         
00203         
00204 
00205         
00210         int getScanNumber() const;
00211         
00212  
00213         
00214         
00220         void setScanNumber (int scanNumber);
00221                 
00222         
00223         
00224         
00225 
00226 
00227         
00228         // ===> Attribute subscanNumber
00229         
00230         
00231         
00232 
00233         
00238         int getSubscanNumber() const;
00239         
00240  
00241         
00242         
00248         void setSubscanNumber (int subscanNumber);
00249                 
00250         
00251         
00252         
00253 
00254 
00255         
00256         // ===> Attribute integrationNumber
00257         
00258         
00259         
00260 
00261         
00266         int getIntegrationNumber() const;
00267         
00268  
00269         
00270         
00276         void setIntegrationNumber (int integrationNumber);
00277                 
00278         
00279         
00280         
00281 
00282 
00283         
00284         // ===> Attribute uvw
00285         
00286         
00287         
00288 
00289         
00294         vector<vector<Length > > getUvw() const;
00295         
00296  
00297         
00298         
00304         void setUvw (vector<vector<Length > >& uvw);
00305                 
00306         
00307         
00308         
00309 
00310 
00311         
00312         // ===> Attribute exposure
00313         
00314         
00315         
00316 
00317         
00322         vector<vector<Interval > > getExposure() const;
00323         
00324  
00325         
00326         
00332         void setExposure (vector<vector<Interval > >& exposure);
00333                 
00334         
00335         
00336         
00337 
00338 
00339         
00340         // ===> Attribute timeCentroid
00341         
00342         
00343         
00344 
00345         
00350         vector<vector<ArrayTime > > getTimeCentroid() const;
00351         
00352  
00353         
00354         
00360         void setTimeCentroid (vector<vector<ArrayTime > >& timeCentroid);
00361                 
00362         
00363         
00364         
00365 
00366 
00367         
00368         // ===> Attribute floatData
00369         
00370         
00371         
00372 
00373         
00378         vector<vector<vector<float > > > getFloatData() const;
00379         
00380  
00381         
00382         
00388         void setFloatData (vector<vector<vector<float > > >& floatData);
00389                 
00390         
00391         
00392         
00393 
00394 
00395         
00396         // ===> Attribute flagAnt
00397         
00398         
00399         
00400 
00401         
00406         vector<int > getFlagAnt() const;
00407         
00408  
00409         
00410         
00416         void setFlagAnt (vector<int >& flagAnt);
00417                 
00418         
00419         
00420         
00421 
00422 
00423         
00424         // ===> Attribute flagPol
00425         
00426         
00427         
00428 
00429         
00434         vector<vector<int > > getFlagPol() const;
00435         
00436  
00437         
00438         
00444         void setFlagPol (vector<vector<int > >& flagPol);
00445                 
00446         
00447         
00448         
00449 
00450 
00451         
00452         // ===> Attribute flagRow
00453         
00454         
00455         
00456 
00457         
00462         bool getFlagRow() const;
00463         
00464  
00465         
00466         
00472         void setFlagRow (bool flagRow);
00473                 
00474         
00475         
00476         
00477 
00478 
00479         
00480         // ===> Attribute interval
00481         
00482         
00483         
00484 
00485         
00490         Interval getInterval() const;
00491         
00492  
00493         
00494         
00500         void setInterval (Interval& interval);
00501                 
00502         
00503         
00504         
00505 
00506 
00507         
00508         // ===> Attribute subintegrationNumber, which is optional
00509         
00510         
00511         
00516         bool isSubintegrationNumberExists() const;
00517         
00518 
00519         
00525         int getSubintegrationNumber() const throw(IllegalAccessException);
00526         
00527  
00528         
00529         
00535         void setSubintegrationNumber (int subintegrationNumber);
00536                 
00537         
00538         
00539         
00543         void clearSubintegrationNumber ();
00544         
00545 
00546 
00548         // Extrinsic Table Attributes //
00550         
00551         
00552         // ===> Attribute configDescriptionId
00553         
00554         
00555         
00556 
00557         
00562         Tag getConfigDescriptionId() const;
00563         
00564  
00565         
00566         
00573         void setConfigDescriptionId (Tag& configDescriptionId) throw(IllegalAccessException);
00574                 
00575         
00576         
00577         
00578 
00579 
00580         
00581         // ===> Attribute execBlockId
00582         
00583         
00584         
00585 
00586         
00591         Tag getExecBlockId() const;
00592         
00593  
00594         
00595         
00601         void setExecBlockId (Tag& execBlockId);
00602                 
00603         
00604         
00605         
00606 
00607 
00608         
00609         // ===> Attribute fieldId
00610         
00611         
00612         
00613 
00614         
00619         Tag getFieldId() const;
00620         
00621  
00622         
00623         
00630         void setFieldId (Tag& fieldId) throw(IllegalAccessException);
00631                 
00632         
00633         
00634         
00635 
00636 
00637         
00638         // ===> Attribute stateId
00639         
00640         
00641         
00642 
00643         
00648         vector<Tag>  getStateId() const;
00649         
00650  
00651         
00652         
00658         void setStateId (vector<Tag>&  stateId);
00659                 
00660         
00661         
00662         
00663 
00664 
00666         // Links //
00668         
00669         
00670                 
00677         void setStateId (int i, Tag stateId) throw(OutOfBoundsException) ;
00678                         
00679         
00680 
00681         
00682                  
00687  void addStateId(Tag id); 
00688 
00693  void addStateId(const vector<Tag> & id); 
00694  
00695 
00701  const Tag getStateId(int i);
00702  
00710  StateRow* getState(int i); 
00711  
00716  vector<StateRow *> getStates(); 
00717   
00718 
00719         
00720 
00721         
00722 
00723         
00724                 
00731          FieldRow* getFieldUsingFieldId();
00732          
00733 
00734         
00735 
00736         
00737 
00738         
00739                 
00746          ConfigDescriptionRow* getConfigDescriptionUsingConfigDescriptionId();
00747          
00748 
00749         
00750 
00751         
00752 
00753         
00754                 
00755                         
00756         // ===> One to one link from a row of TotalPower table to a row of ExecBlock table.
00757         
00763         ExecBlockRow *getExecBlock() const throw(NoSuchRow);
00764         
00765 
00766                 
00767                 
00768                 
00769         
00770 
00771         
00772         
00773         
00778         bool compareNoAutoInc(Tag configDescriptionId, Tag fieldId, ArrayTime time, Tag execBlockId, vector<Tag>  stateId, int scanNumber, int subscanNumber, int integrationNumber, vector<vector<Length > > uvw, vector<vector<Interval > > exposure, vector<vector<ArrayTime > > timeCentroid, vector<vector<vector<float > > > floatData, vector<int > flagAnt, vector<vector<int > > flagPol, bool flagRow, Interval interval);
00779         
00780         
00781 
00782         
00783         bool compareRequiredValue(Tag execBlockId, vector<Tag>  stateId, int scanNumber, int subscanNumber, int integrationNumber, vector<vector<Length > > uvw, vector<vector<Interval > > exposure, vector<vector<ArrayTime > > timeCentroid, vector<vector<vector<float > > > floatData, vector<int > flagAnt, vector<vector<int > > flagPol, bool flagRow, Interval interval); 
00784                  
00785         
00794         bool equalByRequiredValue(TotalPowerRow* x) ;
00795 
00796 private:
00800         TotalPowerTable &table;
00804         bool hasBeenAdded;
00805 
00806         // This method is used by the Table class when this row is added to the table.
00807         void isAdded();
00808 
00809 
00818         TotalPowerRow (TotalPowerTable &table);
00819 
00837          TotalPowerRow (TotalPowerTable &table, TotalPowerRow &row);
00838                 
00840         // Intrinsic Table Attributes //
00842         
00843         
00844         // ===> Attribute time
00845         
00846         
00847         ArrayTime time;
00848         
00849         
00850         
00851 
00852         
00853         // ===> Attribute scanNumber
00854         
00855         
00856         int scanNumber;
00857         
00858         
00859         
00860 
00861         
00862         // ===> Attribute subscanNumber
00863         
00864         
00865         int subscanNumber;
00866         
00867         
00868         
00869 
00870         
00871         // ===> Attribute integrationNumber
00872         
00873         
00874         int integrationNumber;
00875         
00876         
00877         
00878 
00879         
00880         // ===> Attribute uvw
00881         
00882         
00883         vector<vector<Length > > uvw;
00884         
00885         
00886         
00887 
00888         
00889         // ===> Attribute exposure
00890         
00891         
00892         vector<vector<Interval > > exposure;
00893         
00894         
00895         
00896 
00897         
00898         // ===> Attribute timeCentroid
00899         
00900         
00901         vector<vector<ArrayTime > > timeCentroid;
00902         
00903         
00904         
00905 
00906         
00907         // ===> Attribute floatData
00908         
00909         
00910         vector<vector<vector<float > > > floatData;
00911         
00912         
00913         
00914 
00915         
00916         // ===> Attribute flagAnt
00917         
00918         
00919         vector<int > flagAnt;
00920         
00921         
00922         
00923 
00924         
00925         // ===> Attribute flagPol
00926         
00927         
00928         vector<vector<int > > flagPol;
00929         
00930         
00931         
00932 
00933         
00934         // ===> Attribute flagRow
00935         
00936         
00937         bool flagRow;
00938         
00939         
00940         
00941 
00942         
00943         // ===> Attribute interval
00944         
00945         
00946         Interval interval;
00947         
00948         
00949         
00950 
00951         
00952         // ===> Attribute subintegrationNumber, which is optional
00953         
00954         
00955         bool subintegrationNumberExists;
00956         
00957         int subintegrationNumber;
00958         
00959         
00960         
00961 
00963         // Extrinsic Table Attributes //
00965         
00966         
00967         // ===> Attribute configDescriptionId
00968         
00969         
00970         Tag configDescriptionId;
00971         
00972         
00973         
00974 
00975         
00976         // ===> Attribute execBlockId
00977         
00978         
00979         Tag execBlockId;
00980         
00981         
00982         
00983 
00984         
00985         // ===> Attribute fieldId
00986         
00987         
00988         Tag fieldId;
00989         
00990         
00991         
00992 
00993         
00994         // ===> Attribute stateId
00995         
00996         
00997         vector<Tag>  stateId;
00998         
00999         
01000         
01001 
01003         // Links //
01005         
01006         
01007                 
01008 
01009 
01010         
01011 
01012         
01013                 
01014 
01015          
01016 
01017         
01018 
01019         
01020                 
01021 
01022          
01023 
01024         
01025 
01026                 
01027                 
01028         
01029 
01030 
01031 };
01032 
01033 } // End namespace asdm
01034 
01035 #endif /* TotalPower_CLASS */