Ares
Public Member Functions | Private Attributes

CustomizableIdx< T, Lookuper > Class Template Reference

#include <src/Utilities/Template.h>

Inheritance diagram for CustomizableIdx< T, Lookuper >:
ValueableIdx< T, Lookuper >

List of all members.

Public Member Functions

 CustomizableIdx (T *alias=NULL)
void Bind (T *to)
void BindEx (T to)
virtual T Get () const
virtual void Set (T val)
virtual T * GetEx ()
virtual void SetEx (T *val)
void Lock ()
bool operator== (T other) const
bool operator!= (T other) const
bool operator! () const

Private Attributes

bool Customized
T * Default

template<typename T, typename Lookuper>
class CustomizableIdx< T, Lookuper >


Constructor & Destructor Documentation

template<typename T, typename Lookuper>
CustomizableIdx< T, Lookuper >::CustomizableIdx ( T *  alias = NULL) [inline]
: ValueableIdx<T, Lookuper>(T()), Customized(false), Default(alias) {};

Member Function Documentation

template<typename T, typename Lookuper>
void CustomizableIdx< T, Lookuper >::Bind ( T *  to) [inline]
                         {
                if(!this->Customized) {
                        this->Default = to;
                }
        }
template<typename T, typename Lookuper>
void CustomizableIdx< T, Lookuper >::BindEx ( to) [inline]
                          {
                if(!this->Customized) {
                        this->Value = to;
                        this->Default = &this->Value;
                }
        }
template<typename T, typename Lookuper>
virtual T CustomizableIdx< T, Lookuper >::Get ( ) const [inline, virtual]

Reimplemented from ValueableIdx< T, Lookuper >.

                              {
                return this->Customized
                 ? this->Value
                 : this->Default ? *this->Default : T()
                ;
        }
template<typename T, typename Lookuper>
virtual T* CustomizableIdx< T, Lookuper >::GetEx ( ) [inline, virtual]

Reimplemented from ValueableIdx< T, Lookuper >.

                           {
                return this->Customized
                 ? &this->Value
                 : this->Default
                ;
        }
template<typename T, typename Lookuper>
void CustomizableIdx< T, Lookuper >::Lock ( ) [inline]
                    {
                if(!this->Customized) {
                        if(this->Default) {
                                this->Value = *this->Default;
                        }
                        this->Customized = true;
                }
        }
template<typename T, typename Lookuper>
bool CustomizableIdx< T, Lookuper >::operator! ( ) const [inline]
                                 {
                return this->Get() == 0;
        };
template<typename T, typename Lookuper>
bool CustomizableIdx< T, Lookuper >::operator!= ( other) const [inline]
                                         {
                return this->Get() != other;
        };
template<typename T, typename Lookuper>
bool CustomizableIdx< T, Lookuper >::operator== ( other) const [inline]
                                         {
                return this->Get() == other;
        };
template<typename T, typename Lookuper>
virtual void CustomizableIdx< T, Lookuper >::Set ( val) [inline, virtual]

Reimplemented from ValueableIdx< T, Lookuper >.

                                {
                this->Customized = true;
                this->Value = val;
        }
template<typename T, typename Lookuper>
virtual void CustomizableIdx< T, Lookuper >::SetEx ( T *  val) [inline, virtual]

Reimplemented from ValueableIdx< T, Lookuper >.

                                   {
                this->Customized = true;
                this->Value = *val;
        }

Member Data Documentation

template<typename T, typename Lookuper>
bool CustomizableIdx< T, Lookuper >::Customized [private]
template<typename T, typename Lookuper>
T* CustomizableIdx< T, Lookuper >::Default [private]

The documentation for this class was generated from the following file:
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Defines