#include <vCore.h>
Public Member Functions | |
Base (int precision=1, int minsize=0, char fill='0') | |
Default constructor. | |
Base (Base const &other) | |
Copy constructor. | |
virtual | ~Base () |
virtual Base * | copy (void) const |
Returns an exact copy of this object. | |
virtual int | GetInt (void) const |
Returns an integer using the current value. | |
virtual float | GetFloat (void) const |
Returns a float using the current value. | |
virtual tString | GetString (Base const *other=0) const |
Returns a String using the current value using Output(). | |
virtual Variant | GetValue (void) const |
Returns the value in its native format. | |
template<class T> | |
T | Get () const |
void | SetPrecision (int precision) |
Sets the precision when outputting a string. | |
void | SetMinsize (int size) |
Sets the minimal width when outputting a string. | |
void | SetFill (char fill) |
Sets the fill character when outputting a string shorter than the minimal width. | |
operator int () const | |
operator float () const | |
operator tString () const | |
virtual bool | operator== (Base const &other) const |
compares two values | |
virtual bool | operator!= (Base const &other) const |
compares two values | |
virtual bool | operator>= (Base const &other) const |
compares two values | |
virtual bool | operator<= (Base const &other) const |
compares two values | |
virtual bool | operator> (Base const &other) const |
compares two values | |
virtual bool | operator< (Base const &other) const |
compares two values | |
Protected Member Functions | |
template<typename T> | |
tString | Output (T value, Base const *other=0) const |
Converts a value to a string using the settings like precision etc. | |
Private Attributes | |
int | m_precision |
The precision when returning a string. | |
int | m_minsize |
The minimum width when returning a string. | |
char | m_fill |
The fill character that's used when the contents are too small to fill m_minsize. |
Definition at line 58 of file vCore.h.
vValue::Expr::Core::Base::Base | ( | int | precision = 1 , |
|
int | minsize = 0 , |
|||
char | fill = '0' | |||
) |
Default constructor.
precision | the number of digits after the decimal to be used when outputting a string | |
minsize | the minimum width when outputting a string | |
fill | the character used to fill when outputting a string and the size of the output is smaller than minsize |
Definition at line 39 of file vCore.cpp.
Referenced by copy().
00039 : 00040 m_precision(precision), 00041 m_minsize(minsize), 00042 m_fill(fill) 00043 {}
vValue::Expr::Core::Base::Base | ( | Base const & | other | ) |
Copy constructor.
This will drop all value information of other and create a dummy- class (except if it's called from the parameter initialisation list of a derived class)
Definition at line 47 of file vCore.cpp.
00047 : 00048 m_precision(other.m_precision), 00049 m_minsize(other.m_minsize), 00050 m_fill(other.m_fill) 00051 { }
virtual vValue::Expr::Core::Base::~Base | ( | ) | [inline, virtual] |
tString vValue::Expr::Core::Base::Output | ( | T | value, | |
Base const * | other = 0 | |||
) | const [inline, protected] |
Converts a value to a string using the settings like precision etc.
Returns a string using the settings from this or another object.
This function is inline even though its size since it gets called extemely often from the derived classes.
value | the value to be converted and returned | |
other | pointer to the class that contains the settings, if it is 0 the settings will be taken from the class the function was called for |
Definition at line 103 of file vCore.h.
References m_fill, m_minsize, and m_precision.
Referenced by vValue::Expr::Bindings::Legacy::ConfItem::GetString(), vValue::Expr::Core::Number< T >::GetString(), vValue::Expr::Core::String::GetString(), and GetString().
00103 { 00104 if (other==0) other=this; 00105 std::ostringstream buf(""); 00106 buf << std::setfill(other->m_fill) << std::setw(other->m_minsize) << std::fixed << std::setprecision(other->m_precision) << value; return buf.str(); 00107 }
Base * vValue::Expr::Core::Base::copy | ( | void | ) | const [virtual] |
Returns an exact copy of this object.
This should be overwritten in any derived class or they will mysteriously vanish if you use the tValue::Set container, for example
Reimplemented in vValue::Expr::Collection::BaseExt, vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColPickOne, vValue::Expr::Collection::ColBinary, vValue::Expr::Collection::ColUnion, vValue::Expr::Collection::ColIntersection, vValue::Expr::Collection::ColDifference, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Core::UnaryOp, vValue::Expr::Core::BinaryOp, vValue::Expr::Bindings::Legacy::Callback< T >, vValue::Expr::Bindings::Legacy::ConfItem, vValue::Expr::Bindings::MathExpr, vValue::Expr::Logic::Condition, vValue::Expr::Math::Add, vValue::Expr::Math::Subtract, vValue::Expr::Math::Multiply, and vValue::Expr::Math::Divide.
Definition at line 116 of file vCore.cpp.
References Base().
Referenced by vValue::Type::Set::operator=().
00116 { 00117 return new Base(); 00118 }
int vValue::Expr::Core::Base::GetInt | ( | void | ) | const [virtual] |
Returns an integer using the current value.
This should be overwritten in a derived class if it's sensible to convert the value to an integer
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 80 of file vCore.cpp.
References GetValue().
Referenced by vValue::Expr::Logic::Condition::GetInt(), and operator int().
00080 { 00081 try { 00082 return boost::lexical_cast<int>(GetValue()); 00083 } 00084 catch(boost::bad_lexical_cast &) 00085 { 00086 return 0; 00087 } 00088 }
float vValue::Expr::Core::Base::GetFloat | ( | void | ) | const [virtual] |
Returns a float using the current value.
This should be overwritten in a derived class if it's sensible to convert the value to a floating- point number
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 93 of file vCore.cpp.
References GetValue().
Referenced by vValue::Expr::Logic::Condition::GetFloat(), operator float(), and cWidget::BarGauge::Render().
00093 { 00094 try { 00095 return boost::lexical_cast<float>(GetValue()); 00096 } 00097 catch(boost::bad_lexical_cast &) 00098 { 00099 return 0.0; 00100 } 00101 }
Returns a String using the current value using Output().
This should be overwritten in a derived class if it's sensible to convert the value to a string
Reimplemented in vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, vValue::Expr::Bindings::Legacy::ConfItem, and vValue::Expr::Logic::Condition.
Definition at line 106 of file vCore.cpp.
References GetValue(), and Output().
Referenced by vValue::Expr::Logic::Condition::GetString(), operator tString(), cWidget::NeedleGauge::RenderGraph(), cWidget::VerticalBarGauge::RenderGraph(), and cWidget::BarGauge::RenderGraph().
00106 { 00107 Variant v = GetValue(); 00108 if (tString *iptr = boost::get<tString>(&v)) 00109 return *iptr; 00110 return Output(v, other); 00111 }
Variant vValue::Expr::Core::Base::GetValue | ( | void | ) | const [virtual] |
Returns the value in its native format.
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::CFunction::fZeroary< T, F >, vValue::Expr::Bindings::CFunction::fUnary< T, Aa, F >, vValue::Expr::Bindings::CFunction::fBinary< T, Aa, Ab, F >, vValue::Expr::Bindings::Legacy::Callback< T >, vValue::Expr::Bindings::Legacy::ConfItem, vValue::Expr::Bindings::MathExpr, vValue::Expr::Logic::Condition, vValue::Expr::Math::Add, vValue::Expr::Math::Subtract, vValue::Expr::Math::Multiply, and vValue::Expr::Math::Divide.
Definition at line 72 of file vCore.cpp.
Referenced by display_cockpit_lucifer(), GetFloat(), GetInt(), GetString(), and vValue::Expr::Logic::Condition::GetValue().
00072 { 00073 //std::cerr << "WARNING: Base::GetValue called!" << std::endl; 00074 return std::string(""); 00075 }
void vValue::Expr::Core::Base::SetPrecision | ( | int | precision | ) |
Sets the precision when outputting a string.
Sets m_precision to the given value
precision | the number of digits after the decimal to be displayed |
Definition at line 55 of file vCore.cpp.
References m_precision.
Referenced by cWidget::WithDataFunctions::ProcessDataTags().
00055 { 00056 m_precision = precision; 00057 }
void vValue::Expr::Core::Base::SetMinsize | ( | int | minsize | ) |
Sets the minimal width when outputting a string.
Sets m_minsize to the given value
minsize | the minimal width of the outputted string in # of characters |
Definition at line 61 of file vCore.cpp.
References m_minsize.
Referenced by cWidget::WithDataFunctions::ProcessDataTags().
00061 { 00062 m_minsize = minsize; 00063 }
void vValue::Expr::Core::Base::SetFill | ( | char | fill | ) |
Sets the fill character when outputting a string shorter than the minimal width.
Sets m_fill to the given value
fill | the character to be used to fill |
Definition at line 67 of file vCore.cpp.
References m_fill.
Referenced by cWidget::WithDataFunctions::ProcessDataTags().
00067 { 00068 m_fill = fill; 00069 }
vValue::Expr::Core::Base::operator int | ( | ) | const [inline] |
vValue::Expr::Core::Base::operator float | ( | ) | const [inline] |
Definition at line 85 of file vCore.h.
References GetFloat().
00085 { return GetFloat(); }
vValue::Expr::Core::Base::operator tString | ( | ) | const [inline] |
Definition at line 86 of file vCore.h.
References GetString().
00086 { return GetString(); }
bool vValue::Expr::Core::Base::operator== | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 120 of file vCore.cpp.
bool vValue::Expr::Core::Base::operator!= | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 121 of file vCore.cpp.
bool vValue::Expr::Core::Base::operator>= | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 122 of file vCore.cpp.
bool vValue::Expr::Core::Base::operator<= | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 123 of file vCore.cpp.
bool vValue::Expr::Core::Base::operator> | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 124 of file vCore.cpp.
bool vValue::Expr::Core::Base::operator< | ( | Base const & | other | ) | const [virtual] |
compares two values
Reimplemented in vValue::Expr::Collection::ColNode, vValue::Expr::Collection::ColUnary, vValue::Expr::Collection::ColBinary, vValue::Expr::Core::Number< T >, vValue::Expr::Core::String, vValue::Expr::Bindings::Legacy::Callback< T >, and vValue::Expr::Logic::Condition.
Definition at line 125 of file vCore.cpp.
int vValue::Expr::Core::Base::m_precision [private] |
The precision when returning a string.
Definition at line 59 of file vCore.h.
Referenced by Output(), and SetPrecision().
int vValue::Expr::Core::Base::m_minsize [private] |
The minimum width when returning a string.
Definition at line 60 of file vCore.h.
Referenced by Output(), and SetMinsize().
char vValue::Expr::Core::Base::m_fill [private] |