casa
$Rev:20696$
|
00001 /* 00002 * ALMA - Atacama Large Millimeter Array 00003 * (c) European Southern Observatory, 2002 00004 * (c) Associated Universities Inc., 2002 00005 * Copyright by ESO (in the framework of the ALMA collaboration), 00006 * Copyright by AUI (in the framework of the ALMA collaboration), 00007 * All rights reserved. 00008 * 00009 * This library is free software; you can redistribute it and/or 00010 * modify it under the terms of the GNU Lesser General Public 00011 * License as published by the Free software Foundation; either 00012 * version 2.1 of the License, or (at your option) any later version. 00013 * 00014 * This library is distributed in the hope that it will be useful, 00015 * but WITHOUT ANY WARRANTY, without even the implied warranty of 00016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 * Lesser General Public License for more details. 00018 * 00019 * You should have received a copy of the GNU Lesser General Public 00020 * License along with this library; if not, write to the Free Software 00021 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 00022 * MA 02111-1307 USA 00023 * 00024 * File PartId.h 00025 */ 00026 00027 #ifndef PartId_CLASS 00028 #define PartId_CLASS 00029 00030 #include <string> 00031 using std::string; 00032 00033 #include <InvalidArgumentException.h> 00034 using asdm::InvalidArgumentException; 00035 00036 #include "EndianStream.h" 00037 using asdm::EndianOSStream; 00038 using asdm::EndianIStream; 00039 00040 namespace asdm { 00041 00048 class PartId { 00049 00050 public: 00051 static string validate(string x); 00052 00053 PartId(); 00054 PartId(const PartId &); 00055 PartId(const string &id) throw (InvalidArgumentException); 00056 virtual ~PartId(); 00057 00058 bool equals(const PartId &) const; 00059 00060 string toString() const; 00061 00062 void setId(const string &s) throw (InvalidArgumentException); 00063 00067 void toBin(EndianOSStream& eoss) const; 00068 00076 static PartId fromBin(EndianIStream& eis); 00077 private: 00078 string id; 00079 00080 }; 00081 00082 // PartId constructors 00083 inline PartId::PartId() { } 00084 00085 inline PartId::PartId(const PartId &x) : id(x.id) { } 00086 00087 // PartId destructor 00088 inline PartId::~PartId() { } 00089 00090 inline bool PartId::equals(const PartId &x) const { 00091 return id == x.id; 00092 } 00093 00094 inline string PartId::toString() const { 00095 return id; 00096 } 00097 00098 } // End namespace asdm 00099 00100 #endif /* PartId_CLASS */