GlsMenu
GlsMenuData_T< T > Class Template Reference

#include <gls_menu_data.h>

Inheritance diagram for GlsMenuData_T< T >:
GlsMenuData GlsMenuDiscrete_T< T >

Public Member Functions

 GlsMenuData_T (const std::string &name, T *data)
 
 GlsMenuData_T (const std::string &name, const T &value)
 
 GlsMenuData_T (const std::string &name)
 
virtual ~GlsMenuData_T ()
 
virtual void Attach (T *&data)
 
virtual bool ReferTo (T &data)
 
virtual bool ValueChanged ()
 
virtual void ResetValueChanged ()
 
virtual std::ostream & WriteValue (std::ostream &outstr)
 
virtual std::istream & ReadValue (std::istream &instr)
 
void SetPrecision (int outputPrecision)
 
virtual const T & Value () const
 
virtual T & Value ()
 
virtual void Value (const T &val)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
template<>
std::ostream & WriteValue (std::ostream &outstr)
 
virtual void Inc (long amount=1)
 

Protected Attributes

T * _data
 Storage for the meta-data. More...
 
_prevValue
 The previous meta-data value. More...
 
bool _prevValueValid
 Whether or not the previous value should be considered. More...
 
int _precision
 Allows for setting of precision for floating point numbers. More...
 

Detailed Description

template<class T>
class GlsMenuData_T< T >

The GlsMenuData_T provides a fully functional templatized menu meta-data type. The type T MUST have the <<, >>, =, and == operators defined. This will work for most one-line data types.

Definition at line 104 of file gls_menu_data.h.

Constructor & Destructor Documentation

template<class T>
GlsMenuData_T< T >::GlsMenuData_T ( const std::string &  name,
T *  data 
)

Class constructor. Keeps a pointer to the specified type in sync with the simulation meta-data. This will set localStorage to false.

template<class T>
GlsMenuData_T< T >::GlsMenuData_T ( const std::string &  name,
const T &  value 
)

Class constructor. Actually creates storage for the simulation meta-data and initializes the value. This will set localStorage to true.

template<class T>
GlsMenuData_T< T >::GlsMenuData_T ( const std::string &  name)

Class constructor. Actually creates storage for the simulation meta-data but will not initialize the value. This will set localStorage to true.

template<class T>
virtual GlsMenuData_T< T >::~GlsMenuData_T ( )
virtual

Class destructor.

Member Function Documentation

template<class T>
virtual void GlsMenuData_T< T >::Attach ( T *&  data)
virtual

Attaches an external pointer to the data so that dereferencing the pointer will allow access to the data item's value without performing dictionary lookups and data value retrievals.

Referenced by GlsMenuDictionary::Attach().

virtual void GlsMenuData::Inc ( long  amount = 1)
virtualinherited

Increment the data item. Derived classes must override this as the default is a no-op.

Reimplemented in GlsMenuDiscrete_T< T >.

Referenced by GlsMenuSet_T< MenuType_t, DataFactory_t >::IncData().

template<class T>
virtual std::istream& GlsMenuData_T< T >::ReadValue ( std::istream &  instr)
virtual

Reads the value from the input stream. The ReadValue call shall consume only what it needs. It is the responsibility of the calling function to read to the end of line, or to clean up from a bad read. The calling function will also ensure that the data starts as the next byte in the stream.

Reimplemented in GlsMenuLine, and GlsMenuActionGroup.

Referenced by GlsMenuDataFactory::Data< T >::Create(), and GlsMenuDataFactory::Data< T >::CreateDiscrete().

template<class T>
virtual bool GlsMenuData_T< T >::ReferTo ( T &  data)
virtual

Changes the data item to refer to and use the external variable rather than its own memory. Allows access to the data item's value without performing dictionary lookups and data value retrievals.

Referenced by GlsMenuDictionary::Refer(), and GlsMenuDictionary::ReferCopy().

template<class T>
virtual void GlsMenuData_T< T >::ResetValueChanged ( )
virtual

Sets the previous value to the current value.

template<class T>
void GlsMenuData_T< T >::SetPrecision ( int  outputPrecision)

Allows for setting of precision for floating point numbers. This is the number of digits to be shown after the decimal point.

template<class T>
virtual const T& GlsMenuData_T< T >::Value ( ) const
virtual

Returns the value of the simulation meta-data.

Referenced by GlsMenuDictionary::ReferCopy().

template<class T>
virtual T& GlsMenuData_T< T >::Value ( )
virtual

Returns a reference value of the simulation meta-data.

template<class T>
virtual void GlsMenuData_T< T >::Value ( const T &  val)
virtual

Sets the value of the simulation meta-data.

template<class T>
virtual bool GlsMenuData_T< T >::ValueChanged ( )
virtual

Determines if the value has changed since the last call to this method.

template<class T>
virtual std::ostream& GlsMenuData_T< T >::WriteValue ( std::ostream &  outstr)
virtual

Writes the value to the output stream.

Reimplemented in GlsMenuActionGroup.

template<>
std::ostream & GlsMenuData_T< float >::WriteValue ( std::ostream &  outstr)
inline

Definition at line 235 of file gls_menu_data.h.

template<>
std::ostream & GlsMenuData_T< double >::WriteValue ( std::ostream &  outstr)
inline

Definition at line 242 of file gls_menu_data.h.

Field Documentation

template<class T>
T* GlsMenuData_T< T >::_data
protected

Storage for the meta-data.

Definition at line 220 of file gls_menu_data.h.

template<class T>
int GlsMenuData_T< T >::_precision
protected

Allows for setting of precision for floating point numbers.

Definition at line 229 of file gls_menu_data.h.

template<class T>
T GlsMenuData_T< T >::_prevValue
protected

The previous meta-data value.

Definition at line 223 of file gls_menu_data.h.

template<class T>
bool GlsMenuData_T< T >::_prevValueValid
protected

Whether or not the previous value should be considered.

Definition at line 226 of file gls_menu_data.h.


The documentation for this class was generated from the following file: