casa
$Rev:20696$
|
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 WVMCalRow.h 00032 */ 00033 00034 #ifndef WVMCalRow_CLASS 00035 #define WVMCalRow_CLASS 00036 00037 #include <vector> 00038 #include <string> 00039 #include <set> 00040 00041 #ifndef WITHOUT_ACS 00042 #include <asdmIDLC.h> 00043 #endif 00044 00045 00046 00047 00048 00049 00050 00051 #include <Tag.h> 00052 00053 00054 00055 #include <Temperature.h> 00056 00057 00058 00059 #include <Frequency.h> 00060 00061 00062 00063 #include <ArrayTimeInterval.h> 00064 00065 00066 00067 00068 00069 00070 00071 00072 #include "CWVRMethod.h" 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 #include <ConversionException.h> 00090 #include <NoSuchRow.h> 00091 #include <IllegalAccessException.h> 00092 00093 #include <RowTransformer.h> 00094 //#include <TableStreamReader.h> 00095 00096 /*\file WVMCal.h 00097 \brief Generated from model's revision "1.64", branch "HEAD" 00098 */ 00099 00100 namespace asdm { 00101 00102 //class asdm::WVMCalTable; 00103 00104 00105 // class asdm::SpectralWindowRow; 00106 class SpectralWindowRow; 00107 00108 // class asdm::AntennaRow; 00109 class AntennaRow; 00110 00111 // class asdm::AntennaRow; 00112 class AntennaRow; 00113 00114 00115 class WVMCalRow; 00116 typedef void (WVMCalRow::*WVMCalAttributeFromBin) (EndianIStream& eis); 00117 typedef void (WVMCalRow::*WVMCalAttributeFromText) (const string& s); 00118 00125 class WVMCalRow { 00126 friend class asdm::WVMCalTable; 00127 friend class asdm::RowTransformer<WVMCalRow>; 00128 //friend class asdm::TableStreamReader<WVMCalTable, WVMCalRow>; 00129 00130 public: 00131 00132 virtual ~WVMCalRow(); 00133 00137 WVMCalTable &getTable() const; 00138 00143 bool isAdded() const; 00144 00146 // Intrinsic Table Attributes // 00148 00149 00150 // ===> Attribute timeInterval 00151 00152 00153 00154 00155 00160 ArrayTimeInterval getTimeInterval() const; 00161 00162 00163 00164 00174 void setTimeInterval (ArrayTimeInterval timeInterval); 00175 00176 00177 00178 00179 00180 00181 00182 // ===> Attribute wvrMethod 00183 00184 00185 00186 00187 00192 WVRMethodMod::WVRMethod getWvrMethod() const; 00193 00194 00195 00196 00204 void setWvrMethod (WVRMethodMod::WVRMethod wvrMethod); 00205 00206 00207 00208 00209 00210 00211 00212 // ===> Attribute polyFreqLimits 00213 00214 00215 00216 00217 00222 vector<Frequency > getPolyFreqLimits() const; 00223 00224 00225 00226 00234 void setPolyFreqLimits (vector<Frequency > polyFreqLimits); 00235 00236 00237 00238 00239 00240 00241 00242 // ===> Attribute numInputAntenna 00243 00244 00245 00246 00247 00252 int getNumInputAntenna() const; 00253 00254 00255 00256 00264 void setNumInputAntenna (int numInputAntenna); 00265 00266 00267 00268 00269 00270 00271 00272 // ===> Attribute numChan 00273 00274 00275 00276 00277 00282 int getNumChan() const; 00283 00284 00285 00286 00294 void setNumChan (int numChan); 00295 00296 00297 00298 00299 00300 00301 00302 // ===> Attribute numPoly 00303 00304 00305 00306 00307 00312 int getNumPoly() const; 00313 00314 00315 00316 00324 void setNumPoly (int numPoly); 00325 00326 00327 00328 00329 00330 00331 00332 // ===> Attribute pathCoeff 00333 00334 00335 00336 00337 00342 vector<vector<vector<float > > > getPathCoeff() const; 00343 00344 00345 00346 00354 void setPathCoeff (vector<vector<vector<float > > > pathCoeff); 00355 00356 00357 00358 00359 00360 00361 00362 // ===> Attribute refTemp 00363 00364 00365 00366 00367 00372 vector<vector<Temperature > > getRefTemp() const; 00373 00374 00375 00376 00384 void setRefTemp (vector<vector<Temperature > > refTemp); 00385 00386 00387 00388 00389 00390 00392 // Extrinsic Table Attributes // 00394 00395 00396 // ===> Attribute antennaId 00397 00398 00399 00400 00401 00406 Tag getAntennaId() const; 00407 00408 00409 00410 00420 void setAntennaId (Tag antennaId); 00421 00422 00423 00424 00425 00426 00427 00428 // ===> Attribute inputAntennaId 00429 00430 00431 00432 00433 00438 vector<Tag> getInputAntennaId() const; 00439 00440 00441 00442 00450 void setInputAntennaId (vector<Tag> inputAntennaId); 00451 00452 00453 00454 00455 00456 00457 00458 // ===> Attribute spectralWindowId 00459 00460 00461 00462 00463 00468 Tag getSpectralWindowId() const; 00469 00470 00471 00472 00482 void setSpectralWindowId (Tag spectralWindowId); 00483 00484 00485 00486 00487 00488 00490 // Links // 00492 00493 00494 00495 00496 00503 SpectralWindowRow* getSpectralWindowUsingSpectralWindowId(); 00504 00505 00506 00507 00508 00509 00510 00511 00518 AntennaRow* getAntennaUsingAntennaId(); 00519 00520 00521 00522 00523 00524 00532 void setInputAntennaId (int i, Tag inputAntennaId); 00533 00534 00535 00536 00537 00542 void addInputAntennaId(Tag id); 00543 00548 void addInputAntennaId(const vector<Tag> & id); 00549 00550 00556 const Tag getInputAntennaId(int i); 00557 00565 AntennaRow* getAntennaUsingInputAntennaId(int i); 00566 00571 vector<AntennaRow *> getAntennasUsingInputAntennaId(); 00572 00573 00574 00575 00576 00577 00578 00606 bool compareNoAutoInc(Tag antennaId, Tag spectralWindowId, ArrayTimeInterval timeInterval, WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, vector<vector<vector<float > > > pathCoeff, vector<vector<Temperature > > refTemp, vector<Tag> inputAntennaId); 00607 00608 00609 00610 00632 bool compareRequiredValue(WVRMethodMod::WVRMethod wvrMethod, vector<Frequency > polyFreqLimits, int numInputAntenna, int numChan, int numPoly, vector<vector<vector<float > > > pathCoeff, vector<vector<Temperature > > refTemp, vector<Tag> inputAntennaId); 00633 00634 00643 bool equalByRequiredValue(WVMCalRow* x) ; 00644 00645 #ifndef WITHOUT_ACS 00646 00650 asdmIDL::WVMCalRowIDL *toIDL() const; 00651 00659 void toIDL(asdmIDL::WVMCalRowIDL& x) const; 00660 #endif 00661 00662 #ifndef WITHOUT_ACS 00663 00668 void setFromIDL (asdmIDL::WVMCalRowIDL x) ; 00669 #endif 00670 00675 std::string toXML() const; 00676 00683 void setFromXML (std::string rowDoc) ; 00684 00687 // binary-deserialization material from an EndianIStream // 00689 00690 std::map<std::string, WVMCalAttributeFromBin> fromBinMethods; 00691 void antennaIdFromBin( EndianIStream& eis); 00692 void spectralWindowIdFromBin( EndianIStream& eis); 00693 void timeIntervalFromBin( EndianIStream& eis); 00694 void wvrMethodFromBin( EndianIStream& eis); 00695 void polyFreqLimitsFromBin( EndianIStream& eis); 00696 void numInputAntennaFromBin( EndianIStream& eis); 00697 void numChanFromBin( EndianIStream& eis); 00698 void numPolyFromBin( EndianIStream& eis); 00699 void pathCoeffFromBin( EndianIStream& eis); 00700 void refTempFromBin( EndianIStream& eis); 00701 void inputAntennaIdFromBin( EndianIStream& eis); 00702 00703 00704 00712 static WVMCalRow* fromBin(EndianIStream& eis, WVMCalTable& table, const std::vector<std::string>& attributesSeq); 00713 00720 void fromText(const std::string& attributeName, const std::string& t); 00722 00723 private: 00727 WVMCalTable &table; 00731 bool hasBeenAdded; 00732 00733 // This method is used by the Table class when this row is added to the table. 00734 void isAdded(bool added); 00735 00736 00745 WVMCalRow (WVMCalTable &table); 00746 00764 WVMCalRow (WVMCalTable &table, WVMCalRow &row); 00765 00767 // Intrinsic Table Attributes // 00769 00770 00771 // ===> Attribute timeInterval 00772 00773 00774 00775 ArrayTimeInterval timeInterval; 00776 00777 00778 00779 00780 00781 00782 // ===> Attribute wvrMethod 00783 00784 00785 00786 WVRMethodMod::WVRMethod wvrMethod; 00787 00788 00789 00790 00791 00792 00793 // ===> Attribute polyFreqLimits 00794 00795 00796 00797 vector<Frequency > polyFreqLimits; 00798 00799 00800 00801 00802 00803 00804 // ===> Attribute numInputAntenna 00805 00806 00807 00808 int numInputAntenna; 00809 00810 00811 00812 00813 00814 00815 // ===> Attribute numChan 00816 00817 00818 00819 int numChan; 00820 00821 00822 00823 00824 00825 00826 // ===> Attribute numPoly 00827 00828 00829 00830 int numPoly; 00831 00832 00833 00834 00835 00836 00837 // ===> Attribute pathCoeff 00838 00839 00840 00841 vector<vector<vector<float > > > pathCoeff; 00842 00843 00844 00845 00846 00847 00848 // ===> Attribute refTemp 00849 00850 00851 00852 vector<vector<Temperature > > refTemp; 00853 00854 00855 00856 00857 00859 // Extrinsic Table Attributes // 00861 00862 00863 // ===> Attribute antennaId 00864 00865 00866 00867 Tag antennaId; 00868 00869 00870 00871 00872 00873 00874 // ===> Attribute inputAntennaId 00875 00876 00877 00878 vector<Tag> inputAntennaId; 00879 00880 00881 00882 00883 00884 00885 // ===> Attribute spectralWindowId 00886 00887 00888 00889 Tag spectralWindowId; 00890 00891 00892 00893 00894 00896 // Links // 00898 00899 00900 00901 00902 00903 00904 00905 00906 00907 00908 00909 00910 00911 00912 00913 00914 00915 00916 00917 00918 00919 00920 /* 00922 // binary-deserialization material from an EndianIStream // 00924 std::map<std::string, WVMCalAttributeFromBin> fromBinMethods; 00925 void antennaIdFromBin( EndianIStream& eis); 00926 void spectralWindowIdFromBin( EndianIStream& eis); 00927 void timeIntervalFromBin( EndianIStream& eis); 00928 void wvrMethodFromBin( EndianIStream& eis); 00929 void polyFreqLimitsFromBin( EndianIStream& eis); 00930 void numInputAntennaFromBin( EndianIStream& eis); 00931 void numChanFromBin( EndianIStream& eis); 00932 void numPolyFromBin( EndianIStream& eis); 00933 void pathCoeffFromBin( EndianIStream& eis); 00934 void refTempFromBin( EndianIStream& eis); 00935 void inputAntennaIdFromBin( EndianIStream& eis); 00936 00937 00938 */ 00939 00941 // text-deserialization material // 00943 std::map<std::string, WVMCalAttributeFromText> fromTextMethods; 00944 00945 void antennaIdFromText (const string & s); 00946 00947 00948 void spectralWindowIdFromText (const string & s); 00949 00950 00951 void timeIntervalFromText (const string & s); 00952 00953 00954 void wvrMethodFromText (const string & s); 00955 00956 00957 void polyFreqLimitsFromText (const string & s); 00958 00959 00960 void numInputAntennaFromText (const string & s); 00961 00962 00963 void numChanFromText (const string & s); 00964 00965 00966 void numPolyFromText (const string & s); 00967 00968 00969 void pathCoeffFromText (const string & s); 00970 00971 00972 void refTempFromText (const string & s); 00973 00974 00975 void inputAntennaIdFromText (const string & s); 00976 00977 00978 00979 00984 void toBin(EndianOSStream& eoss); 00985 00995 }; 00996 00997 } // End namespace asdm 00998 00999 #endif /* WVMCal_CLASS */