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