Horus Doc || C++ Reference || Class Overview   Pixels   Images   Detector   Geometry   Registry || Doxygen's quick Index  

HxRegData Class Reference

A registry value. More...

#include <HxRegData.h>

List of all members.

Public Types

enum  RvType { Int, String }
 The type of the data. More...


Public Methods

 HxRegData ()
 Constructor. More...

 HxRegData (HxString)
 Constructor. More...

 HxRegData (int)
 Constructor. More...

 HxRegData (const HxRegData &)
 Constructor. More...

 ~HxRegData ()
 Desstructor. More...

HxRegData & operator= (const HxRegData &)
 Assignment operator. More...

RvType type () const
 Get type of data. More...

void setString (HxString)
 Set string data. More...

HxString getString () const
 Get string data. More...

void setInt (int)
 Set int data. More...

int getInt () const
 Get int data. More...

HxString toString () const
 Output to string. More...

STD_OSTREAM & put (STD_OSTREAM &, int cCode=0) const
 Put on stream. More...


Detailed Description

A registry value.


Member Enumeration Documentation

enum HxRegData::RvType
 

The type of the data.

00041 { Int, String } RvType;


Constructor & Destructor Documentation

HxRegData::HxRegData   [inline]
 

Constructor.

00084 {
00085     _type = String;
00086     new((void*)&(_val._str[0])) HxPnString(HxString());
00087 }

HxRegData::HxRegData HxString    s [inline]
 

Constructor.

00091 {
00092     _type = String;
00093     new((void*)&(_val._str[0])) HxPnString(s);
00094 }

HxRegData::HxRegData int    i [inline]
 

Constructor.

00098 {
00099     _type = Int;
00100     _val._int = i;
00101 }

HxRegData::HxRegData const HxRegData &    rhs
 

Constructor.

00015 {
00016     _type = rhs._type;
00017     switch (_type) {
00018     case Int    :
00019         _val._int = rhs._val._int;
00020         break;
00021     case String :
00022         new((void*)&(_val._str[0]))
00023             HxPnString(((HxPnString*)&(rhs._val._str[0]))->toString());
00024         break;
00025     }
00026 }

HxRegData::~HxRegData   [inline]
 

Desstructor.

00105 {
00106     if (_type == String)
00107         ((HxPnString*)&(_val._str[0]))->~HxPnString();
00108 }


Member Function Documentation

HxRegData & HxRegData::operator= const HxRegData &    rhs
 

Assignment operator.

00030 {
00031     if (_type == String)
00032         ((HxPnString*)&(_val._str[0]))->~HxPnString();
00033     _type = rhs._type;
00034     switch (_type) {
00035     case Int    :
00036         _val._int = rhs._val._int;
00037         break;
00038     case String :
00039         new((void*)&(_val._str[0]))
00040             HxPnString(((HxPnString*)&(rhs._val._str[0]))->toString());
00041         break;
00042     }
00043     return *this;
00044 }

HxRegData::RvType HxRegData::type   const [inline]
 

Get type of data.

00112 {
00113     return _type;
00114 }

void HxRegData::setString HxString    s [inline]
 

Set string data.

00118 {
00119     if (_type == String)
00120         ((HxPnString*)&(_val._str[0]))->~HxPnString();
00121     new((void*)&(_val._str[0])) HxPnString(s);
00122     _type = String;
00123 }

HxString HxRegData::getString   const [inline]
 

Get string data.

00127 {
00128     return (_type == String) ?
00129                 ((HxPnString*)&(_val._str[0]))->toString() :
00130                 HxString();
00131 }

void HxRegData::setInt int    i [inline]
 

Set int data.

00135 {
00136     if (_type == String)
00137         ((HxPnString*)&(_val._str[0]))->~HxPnString();
00138     _val._int = i;
00139     _type = Int;
00140 }

int HxRegData::getInt   const [inline]
 

Get int data.

00144 {
00145     return (_type == Int) ? _val._int : 0 ;
00146 }

HxString HxRegData::toString   const
 

Output to string.

00048 {
00049     switch (_type) {
00050     case Int    :
00051         return makeString(_val._int);
00052     case String :
00053         return ((HxPnString*)&(_val._str[0]))->toString();
00054     default     :
00055         return HxString("\"") + __FILE__ + "\", line " + makeString(__LINE__)
00056             + ": Implementation error";
00057     }
00058 }

STD_OSTREAM & HxRegData::put STD_OSTREAM &    os,
int    cCode = 0
const
 

Put on stream.

00062 {
00063     HxString quote = cCode ? "\\\"" : "\"";
00064     switch (_type) {
00065     case Int    :
00066         os << _val._int;
00067         break;
00068     case String :
00069         os << quote;
00070 #ifdef HxRegData_Debug
00071         (((HxPnString*)&(_val._str[0]))->toString()).dput(os);
00072 #else
00073         os << ((HxPnString*)&(_val._str[0]))->toString();
00074 #endif
00075         os << quote;
00076         break;
00077     }
00078     return os;
00079 }


The documentation for this class was generated from the following files:
Generated on Tue Feb 3 14:19:07 2004 for C++Reference by doxygen1.2.12 written by Dimitri van Heesch, © 1997-2001