PointingRow.h

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 PointingRow.h
00032  */
00033  
00034 #ifndef PointingRow_CLASS
00035 #define PointingRow_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::PointingRowIDL;
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 #include <EndianStream.h>
00071 
00072  
00073 using asdm::Angle;
00074 using asdm::AngularRate;
00075 using asdm::ArrayTime;
00076 using asdm::Complex;
00077 using asdm::Entity;
00078 using asdm::EntityId;
00079 using asdm::EntityRef;
00080 using asdm::Flux;
00081 using asdm::Frequency;
00082 using asdm::Humidity;
00083 using asdm::Interval;
00084 using asdm::Length;
00085 using asdm::Pressure;
00086 using asdm::Speed;
00087 using asdm::Tag;
00088 using asdm::Temperature;
00089 using asdm::ConversionException;
00090 using asdm::NoSuchRow;
00091 using asdm::IllegalAccessException;
00092 
00093 using asdm::EndianOSStream;
00094 using asdm::EndianISStream;
00095 
00096 namespace asdm {
00097 
00098 //class asdm::PointingTable;
00099 
00100 
00101 // class asdm::AntennaRow;
00102 class AntennaRow;
00103 
00104 // class asdm::PointingModelRow;
00105 class PointingModelRow;
00106         
00107 
00111 class PointingRow {
00112 friend class asdm::PointingTable;
00113 
00114 public:
00115 
00116         virtual ~PointingRow();
00117 
00121         PointingTable &getTable() const;
00122         
00123 #ifndef WITHOUT_ACS
00124 
00128         PointingRowIDL *toIDL() const;
00129 #endif
00130         
00131 #ifndef WITHOUT_ACS
00132 
00136         void setFromIDL (PointingRowIDL x) throw(ConversionException);
00137 #endif
00138         
00143         string toXML() const;
00144         
00150         void setFromXML (string rowDoc) throw(ConversionException);
00151         
00156          void toBin(EndianOSStream& eoss);
00157          
00163          static PointingRow* fromBin(EndianISStream& eiss, PointingTable& table);
00164 
00166         // Intrinsic Table Attributes //
00168         
00169         
00170         // ===> Attribute timeInterval
00171         
00172         
00173         
00174 
00175         
00180         ArrayTimeInterval getTimeInterval() const;
00181         
00182  
00183         
00184         
00191         void setTimeInterval (ArrayTimeInterval timeInterval) throw(IllegalAccessException);
00192                 
00193         
00194         // ===> Attribute name, which is optional
00195         
00196         
00197         
00202         bool isNameExists() const;
00203         
00209         string getName() const throw(IllegalAccessException);
00210         
00211  
00212         
00213         
00219         void setName (string name);
00220                 
00224         void clearName ();      
00225         
00226         
00227         // ===> Attribute numPoly
00228         
00229         
00230         
00231 
00232         
00237         int getNumPoly() const;
00238         
00239  
00240         
00241         
00247         void setNumPoly (int numPoly);
00248                 
00249         
00250         
00251         
00252 
00253 
00254         
00255         // ===> Attribute timeOrigin
00256         
00257         
00258         
00259 
00260         
00265         ArrayTime getTimeOrigin() const;
00266         
00267  
00268         
00269         
00275         void setTimeOrigin (ArrayTime timeOrigin);
00276                 
00277         
00278         
00279         
00280 
00281 
00282         
00283         // ===> Attribute pointingDirection
00284         
00285         
00286         
00287 
00288         
00293         vector<vector<Angle > > getPointingDirection() const;
00294         
00295  
00296         
00297         
00303         void setPointingDirection (vector<vector<Angle > > pointingDirection);
00304                 
00305         
00306         
00307         
00308 
00309 
00310         
00311         // ===> Attribute target
00312         
00313         
00314         
00315 
00316         
00321         vector<vector<Angle > > getTarget() const;
00322         
00323  
00324         
00325         
00331         void setTarget (vector<vector<Angle > > target);
00332                 
00333         
00334         
00335         
00336 
00337 
00338         
00339         // ===> Attribute offset
00340         
00341         
00342         
00343 
00344         
00349         vector<vector<Angle > > getOffset() const;
00350         
00351  
00352         
00353         
00359         void setOffset (vector<vector<Angle > > offset);
00360                 
00361 
00362         
00363         // ===> Attribute sourceOffset, which is optional
00364         
00365         
00366         
00371         bool isSourceOffsetExists() const;
00372         
00373 
00374         
00380         vector<vector<Angle > > getSourceOffset() const throw(IllegalAccessException);
00381         
00382  
00383         
00384         
00390         void setSourceOffset (vector<vector<Angle > > sourceOffset);
00391                 
00392         
00393         
00394         
00398         void clearSourceOffset ();
00399         
00400 
00401 
00402         
00403         // ===> Attribute encoder
00404         
00405         
00406         
00407 
00408         
00413         vector<Angle > getEncoder() const;
00414         
00415  
00416         
00417         
00423         void setEncoder (vector<Angle > encoder);
00424                 
00425         
00426         
00427         
00428 
00429 
00430         
00431         // ===> Attribute pointingTracking
00432         
00433         
00434         
00435 
00436         
00441         bool getPointingTracking() const;
00442         
00443  
00444         
00445         
00451         void setPointingTracking (bool pointingTracking);
00452                 
00453         
00454         // ===> Attribute phaseTracking, which is optional
00455         
00456 
00461         bool isPhaseTrackingExists() const;
00462         
00463         
00464         
00465 
00466         
00472         bool getPhaseTracking() const throw(IllegalAccessException);
00473         
00474  
00475         
00476         
00482         void setPhaseTracking (bool phaseTracking);
00483                 
00484         
00485         
00486         
00490         void clearPhaseTracking ();     
00491 
00492 
00493         
00494         // ===> Attribute overTheTop, which is optional
00495         
00496         
00497         
00502         bool isOverTheTopExists() const;
00503         
00504 
00505         
00511         bool getOverTheTop() const throw(IllegalAccessException);
00512         
00513  
00514         
00515         
00521         void setOverTheTop (bool overTheTop);
00522                 
00523         
00524         
00525         
00529         void clearOverTheTop ();
00530         
00531 
00532 
00534         // Extrinsic Table Attributes //
00536         
00537         
00538         // ===> Attribute antennaId
00539         
00540         
00541         
00542 
00543         
00548         Tag getAntennaId() const;
00549         
00550  
00551         
00552         
00559         void setAntennaId (Tag antennaId) throw(IllegalAccessException);
00560                 
00561         
00562         
00563         
00564 
00565 
00566         
00567         // ===> Attribute pointingModelId
00568         
00569         
00570         
00571 
00572         
00577         int getPointingModelId() const;
00578         
00579  
00580         
00581         
00587         void setPointingModelId (int pointingModelId);
00588                 
00589         
00590         
00591         
00592 
00593 
00595         // Links //
00597         
00598         
00599 
00600         
00601                 
00608          AntennaRow* getAntennaUsingAntennaId();
00609          
00610 
00611         
00612 
00613         
00614 
00615         
00616                 
00617         // ===> Slice link from a row of Pointing table to a collection of row of PointingModel table.
00618         
00624         vector <PointingModelRow *> getPointingModels();
00625         
00626         
00627 
00628         
00629 
00630         
00631         
00632         
00637         bool compareNoAutoInc(Tag antennaId, ArrayTimeInterval timeInterval, int pointingModelId, int numPoly, ArrayTime timeOrigin, vector<vector<Angle > > pointingDirection, vector<vector<Angle > > target, vector<vector<Angle > > offset, vector<Angle > encoder, bool pointingTracking);
00638         
00639 
00640         
00641         bool compareRequiredValue(int pointingModelId, int numPoly, ArrayTime timeOrigin, vector<vector<Angle > > pointingDirection, vector<vector<Angle > > target, vector<vector<Angle > > offset, vector<Angle > encoder, bool pointingTracking); 
00642                  
00643         
00652         bool equalByRequiredValue(PointingRow* x) ;
00653 
00654 private:
00658         PointingTable &table;
00662         bool hasBeenAdded;
00663 
00664         // This method is used by the Table class when this row is added to the table.
00665         void isAdded();
00666 
00667 
00676         PointingRow (PointingTable &table);
00677 
00695          PointingRow (PointingTable &table, PointingRow &row);
00696                 
00698         // Intrinsic Table Attributes //
00700         
00701         
00702         // ===> Attribute timeInterval
00703         
00704         
00705         ArrayTimeInterval timeInterval;
00706         
00707         
00708         
00709 
00710         
00711         // ===> Attribute name, which is optional
00712         
00713         
00714         bool nameExists;
00715         
00716         string name;
00717         
00718         
00719         
00720 
00721         
00722         // ===> Attribute numPoly
00723         
00724         
00725         int numPoly;
00726         
00727         
00728         
00729 
00730         
00731         // ===> Attribute timeOrigin
00732         
00733         
00734         ArrayTime timeOrigin;
00735         
00736         
00737         
00738 
00739         
00740         // ===> Attribute pointingDirection
00741         
00742         
00743         vector<vector<Angle > > pointingDirection;
00744         
00745         
00746         
00747 
00748         
00749         // ===> Attribute target
00750         
00751         
00752         vector<vector<Angle > > target;
00753         
00754         
00755         
00756 
00757         
00758         // ===> Attribute offset
00759         
00760         
00761         vector<vector<Angle > > offset;
00762         
00763         
00764         
00765 
00766         
00767         // ===> Attribute sourceOffset, which is optional
00768         
00769         
00770         bool sourceOffsetExists;
00771         
00772         vector<vector<Angle > > sourceOffset;
00773         
00774         
00775         
00776 
00777         
00778         // ===> Attribute encoder
00779         
00780         
00781         vector<Angle > encoder;
00782         
00783         
00784         
00785 
00786         
00787         // ===> Attribute pointingTracking
00788         
00789         
00790         bool pointingTracking;
00791         
00792         
00793         // ===> Attribute phaseTracking, which is optional
00794         
00795         
00796         bool phaseTrackingExists;
00797         
00798         bool phaseTracking;
00799         
00800         
00801         
00802         // ===> Attribute overTheTop, which is optional
00803         
00804         
00805         bool overTheTopExists;
00806         
00807         bool overTheTop;
00808         
00809         
00810         
00811 
00813         // Extrinsic Table Attributes //
00815         
00816         
00817         // ===> Attribute antennaId
00818         
00819         
00820         Tag antennaId;
00821         
00822         
00823         
00824 
00825         
00826         // ===> Attribute pointingModelId
00827         
00828         
00829         int pointingModelId;
00830         
00831         
00832         
00833 
00835         // Links //
00837         
00838         
00839                 
00840 
00841          
00842 
00843         
00844 
00845         
00846                 
00847 
00848 
00849         
00850 
00851 
00852 };
00853 
00854 } // End namespace asdm
00855 
00856 #endif /* Pointing_CLASS */

Generated on Thu Nov 29 16:46:46 2007 for ASDM C++ Implementation by  doxygen 1.5.1