| # Gaudi Framework, version v22r4 |

Home |  | Generated: Fri Sep 2 2011

Public Types | Public Member Functions | Protected Member Functions | Private Attributes

# PropertyWithValue< TYPE > Class Template Reference

Helper intermediate class which represent partly implemented property with value of concrete type. More...

`#include <Property.h>`

Inheritance diagram for PropertyWithValue< TYPE >:
[legend]
Collaboration diagram for PropertyWithValue< TYPE >:
[legend]

List of all members.

## Public Types
typedef Gaudi::Utils::PropertyTypeTraits < TYPE > | Traits
| the type-traits for properties
typedef Traits::PVal | PVal
| the actual storage type
## Public Member Functions
| operator const TYPE & () const
| implicit conversion to the type
const TYPE & | value () const
| explicit conversion
virtual bool | setValue (const TYPE &value)=0
| NB: abstract : to be implemented when verifier is available.
virtual bool | assign (const Property &source)
| get the value from another property
virtual bool | load (Property &dest) const
| set value for another property
virtual StatusCode | fromString (const std::string &s)
| string -> value
virtual std::string | toString () const
| value -> string
virtual void | toStream (std::ostream &out) const
| value -> stream
## Protected Member Functions
| PropertyWithValue (const std::string &name, PVal value, const bool owner)
| the constructor with property name and value
| PropertyWithValue (const PropertyWithValue &rhs)
| copy constructor (don't let the compiler generate a buggy one)
template<class OTHER >
| PropertyWithValue (const PropertyWithValue< OTHER > &right)
| copy constructor from any other type
virtual | ~PropertyWithValue ()
| virtual destructor
PropertyWithValue & | operator= (const TYPE &value)
| assignment operator
PropertyWithValue & | operator= (const PropertyWithValue &rhs)
template<class OTHER >
PropertyWithValue & | operator= (const PropertyWithValue< OTHER > &right)
void | i_set (const TYPE &value)
| set the value
PVal | i_get () const
| get the value
## Private Attributes
PVal | m_value
| the actual property value
bool | m_own
| owner of the storage

## Detailed Description

### template<class TYPE>
class PropertyWithValue< TYPE >

Helper intermediate class which represent partly implemented property with value of concrete type.

Author:
  Vanya BELYAEV ibelyaev@physics.syr.edu

Date:
  2006-02-27

Definition at line 147 of file Property.h.

## Member Typedef Documentation

template<class TYPE>

typedef Traits::PVal PropertyWithValue< TYPE >::PVal

the actual storage type

Definition at line 154 of file Property.h.

template<class TYPE>

typedef Gaudi::Utils::PropertyTypeTraits<TYPE> PropertyWithValue< TYPE >::Traits

the type-traits for properties

Reimplemented in SimpleProperty< TYPE, VERIFIER >, SimpleProperty< double >, SimpleProperty< std::string >, SimpleProperty< std::vector< std::string > >, SimpleProperty< int >, SimpleProperty< unsigned int >, and SimpleProperty< bool >.

Definition at line 152 of file Property.h.

## Constructor & Destructor Documentation

template<class TYPE >

PropertyWithValue< TYPE >::PropertyWithValue | ( | const std::string & | name,
|  | PVal | value,
|  | const bool | owner
| ) |  | `[inline, protected]`

the constructor with property name and value

Definition at line 225 of file Property.h.

      : Property ( typeid( TYPE ) , name )
      , m_value  ( value )
      , m_own    ( own   )
    {}

template<class TYPE >

PropertyWithValue< TYPE >::PropertyWithValue | ( | const PropertyWithValue< TYPE > & | rhs ) | `[inline, protected]`

copy constructor (don't let the compiler generate a buggy one)

Definition at line 237 of file Property.h.

      : Property( right         )
      , m_value ( right.m_value )
      , m_own   ( right.m_own   )
    {
      m_value = Traits::copy ( right.value() , m_own ) ;
    }

template<class TYPE >
template<class OTHER >

PropertyWithValue< TYPE >::PropertyWithValue | ( | const PropertyWithValue< OTHER > & | right ) | `[inline, protected]`

copy constructor from any other type

Definition at line 250 of file Property.h.

      : Property( right         )
      , m_value ( right.m_value )
      , m_own   ( right.m_own   )
    {
      m_value = Traits::copy ( right.value() , m_own ) ;
    }

template<class TYPE >

PropertyWithValue< TYPE >::~PropertyWithValue | ( | ) | `[inline, protected, virtual]`

virtual destructor

Definition at line 261 of file Property.h.

    {
      Traits::dele ( m_value , m_own ) ;
      m_value = 0 ;
    }

## Member Function Documentation

template<class TYPE >

bool PropertyWithValue< TYPE >::assign | ( | const Property & | source ) | `[inline, virtual]`

get the value from another property

implementation of Property::assign

Implements Property.

Definition at line 282 of file Property.h.

    {
      // 1) Is the property of "the same" type?
      const PropertyWithValue<TYPE>* p =
        dynamic_cast<const PropertyWithValue<TYPE>*>       ( &source ) ;
      if ( 0 != p ) { return setValue ( p->value() ) ; }       // RETURN
      // 2) Else use the string representation
      return this->fromString( source.toString() ).isSuccess() ;
    }

template<class TYPE >

StatusCode PropertyWithValue< TYPE >::fromString | ( | const std::string & | s ) | `[inline, virtual]`

string -> value

Implementation of PropertyWithValue::fromString.

Implements Property.

Definition at line 326 of file Property.h.

    {
      TYPE tmp ;
      StatusCode sc = Gaudi::Parsers::parse ( tmp , source ) ;
      if ( sc.isFailure() ) { return sc ; }
      return setValue ( tmp ) ? StatusCode::SUCCESS : StatusCode::FAILURE ;
    }

template<class TYPE>

PVal PropertyWithValue< TYPE >::i_get | ( | ) | const`[inline, protected]`

get the value

Definition at line 207 of file Property.h.

                                  {
        return m_value;
      }

template<class TYPE>

void PropertyWithValue< TYPE >::i_set | ( | const TYPE & | value ) | `[inline, protected]`

set the value

Definition at line 203 of file Property.h.

                                               {
        Traits::assign(*m_value, value);
      }

template<class TYPE >

bool PropertyWithValue< TYPE >::load | ( | Property & | dest ) | const`[inline, virtual]`

set value for another property

implementation of Property::load

Implements Property.

Definition at line 296 of file Property.h.

    {
      // delegate to the 'opposite' method ;
      return dest.assign( *this ) ;
    }

template<class TYPE>

PropertyWithValue< TYPE >::operator const TYPE & | ( | ) | const`[inline]`

implicit conversion to the type

Definition at line 181 of file Property.h.

    { return value() ;}

template<class TYPE>

PropertyWithValue< TYPE > & PropertyWithValue< TYPE >::operator= | ( | const TYPE & | value ) | `[inline, protected]`

assignment operator

Reimplemented in PropertyWithVerifier< TYPE, VERIFIER >, SimpleProperty< TYPE, VERIFIER >, SimplePropertyRef< TYPE, VERIFIER >, PropertyWithVerifier< std::string, BoundedVerifier< std::string > >, PropertyWithVerifier< unsigned int, BoundedVerifier< unsigned int > >, PropertyWithVerifier< int, BoundedVerifier< int > >, PropertyWithVerifier< double, BoundedVerifier< double > >, PropertyWithVerifier< std::vector< std::string >, BoundedVerifier< std::vector< std::string > > >, and PropertyWithVerifier< bool, BoundedVerifier< bool > >.

Definition at line 271 of file Property.h.

    {
      if ( !setValue ( value ) )
      { throw std::out_of_range( "Value not verified" ) ; }
      return *this ;
    }

template<class TYPE>

PropertyWithValue< TYPE > & PropertyWithValue< TYPE >::operator= | ( | const PropertyWithValue< TYPE > & | rhs ) | `[protected]`

Definition at line 361 of file Property.h.

    {
      // assign the base class
      Property::operator=( right ) ;
      // assign the value
      PropertyWithValue<TYPE>::operator=( right.value() ) ;
      return *this ;
    }

template<class TYPE >
template<class OTHER >

PropertyWithValue< TYPE > & PropertyWithValue< TYPE >::operator= | ( | const PropertyWithValue< OTHER > & | right ) | `[protected]`

Reimplemented in PropertyWithVerifier< TYPE, VERIFIER >, SimpleProperty< TYPE, VERIFIER >, SimplePropertyRef< TYPE, VERIFIER >, PropertyWithVerifier< std::string, BoundedVerifier< std::string > >, PropertyWithVerifier< unsigned int, BoundedVerifier< unsigned int > >, PropertyWithVerifier< int, BoundedVerifier< int > >, PropertyWithVerifier< double, BoundedVerifier< double > >, PropertyWithVerifier< std::vector< std::string >, BoundedVerifier< std::vector< std::string > > >, PropertyWithVerifier< bool, BoundedVerifier< bool > >, SimpleProperty< double >, SimpleProperty< std::string >, SimpleProperty< std::vector< std::string > >, SimpleProperty< int >, SimpleProperty< unsigned int >, and SimpleProperty< bool >.

Definition at line 375 of file Property.h.

    {
      // assign the base class
      Property::operator=( right ) ;
      // assign the value
      PropertyWithValue<TYPE>::operator=( right.value() ) ;
      return *this ;
    }

template<class TYPE>

virtual bool PropertyWithValue< TYPE >::setValue | ( | const TYPE & | value ) | `[pure virtual]`

NB: abstract : to be implemented when verifier is available.

Implemented in PropertyWithVerifier< TYPE, VERIFIER >, PropertyWithVerifier< std::string, BoundedVerifier< std::string > >, PropertyWithVerifier< unsigned int, BoundedVerifier< unsigned int > >, PropertyWithVerifier< int, BoundedVerifier< int > >, PropertyWithVerifier< double, BoundedVerifier< double > >, PropertyWithVerifier< std::vector< std::string >, BoundedVerifier< std::vector< std::string > > >, and PropertyWithVerifier< bool, BoundedVerifier< bool > >.

template<class TYPE >

void PropertyWithValue< TYPE >::toStream | ( | std::ostream & | out ) | const`[inline, virtual]`

value -> stream

Implementation of PropertyWithValue::toStream.

Implements Property.

Definition at line 316 of file Property.h.

    {
      useReadHandler();
      Gaudi::Utils::toStream( *m_value, out ) ;
    }

template<class TYPE >

std::string PropertyWithValue< TYPE >::toString | ( | ) | const`[inline, virtual]`

value -> string

Implementation of PropertyWithValue::toString.

Implements Property.

Definition at line 306 of file Property.h.

    {
      useReadHandler();
      return Gaudi::Utils::toString( *m_value ) ;
    }

template<class TYPE >

const TYPE & PropertyWithValue< TYPE >::value | ( | ) | const`[inline]`

explicit conversion

get the access to the storage

Definition at line 354 of file Property.h.

    { useReadHandler() ; return *m_value ; }

## Member Data Documentation

template<class TYPE>

bool PropertyWithValue< TYPE >::m_own`[private]`

owner of the storage

Definition at line 216 of file Property.h.

template<class TYPE>

PVal PropertyWithValue< TYPE >::m_value`[private]`

the actual property value

Definition at line 214 of file Property.h.

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

- /afs/cern.ch/sw/Gaudi/releases/GAUDI/GAUDI_v22r4/GaudiKernel/GaudiKernel/Property.h

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines