fei_Param.cpp

00001 /*--------------------------------------------------------------------*/
00002 /*    Copyright 2005 Sandia Corporation.                              */
00003 /*    Under the terms of Contract DE-AC04-94AL85000, there is a       */
00004 /*    non-exclusive license for use of this work by or on behalf      */
00005 /*    of the U.S. Government.  Export of this program may require     */
00006 /*    a license from the United States Government.                    */
00007 /*--------------------------------------------------------------------*/
00008 
00009 
00010 #include <fei_macros.hpp>
00011 
00012 #include <fei_Param.hpp>
00013 
00014 fei::Param::Param(const char* name,
00015       const char* value)
00016   : type_(STRING),
00017     name_(),
00018     string_value_(),
00019     double_value_(0.0),
00020     int_value_(0),
00021     bool_value_(false),
00022     void_value_(NULL)
00023 {
00024   if (name != 0) name_ = name;
00025   if (value != 0) string_value_ = value;
00026 }
00027 
00028 fei::Param::Param(const char* name,
00029       double value)
00030   : type_(DOUBLE),
00031     name_(),
00032     string_value_(),
00033     double_value_(value),
00034     int_value_(0),
00035     bool_value_(false),
00036     void_value_(NULL)
00037 {
00038   if (name != 0) name_ = name;
00039 }
00040 
00041 fei::Param::Param(const char* name,
00042       int value)
00043   : type_(INT),
00044     name_(),
00045     string_value_(),
00046     double_value_(0.0),
00047     int_value_(value),
00048     bool_value_(false),
00049     void_value_(NULL)
00050 {
00051   if (name != 0) name_ = name;
00052 }
00053 
00054 fei::Param::Param(const char* name,
00055       bool value)
00056   : type_(BOOL),
00057     name_(),
00058     string_value_(),
00059     double_value_(0.0),
00060     int_value_(0),
00061     bool_value_(value),
00062     void_value_(NULL)
00063 {
00064   if (name != 0) name_ = name;
00065 }
00066 
00067 fei::Param::Param(const char* name,
00068       const void* value)
00069   : type_(VOID),
00070     name_(),
00071     string_value_(),
00072     double_value_(0.0),
00073     int_value_(0),
00074     bool_value_(false),
00075     void_value_(value)
00076 {
00077   if (name != 0) name_ = name;
00078 }
00079 
00080 fei::Param::Param(const fei::Param& src)
00081   : type_(src.type_),
00082     name_(),
00083     string_value_(),
00084     double_value_(0.0),
00085     int_value_(0),
00086     void_value_(NULL)
00087 {
00088   *this = src;
00089 }
00090 
00091 fei::Param::~Param()
00092 {
00093 }
00094 
00095 fei::Param& fei::Param::operator=(const fei::Param& src)
00096 {
00097   name_ = src.name_;
00098   switch(type_) {
00099   case STRING:
00100     string_value_ = src.string_value_; break;
00101   case DOUBLE:
00102     double_value_ = src.double_value_; break;
00103   case INT:
00104     int_value_ = src.int_value_; break;
00105   case VOID:
00106     void_value_ = src.void_value_; break;
00107   case BOOL:
00108     bool_value_ = src.bool_value_; break;
00109   case BAD_TYPE:
00110     break;
00111   }
00112 
00113   return(*this);
00114 }

Generated on Tue Jul 13 09:27:45 2010 for FEI by  doxygen 1.4.7