Line data Source code
1 : 2 : /* 3 : * ALMA - Atacama Large Millimeter Array 4 : * (c) European Southern Observatory, 2002 5 : * (c) Associated Universities Inc., 2002 6 : * Copyright by ESO (in the framework of the ALMA collaboration), 7 : * Copyright by AUI (in the framework of the ALMA collaboration), 8 : * All rights reserved. 9 : * 10 : * This library is free software; you can redistribute it and/or 11 : * modify it under the terms of the GNU Lesser General Public 12 : * License as published by the Free software Foundation; either 13 : * version 2.1 of the License, or (at your option) any later version. 14 : * 15 : * This library is distributed in the hope that it will be useful, 16 : * but WITHOUT ANY WARRANTY, without even the implied warranty of 17 : * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 18 : * Lesser General Public License for more details. 19 : * 20 : * You should have received a copy of the GNU Lesser General Public 21 : * License along with this library; if not, write to the Free Software 22 : * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 23 : * MA 02111-1307 USA 24 : * 25 : * ///////////////////////////////////////////////////////////////// 26 : * // WARNING! DO NOT MODIFY THIS FILE! // 27 : * // --------------------------------------------------------- // 28 : * // | This is generated code! Do not modify this file. | // 29 : * // | Any changes will be lost when the file is re-generated. | // 30 : * // --------------------------------------------------------- // 31 : * ///////////////////////////////////////////////////////////////// 32 : * 33 : * File CCorrelationMode.cpp 34 : */ 35 : #include <sstream> 36 : #include <alma/Enumerations/CCorrelationMode.h> 37 : #include <string> 38 : using namespace std; 39 : 40 0 : int CCorrelationMode::version() { 41 0 : return CorrelationModeMod::version; 42 : } 43 : 44 0 : string CCorrelationMode::revision () { 45 0 : return CorrelationModeMod::revision; 46 : } 47 : 48 0 : unsigned int CCorrelationMode::size() { 49 0 : return 3; 50 : } 51 : 52 : 53 : const std::string& CCorrelationMode::sCROSS_ONLY = "CROSS_ONLY"; 54 : 55 : const std::string& CCorrelationMode::sAUTO_ONLY = "AUTO_ONLY"; 56 : 57 : const std::string& CCorrelationMode::sCROSS_AND_AUTO = "CROSS_AND_AUTO"; 58 : 59 5603 : const std::vector<std::string> CCorrelationMode::names() { 60 5603 : std::vector<std::string> enumSet; 61 : 62 5603 : enumSet.insert(enumSet.end(), CCorrelationMode::sCROSS_ONLY); 63 : 64 5603 : enumSet.insert(enumSet.end(), CCorrelationMode::sAUTO_ONLY); 65 : 66 5603 : enumSet.insert(enumSet.end(), CCorrelationMode::sCROSS_AND_AUTO); 67 : 68 5603 : return enumSet; 69 0 : } 70 : 71 791 : std::string CCorrelationMode::name(const CorrelationModeMod::CorrelationMode& f) { 72 791 : switch (f) { 73 : 74 524 : case CorrelationModeMod::CROSS_ONLY: 75 524 : return CCorrelationMode::sCROSS_ONLY; 76 : 77 14 : case CorrelationModeMod::AUTO_ONLY: 78 14 : return CCorrelationMode::sAUTO_ONLY; 79 : 80 253 : case CorrelationModeMod::CROSS_AND_AUTO: 81 253 : return CCorrelationMode::sCROSS_AND_AUTO; 82 : 83 : } 84 : // Impossible siutation but....who knows with C++ enums 85 0 : throw badInt((int) f); 86 : } 87 : 88 5954 : CorrelationModeMod::CorrelationMode CCorrelationMode::newCorrelationMode(const std::string& name) { 89 : 90 5954 : if (name == CCorrelationMode::sCROSS_ONLY) { 91 5607 : return CorrelationModeMod::CROSS_ONLY; 92 : } 93 : 94 347 : if (name == CCorrelationMode::sAUTO_ONLY) { 95 91 : return CorrelationModeMod::AUTO_ONLY; 96 : } 97 : 98 256 : if (name == CCorrelationMode::sCROSS_AND_AUTO) { 99 256 : return CorrelationModeMod::CROSS_AND_AUTO; 100 : } 101 : 102 0 : throw badString(name); 103 : } 104 : 105 2951 : CorrelationModeMod::CorrelationMode CCorrelationMode::literal(const std::string& name) { 106 : 107 2951 : if (name == CCorrelationMode::sCROSS_ONLY) { 108 74 : return CorrelationModeMod::CROSS_ONLY; 109 : } 110 : 111 2877 : if (name == CCorrelationMode::sAUTO_ONLY) { 112 2147 : return CorrelationModeMod::AUTO_ONLY; 113 : } 114 : 115 730 : if (name == CCorrelationMode::sCROSS_AND_AUTO) { 116 730 : return CorrelationModeMod::CROSS_AND_AUTO; 117 : } 118 : 119 0 : throw badString(name); 120 : } 121 : 122 5603 : CorrelationModeMod::CorrelationMode CCorrelationMode::from_int(unsigned int i) { 123 5603 : vector<string> names_ = names(); 124 5603 : if (i >= names_.size()) throw badInt(i); 125 11206 : return newCorrelationMode(names_.at(i)); 126 5603 : } 127 : 128 0 : string CCorrelationMode::badString(const string& name) { 129 0 : return "'"+name+"' does not correspond to any literal in the enumeration 'CorrelationMode'."; 130 : } 131 : 132 0 : string CCorrelationMode::badInt(unsigned int i) { 133 0 : ostringstream oss ; 134 0 : oss << "'" << i << "' is out of range for the enumeration 'CorrelationMode'."; 135 0 : return oss.str(); 136 0 : } 137 : 138 : namespace CorrelationModeMod { 139 0 : std::ostream & operator << ( std::ostream & out, const CorrelationMode& value) { 140 0 : out << CCorrelationMode::name(value); 141 0 : return out; 142 : } 143 : 144 0 : std::istream & operator >> ( std::istream & in , CorrelationMode& value ) { 145 0 : in.clear(); 146 0 : string s ; 147 0 : in >> s; 148 : try { 149 0 : value = CCorrelationMode::literal(s); 150 : } 151 0 : catch (string & m) { 152 0 : in.setstate(ios::failbit); 153 0 : } 154 0 : return in; 155 0 : } 156 : } 157 :