00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef Humidity_CLASS
00028 #define Humidity_CLASS
00029
00030 #include <vector>
00031 #include <iostream>
00032 #include <string>
00033 using namespace std;
00034
00035 #ifndef WITHOUT_ACS
00036 #include <asdmIDLTypesC.h>
00037 using asdmIDLTypes::IDLHumidity;
00038 #endif
00039
00040 #include <StringTokenizer.h>
00041 #include <NumberFormatException.h>
00042 using asdm::StringTokenizer;
00043 using asdm::NumberFormatException;
00044
00045 #include "EndianStream.h"
00046 using asdm::EndianOSStream;
00047 using asdm::EndianISStream;
00048
00049 namespace asdm {
00050
00051 class Humidity;
00052 Humidity operator * ( double , const Humidity & );
00053 ostream & operator << ( ostream &, const Humidity & );
00054 istream & operator >> ( istream &, Humidity&);
00055
00065 class Humidity {
00066 friend Humidity operator * ( double , const Humidity & );
00067 friend ostream & operator << ( ostream &, const Humidity & );
00068 friend istream & operator >> ( istream &, Humidity&);
00069
00070 public:
00071 static double fromString(const string&);
00072 static string toString(double);
00073 static Humidity getHumidity(StringTokenizer &t) throw(NumberFormatException);
00074
00078 void toBin(EndianOSStream& eoss);
00079
00085 static void toBin(const vector<Humidity>& humidity, EndianOSStream& eoss);
00086
00092 static void toBin(const vector<vector<Humidity> >& humidity, EndianOSStream& eoss);
00093
00099 static void toBin(const vector<vector<vector<Humidity> > >& humidity, EndianOSStream& eoss);
00100
00107 static Humidity fromBin(EndianISStream& eiss);
00108
00115 static vector<Humidity> from1DBin(EndianISStream & eiss);
00116
00123 static vector<vector<Humidity> > from2DBin(EndianISStream & eiss);
00124
00131 static vector<vector<vector<Humidity> > > from3DBin(EndianISStream & eiss);
00132 Humidity();
00133 Humidity(const Humidity &);
00134 Humidity(const string &s);
00135 #ifndef WITHOUT_ACS
00136 Humidity(const IDLHumidity &);
00137 #endif
00138 Humidity(double value);
00139 virtual ~Humidity();
00140
00141 Humidity& operator = (const Humidity&);
00142 Humidity& operator = (const double);
00143
00144 Humidity& operator += (const Humidity&);
00145 Humidity& operator -= (const Humidity&);
00146 Humidity& operator *= (const double);
00147 Humidity& operator /= (const double);
00148
00149 Humidity operator + (const Humidity&) const;
00150 Humidity operator - (const Humidity&) const;
00151 Humidity operator * (const double) const;
00152 Humidity operator / (const double) const;
00153
00154 bool operator < (const Humidity&) const;
00155 bool operator > (const Humidity&) const;
00156 bool operator <= (const Humidity&) const;
00157 bool operator >= (const Humidity&) const;
00158 bool operator == (const Humidity&) const;
00159 bool equals(const Humidity&) const;
00160 bool operator != (const Humidity&) const;
00161
00162 bool isZero() const;
00163
00164 Humidity operator - () const;
00165 Humidity operator + () const;
00166
00167 string toString() const;
00168 string toStringI() const;
00169
00170 operator string () const;
00171 double get() const;
00172 #ifndef WITHOUT_ACS
00173 IDLHumidity toIDLHumidity() const;
00174 #endif
00175 static string unit();
00176
00177 private:
00178 double value;
00179
00180 };
00181
00182
00183 inline Humidity::Humidity() : value(0.0) {
00184 }
00185
00186 inline Humidity::Humidity(const Humidity &t) : value(t.value) {
00187 }
00188
00189 #ifndef WITHOUT_ACS
00190 inline Humidity::Humidity(const IDLHumidity &l) : value(l.value) {
00191 }
00192 #endif
00193
00194 inline Humidity::Humidity(const string &s) : value(fromString(s)) {
00195 }
00196
00197 inline Humidity::Humidity(double v) : value(v) {
00198 }
00199
00200
00201 inline Humidity::~Humidity() { }
00202
00203
00204 inline Humidity& Humidity::operator = ( const Humidity &t ) {
00205 value = t.value;
00206 return *this;
00207 }
00208
00209
00210 inline Humidity& Humidity::operator = ( const double v ) {
00211 value = v;
00212 return *this;
00213 }
00214
00215
00216 inline Humidity& Humidity::operator += ( const Humidity& t) {
00217 value += t.value;
00218 return *this;
00219 }
00220
00221 inline Humidity& Humidity::operator -= ( const Humidity& t) {
00222 value -= t.value;
00223 return *this;
00224 }
00225
00226 inline Humidity& Humidity::operator *= ( const double n) {
00227 value *= n;
00228 return *this;
00229 }
00230
00231 inline Humidity& Humidity::operator /= ( const double n) {
00232 value /= n;
00233 return *this;
00234 }
00235
00236
00237 inline Humidity Humidity::operator + ( const Humidity &t2 ) const {
00238 Humidity tmp;
00239 tmp.value = value + t2.value;
00240 return tmp;
00241 }
00242
00243 inline Humidity Humidity::operator - ( const Humidity &t2 ) const {
00244 Humidity tmp;
00245 tmp.value = value - t2.value;
00246 return tmp;
00247 }
00248 inline Humidity Humidity::operator * ( const double n) const {
00249 Humidity tmp;
00250 tmp.value = value * n;
00251 return tmp;
00252 }
00253
00254 inline Humidity Humidity::operator / ( const double n) const {
00255 Humidity tmp;
00256 tmp.value = value / n;
00257 return tmp;
00258 }
00259
00260
00261 inline bool Humidity::operator < (const Humidity& x) const {
00262 return (value < x.value);
00263 }
00264
00265 inline bool Humidity::operator > (const Humidity& x) const {
00266 return (value > x.value);
00267 }
00268
00269 inline bool Humidity::operator <= (const Humidity& x) const {
00270 return (value <= x.value);
00271 }
00272
00273 inline bool Humidity::operator >= (const Humidity& x) const {
00274 return (value >= x.value);
00275 }
00276
00277 inline bool Humidity::operator == (const Humidity& x) const {
00278 return (value == x.value);
00279 }
00280 inline bool Humidity::equals(const Humidity& x) const {
00281 return (value == x.value);
00282 }
00283
00284 inline bool Humidity::operator != (const Humidity& x) const {
00285 return (value != x.value);
00286 }
00287
00288
00289 inline Humidity Humidity::operator - () const {
00290 Humidity tmp;
00291 tmp.value = -value;
00292 return tmp;
00293 }
00294
00295 inline Humidity Humidity::operator + () const {
00296 Humidity tmp;
00297 tmp.value = value;
00298 return tmp;
00299 }
00300
00301
00302 inline Humidity::operator string () const {
00303 return toString();
00304 }
00305
00306 inline string Humidity::toString() const {
00307 return toString(value);
00308 }
00309
00310 inline string Humidity::toStringI() const {
00311 return toString(value);
00312 }
00313
00314 inline double Humidity::get() const {
00315 return value;
00316 }
00317
00318 #ifndef WITHOUT_ACS
00319 inline IDLHumidity Humidity::toIDLHumidity() const {
00320 IDLHumidity tmp;
00321 tmp.value = value;
00322 return tmp;
00323 }
00324 #endif
00325
00326
00327
00328 inline Humidity operator * ( double n, const Humidity &x) {
00329 Humidity tmp;
00330 tmp.value = x.value * n;
00331 return tmp;
00332 }
00333
00334 inline ostream & operator << ( ostream &o, const Humidity &x ) {
00335 o << x.value;
00336 return o;
00337 }
00338
00339 inline istream & operator >> ( istream &i, Humidity &x ) {
00340 i >> x.value;
00341 return i;
00342 }
00343
00344 inline string Humidity::unit() {
00345 return string ("%");
00346 }
00347
00348 }
00349
00350 #endif