Logo ROOT  
Reference Guide
 
Loading...
Searching...
No Matches
ChangeOperModeRAII Class Reference

Scope guard that temporarily changes the operation mode of one or more RooAbsArg instances.

Each call to change() records the arg's current operMode before flipping it to the requested mode (non-recursively, i.e. value clients are not touched). Destruction (or an explicit clear()) restores every recorded mode in LIFO order.

The class is movable but not copyable, so it can be returned from functions that build up a batch of changes to hand to the caller.

Definition at line 57 of file RooFitImplHelpers.h.

Public Member Functions

 ChangeOperModeRAII ()=default
 
 ChangeOperModeRAII (ChangeOperModeRAII &&)=default
 
 ChangeOperModeRAII (ChangeOperModeRAII const &)=delete
 
 ChangeOperModeRAII (RooAbsArg *arg, RooAbsArg::OperMode opMode)
 Convenience ctor: behaves like a scope guard for a single arg.
 
 ~ChangeOperModeRAII ()
 
void change (RooAbsArg *arg, RooAbsArg::OperMode opMode)
 Record arg's current operMode and flip it to opMode.
 
void clear ()
 Restore every recorded change right away, emptying this guard.
 
bool empty () const
 
ChangeOperModeRAIIoperator= (ChangeOperModeRAII &&)=default
 
ChangeOperModeRAIIoperator= (ChangeOperModeRAII const &)=delete
 

Private Attributes

std::vector< std::pair< RooAbsArg *, RooAbsArg::OperMode > > _entries
 

#include </github/home/ROOT-CI/src/roofit/roofitcore/res/RooFitImplHelpers.h>

Constructor & Destructor Documentation

◆ ChangeOperModeRAII() [1/4]

ChangeOperModeRAII::ChangeOperModeRAII ( )
default

◆ ChangeOperModeRAII() [2/4]

ChangeOperModeRAII::ChangeOperModeRAII ( RooAbsArg * arg,
RooAbsArg::OperMode opMode )
inline

Convenience ctor: behaves like a scope guard for a single arg.

Definition at line 62 of file RooFitImplHelpers.h.

◆ ~ChangeOperModeRAII()

ChangeOperModeRAII::~ChangeOperModeRAII ( )
inline

Definition at line 64 of file RooFitImplHelpers.h.

◆ ChangeOperModeRAII() [3/4]

ChangeOperModeRAII::ChangeOperModeRAII ( ChangeOperModeRAII && )
default

◆ ChangeOperModeRAII() [4/4]

ChangeOperModeRAII::ChangeOperModeRAII ( ChangeOperModeRAII const & )
delete

Member Function Documentation

◆ change()

void ChangeOperModeRAII::change ( RooAbsArg * arg,
RooAbsArg::OperMode opMode )
inline

Record arg's current operMode and flip it to opMode.

If the current mode already equals opMode, this is a no-op (nothing to restore).

Definition at line 73 of file RooFitImplHelpers.h.

◆ clear()

void ChangeOperModeRAII::clear ( )
inline

Restore every recorded change right away, emptying this guard.

Definition at line 82 of file RooFitImplHelpers.h.

◆ empty()

bool ChangeOperModeRAII::empty ( ) const
inline

Definition at line 90 of file RooFitImplHelpers.h.

◆ operator=() [1/2]

ChangeOperModeRAII & ChangeOperModeRAII::operator= ( ChangeOperModeRAII && )
default

◆ operator=() [2/2]

ChangeOperModeRAII & ChangeOperModeRAII::operator= ( ChangeOperModeRAII const & )
delete

Member Data Documentation

◆ _entries

std::vector<std::pair<RooAbsArg *, RooAbsArg::OperMode> > ChangeOperModeRAII::_entries
private

Definition at line 93 of file RooFitImplHelpers.h.

  • roofit/roofitcore/res/RooFitImplHelpers.h