Kea 2.5.8
isc::util::StagedValue< ValueType > Class Template Reference

This class implements set/commit mechanism for a single object. More...

#include <staged_value.h>

+ Inheritance diagram for isc::util::StagedValue< ValueType >:

Public Member Functions

 StagedValue ()
 Constructor.
 
void commit ()
 Commits a value.
 
const ValueType & getValue () const
 Retrieves current value.
 
 operator const ValueType & () const
 Conversion operator to value type.
 
StagedValueoperator= (const ValueType &value)
 Assignment operator.
 
void reset ()
 Resets value to defaults.
 
void revert ()
 Reverts any modifications since last commit.
 
void setValue (const ValueType &new_value)
 Sets new value.
 

Detailed Description

template<typename ValueType>
class isc::util::StagedValue< ValueType >

This class implements set/commit mechanism for a single object.

In some cases it is desired to set value for an object while keeping ability to revert to an original value under certain conditions. This is often desired for objects holding some part of application's configuration. Configuration is usually a multi-step process and may fail on almost any stage. If this happens, the last good configuration should be used. This implies that some of the state of some of the objects needs to be reverted.

This class implements a mechanism for setting and committing a value. Until the new value has been committed it is possible to revert to an original value.

Template Parameters
ValueTypeType of the value represented by this class.

Definition at line 32 of file staged_value.h.

Constructor & Destructor Documentation

◆ StagedValue()

template<typename ValueType >
isc::util::StagedValue< ValueType >::StagedValue ( )
inline

Constructor.

Initializes the default value.

Definition at line 38 of file staged_value.h.

Member Function Documentation

◆ commit()

template<typename ValueType >
void isc::util::StagedValue< ValueType >::commit ( )
inline

Commits a value.

Definition at line 61 of file staged_value.h.

References isc::util::StagedValue< ValueType >::revert().

+ Here is the call graph for this function:

◆ getValue()

template<typename ValueType >
const ValueType & isc::util::StagedValue< ValueType >::getValue ( ) const
inline

Retrieves current value.

If the value hasn't been modified since last commit, reset or revert operation, a committed value is returned. If the value has been modified, the modified value is returned.

Definition at line 48 of file staged_value.h.

Referenced by isc::util::StagedValue< isc::dhcp::OptionDefSpaceContainer >::operator const isc::dhcp::OptionDefSpaceContainer &().

◆ operator const ValueType &()

template<typename ValueType >
isc::util::StagedValue< ValueType >::operator const ValueType & ( ) const
inline

Conversion operator to value type.

Returns
Reference to value represented by this object.

Definition at line 93 of file staged_value.h.

◆ operator=()

template<typename ValueType >
StagedValue & isc::util::StagedValue< ValueType >::operator= ( const ValueType &  value)
inline

Assignment operator.

Parameters
valueNew value to be assigned.
Returns
Reference to this.

Definition at line 85 of file staged_value.h.

References isc::util::StagedValue< ValueType >::setValue().

+ Here is the call graph for this function:

◆ reset()

template<typename ValueType >
void isc::util::StagedValue< ValueType >::reset ( )
inline

Resets value to defaults.

Definition at line 70 of file staged_value.h.

References isc::util::StagedValue< ValueType >::revert().

+ Here is the call graph for this function:

◆ revert()

template<typename ValueType >
void isc::util::StagedValue< ValueType >::revert ( )
inline

Reverts any modifications since last commit.

Definition at line 76 of file staged_value.h.

Referenced by isc::util::StagedValue< ValueType >::commit(), and isc::util::StagedValue< ValueType >::reset().

◆ setValue()

template<typename ValueType >
void isc::util::StagedValue< ValueType >::setValue ( const ValueType &  new_value)
inline

Sets new value.

Parameters
new_valueNew value to be assigned.

Definition at line 55 of file staged_value.h.

Referenced by isc::util::StagedValue< ValueType >::operator=().


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