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, 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<PolarizationType > polarizationTypes, ReceiverBand receiverBand, vector<Angle > direction, Temperature ambientTemperature);
00436         
00441         CalHolographyRow *newRowFull(Tag calDataId, Tag calReductionId, string antennaName, 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<PolarizationType > polarizationTypes, 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* CalHolographyTable::getRowByKey(Tag calDataId, Tag calReductionId, string antennaName);
00516 
00517                 
00518 
00519 
00520 
00572         CalHolographyRow* lookup(Tag calDataId, Tag calReductionId, string antennaName, 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<PolarizationType > polarizationTypes, 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 Thu Nov 29 16:46:46 2007 for ASDM C++ Implementation by  doxygen 1.5.1