CalHolographyTable.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 CalHolographyTable.h 00032 */ 00033 00034 #ifndef CalHolographyTable_CLASS 00035 #define CalHolographyTable_CLASS 00036 00037 #include <string> 00038 #include <vector> 00039 #include <map> 00040 #include <set> 00041 using std::string; 00042 using std::vector; 00043 using std::map; 00044 00045 #include <Angle.h> 00046 #include <AngularRate.h> 00047 #include <ArrayTime.h> 00048 #include <ArrayTimeInterval.h> 00049 #include <Complex.h> 00050 #include <Entity.h> 00051 #include <EntityId.h> 00052 #include <EntityRef.h> 00053 #include <Flux.h> 00054 #include <Frequency.h> 00055 #include <Humidity.h> 00056 #include <Interval.h> 00057 #include <Length.h> 00058 #include <PartId.h> 00059 #include <Pressure.h> 00060 #include <Speed.h> 00061 #include <Tag.h> 00062 #include <Temperature.h> 00063 #include <ConversionException.h> 00064 #include <DuplicateKey.h> 00065 #include <UniquenessViolationException.h> 00066 #include <NoSuchRow.h> 00067 #include <DuplicateKey.h> 00068 00069 /* 00070 #include <Enumerations.h> 00071 using namespace enumerations; 00072 */ 00073 00074 00075 00076 00077 00078 00079 00080 #include "CAntennaMake.h" 00081 using namespace AntennaMakeMod; 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 #include "CPolarizationType.h" 00114 using namespace PolarizationTypeMod; 00115 00116 00117 00118 #include "CReceiverBand.h" 00119 using namespace ReceiverBandMod; 00120 00121 00122 00123 00124 00125 00126 00127 #ifndef WITHOUT_ACS 00128 #include <asdmIDLC.h> 00129 using asdmIDL::CalHolographyTableIDL; 00130 #endif 00131 00132 using asdm::Angle; 00133 using asdm::AngularRate; 00134 using asdm::ArrayTime; 00135 using asdm::Complex; 00136 using asdm::Entity; 00137 using asdm::EntityId; 00138 using asdm::EntityRef; 00139 using asdm::Flux; 00140 using asdm::Frequency; 00141 using asdm::Humidity; 00142 using asdm::Interval; 00143 using asdm::Length; 00144 using asdm::PartId; 00145 using asdm::Pressure; 00146 using asdm::Speed; 00147 using asdm::Tag; 00148 using asdm::Temperature; 00149 00150 using asdm::DuplicateKey; 00151 using asdm::ConversionException; 00152 using asdm::NoSuchRow; 00153 using asdm::DuplicateKey; 00154 00155 #include <Representable.h> 00156 00157 namespace asdm { 00158 00159 //class asdm::ASDM; 00160 //class asdm::CalHolographyRow; 00161 00162 class ASDM; 00163 class CalHolographyRow; 00321 class CalHolographyTable : public Representable { 00322 friend class asdm::ASDM; 00323 00324 public: 00325 00326 00332 static vector<string> getKeyName(); 00333 00334 00335 virtual ~CalHolographyTable(); 00336 00342 ASDM &getContainer() const; 00343 00349 unsigned int size() ; 00350 00356 string getName() const; 00357 00361 Entity getEntity() const; 00362 00367 void setEntity(Entity e); 00368 00369 // 00370 // ====> Row creation. 00371 // 00372 00377 CalHolographyRow *newRow(); 00378 00383 CalHolographyRow* newRowEmpty(); 00384 00385 00435 CalHolographyRow *newRow(Tag calDataId, Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake, int numScrew, int numReceptor, ArrayTime startValidTime, ArrayTime endValidTime, vector<Length > focusPosition, Length rawRms, Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError, int panelModes, vector<Frequency > frequencyRange, EntityRef beamMapUID, EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction, Temperature ambientTemperature); 00436 00441 CalHolographyRow *newRowFull(Tag calDataId, Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake, int numScrew, int numReceptor, ArrayTime startValidTime, ArrayTime endValidTime, vector<Length > focusPosition, Length rawRms, Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError, int panelModes, vector<Frequency > frequencyRange, EntityRef beamMapUID, EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction, Temperature ambientTemperature); 00442 00443 00456 CalHolographyRow *newRow(CalHolographyRow *row); 00457 00462 CalHolographyRow *newRowCopy(CalHolographyRow *row); 00463 00464 // 00465 // ====> Append a row to its table. 00466 // 00467 00468 00481 CalHolographyRow* add(CalHolographyRow* x) ; 00482 00483 00484 00485 00486 00487 // 00488 // ====> Methods returning rows. 00489 // 00490 00496 vector<CalHolographyRow *> get() ; 00497 00498 00499 00500 00501 00515 CalHolographyRow* getRowByKey(Tag calDataId, Tag calReductionId, string antennaName); 00516 00517 00518 00519 00520 00572 CalHolographyRow* lookup(Tag calDataId, Tag calReductionId, string antennaName, AntennaMakeMod::AntennaMake antennaMake, int numScrew, int numReceptor, ArrayTime startValidTime, ArrayTime endValidTime, vector<Length > focusPosition, Length rawRms, Length weightedRms, vector<string > screwName, vector<Length > screwMotion, vector<Length > screwMotionError, int panelModes, vector<Frequency > frequencyRange, EntityRef beamMapUID, EntityRef surfaceMapUID, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, ReceiverBandMod::ReceiverBand receiverBand, vector<Angle > direction, Temperature ambientTemperature); 00573 00574 00575 #ifndef WITHOUT_ACS 00576 // Conversion Methods 00582 CalHolographyTableIDL *toIDL() ; 00583 #endif 00584 00585 #ifndef WITHOUT_ACS 00586 00592 void fromIDL(CalHolographyTableIDL x) throw(DuplicateKey,ConversionException); 00593 #endif 00594 00598 char *toFITS() const throw(ConversionException); 00599 00603 void fromFITS(char *fits) throw(ConversionException); 00604 00608 string toVOTable() const throw(ConversionException); 00609 00613 void fromVOTable(string vo) throw(ConversionException); 00614 00621 string toXML() throw(ConversionException); 00622 00628 void fromXML(string xmlDoc) throw(ConversionException); 00629 00635 string toMIME(); 00636 00643 void setFromMIME(const string & mimeMsg); 00644 00654 void toFile(string directory); 00655 00664 void setFromFile(const string& directory); 00665 00666 private: 00667 00676 CalHolographyTable (ASDM & container); 00677 00678 ASDM & container; 00679 00680 bool archiveAsBin; // If true archive binary else archive XML 00681 bool fileAsBin ; // If true file binary else file XML 00682 00683 Entity entity; 00684 00685 00686 00690 static string tableName; 00691 00692 00696 static vector<string> key; 00697 00698 00704 CalHolographyRow* checkAndAdd(CalHolographyRow* x) throw (DuplicateKey); 00705 00706 00707 00708 // A data structure to store the pointers on the table's rows. 00709 00710 // In all cases we maintain a private ArrayList of CalHolographyRow s. 00711 vector<CalHolographyRow * > privateRows; 00712 00713 00714 00715 vector<CalHolographyRow *> row; 00716 00717 00718 void error() throw(ConversionException); 00719 00720 }; 00721 00722 } // End namespace asdm 00723 00724 #endif /* CalHolographyTable_CLASS */

Generated on Tue Nov 18 17:43:40 2008 for ASDM C++ Implementation by doxygen 1.3.8