CalHolographyTable.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 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 
00046 
00047 #include <ArrayTime.h>
00048 using  asdm::ArrayTime;
00049 
00050 #include <Temperature.h>
00051 using  asdm::Temperature;
00052 
00053 #include <Angle.h>
00054 using  asdm::Angle;
00055 
00056 #include <Tag.h>
00057 using  asdm::Tag;
00058 
00059 #include <Length.h>
00060 using  asdm::Length;
00061 
00062 #include <Frequency.h>
00063 using  asdm::Frequency;
00064 
00065 #include <EntityRef.h>
00066 using  asdm::EntityRef;
00067 
00068 
00069 
00070 
00071         
00072 
00073         
00074 #include "CAntennaMake.h"
00075 using namespace AntennaMakeMod;
00076         
00077 
00078         
00079 
00080         
00081 
00082         
00083 
00084         
00085 
00086         
00087 
00088         
00089 
00090         
00091 
00092         
00093 #include "CPolarizationType.h"
00094 using namespace PolarizationTypeMod;
00095         
00096 
00097         
00098 
00099         
00100 #include "CReceiverBand.h"
00101 using namespace ReceiverBandMod;
00102         
00103 
00104         
00105 
00106         
00107 
00108         
00109 
00110         
00111 
00112         
00113 
00114         
00115 
00116         
00117 
00118         
00119 
00120         
00121 
00122         
00123 
00124         
00125 
00126         
00127 
00128         
00129 
00130 
00131 
00132 #include <ConversionException.h>
00133 #include <DuplicateKey.h>
00134 #include <UniquenessViolationException.h>
00135 #include <NoSuchRow.h>
00136 #include <DuplicateKey.h>
00137 using asdm::DuplicateKey;
00138 using asdm::ConversionException;
00139 using asdm::NoSuchRow;
00140 using asdm::DuplicateKey;
00141 
00142 #ifndef WITHOUT_ACS
00143 #include <asdmIDLC.h>
00144 using asdmIDL::CalHolographyTableIDL;
00145 #endif
00146 
00147 #include <Representable.h>
00148 
00149 namespace asdm {
00150 
00151 //class asdm::ASDM;
00152 //class asdm::CalHolographyRow;
00153 
00154 class ASDM;
00155 class CalHolographyRow;
00378 class CalHolographyTable : public Representable {
00379         friend class ASDM;
00380 
00381 public:
00382 
00383 
00389         static vector<string> getKeyName();
00390 
00391 
00392         virtual ~CalHolographyTable();
00393         
00399         ASDM &getContainer() const;
00400         
00406         unsigned int size() ;
00407         
00413         string getName() const;
00414         
00420          static const vector<string>& getAttributesNames();
00421 
00425         Entity getEntity() const;
00426 
00431         void setEntity(Entity e);
00432                 
00440         string toXML()  ;
00441 
00442 #ifndef WITHOUT_ACS
00443         // Conversion Methods
00449         CalHolographyTableIDL *toIDL() ;
00450 #endif
00451 
00452 #ifndef WITHOUT_ACS
00453 
00459         void fromIDL(CalHolographyTableIDL x) ;
00460 #endif
00461         
00462         //
00463         // ====> Row creation.
00464         //
00465         
00470         CalHolographyRow *newRow();
00471         
00472         
00516         CalHolographyRow *newRow(string antennaName, Tag calDataId, Tag calReductionId, AntennaMakeMod::AntennaMake antennaMake, ArrayTime startValidTime, ArrayTime endValidTime, Temperature ambientTemperature, vector<Length > focusPosition, vector<Frequency > frequencyRange, double illuminationTaper, int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, int numPanelModes, ReceiverBandMod::ReceiverBand receiverBand, EntityRef beamMapUID, Length rawRMS, Length weightedRMS, EntityRef surfaceMapUID, vector<Angle > direction);
00517         
00518 
00519 
00532          CalHolographyRow *newRow(CalHolographyRow *row); 
00533 
00534         //
00535         // ====> Append a row to its table.
00536         //
00537  
00538         
00551         CalHolographyRow* add(CalHolographyRow* x) ; 
00552 
00553  
00554 
00555 
00556 
00557         //
00558         // ====> Methods returning rows.
00559         //
00560                 
00566         vector<CalHolographyRow *> get() ;
00567         
00568 
00569 
00570  
00571         
00585         CalHolographyRow* getRowByKey(string antennaName, Tag calDataId, Tag calReductionId);
00586 
00587                 
00588 
00589 
00590 
00636         CalHolographyRow* lookup(string antennaName, Tag calDataId, Tag calReductionId, AntennaMakeMod::AntennaMake antennaMake, ArrayTime startValidTime, ArrayTime endValidTime, Temperature ambientTemperature, vector<Length > focusPosition, vector<Frequency > frequencyRange, double illuminationTaper, int numReceptor, vector<PolarizationTypeMod::PolarizationType > polarizationTypes, int numPanelModes, ReceiverBandMod::ReceiverBand receiverBand, EntityRef beamMapUID, Length rawRMS, Length weightedRMS, EntityRef surfaceMapUID, vector<Angle > direction); 
00637 
00638 
00639 private:
00640 
00649         CalHolographyTable (ASDM & container);
00650 
00651         ASDM & container;
00652         
00653         bool archiveAsBin; // If true archive binary else archive XML
00654         bool fileAsBin ; // If true file binary else file XML   
00655         
00656         Entity entity;
00657         
00658 
00659 
00663         static string tableName;
00664         
00668         static const vector<string> attributesNames;
00669         
00673         static vector<string> initAttributesNames();
00674 
00675 
00679         static vector<string> key;
00680 
00681 
00689         CalHolographyRow* checkAndAdd(CalHolographyRow* x) ;
00690 
00691 
00692 
00693 // A data structure to store the pointers on the table's rows.
00694 
00695 // In all cases we maintain a private vector of CalHolographyRow s.
00696    vector<CalHolographyRow * > privateRows;
00697    
00698 
00699                         
00700         vector<CalHolographyRow *> row;
00701 
00702         
00703         void error() ; //throw(ConversionException);
00704 
00705         
00712         void fromXML(string xmlDoc) ;
00713                 
00718         void setFromMIMEFile(const string& directory);
00719         void setFromXMLFile(const string& directory);
00720         
00728         string toMIME(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00729   
00730         
00737          void setFromMIME(const string & mimeMsg);
00738         
00742         string MIMEXMLPart(const asdm::ByteOrder* byteOrder=asdm::ByteOrder::Machine_Endianity);
00743         
00753           void toFile(string directory);
00754           
00763          void setFromFile(const string& directory);     
00764  
00765 };
00766 
00767 } // End namespace asdm
00768 
00769 #endif /* CalHolographyTable_CLASS */
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines