Botan 3.4.0
Crypto and TLS for C&
Public Member Functions | List of all members
Botan::scoped_cleanup< FunT > Class Template Reference

Helper class to create a RAII-style cleanup callback. More...

#include <stl_util.h>

Public Member Functions

void disengage ()
 
scoped_cleanupoperator= (const scoped_cleanup &)=delete
 
scoped_cleanupoperator= (scoped_cleanup &&)=delete
 
 scoped_cleanup (const scoped_cleanup &)=delete
 
 scoped_cleanup (FunT cleanup)
 
 scoped_cleanup (scoped_cleanup &&)=delete
 
 ~scoped_cleanup ()
 

Detailed Description

template<std::invocable FunT>
class Botan::scoped_cleanup< FunT >

Helper class to create a RAII-style cleanup callback.

Ensures that the cleanup callback given in the object's constructor is called when the object is destroyed. Use this to ensure some cleanup code runs when leaving the current scope.

Definition at line 340 of file stl_util.h.

Constructor & Destructor Documentation

◆ scoped_cleanup() [1/3]

template<std::invocable FunT>
Botan::scoped_cleanup< FunT >::scoped_cleanup ( FunT cleanup)
inlineexplicit

Definition at line 342 of file stl_util.h.

342: m_cleanup(std::move(cleanup)) {}

◆ scoped_cleanup() [2/3]

template<std::invocable FunT>
Botan::scoped_cleanup< FunT >::scoped_cleanup ( const scoped_cleanup< FunT > & )
delete

◆ scoped_cleanup() [3/3]

template<std::invocable FunT>
Botan::scoped_cleanup< FunT >::scoped_cleanup ( scoped_cleanup< FunT > && )
delete

◆ ~scoped_cleanup()

template<std::invocable FunT>
Botan::scoped_cleanup< FunT >::~scoped_cleanup ( )
inline

Definition at line 349 of file stl_util.h.

349 {
350 if(m_cleanup.has_value()) {
351 m_cleanup.value()();
352 }
353 }

Member Function Documentation

◆ disengage()

template<std::invocable FunT>
void Botan::scoped_cleanup< FunT >::disengage ( )
inline

Disengage the cleanup callback, i.e., prevent it from being called

Definition at line 358 of file stl_util.h.

358{ m_cleanup.reset(); }

◆ operator=() [1/2]

template<std::invocable FunT>
scoped_cleanup & Botan::scoped_cleanup< FunT >::operator= ( const scoped_cleanup< FunT > & )
delete

◆ operator=() [2/2]

template<std::invocable FunT>
scoped_cleanup & Botan::scoped_cleanup< FunT >::operator= ( scoped_cleanup< FunT > && )
delete

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