#include <Store.h>

Collaboration diagram for Store::EntryGuard:

Public Member Functions

 EntryGuard (Entry *entry, const char *context)
 
 ~EntryGuard ()
 
 EntryGuard (EntryGuard &&)=delete
 
Entryget ()
 
void unlockAndReset (const char *resetContext=nullptr)
 

Private Member Functions

void onException () noexcept
 

Private Attributes

Entryentry_
 the guarded Entry or nil More...
 
const char * context_
 default unlock() message More...
 

Detailed Description

a smart pointer similar to std::unique_ptr<> that automatically release()s and unlock()s the guarded Entry on stack-unwinding failures

Definition at line 331 of file Store.h.

Constructor & Destructor Documentation

◆ EntryGuard() [1/2]

Store::EntryGuard::EntryGuard ( Entry entry,
const char *  context 
)
inline
Parameters
entryeither nil or a locked Entry to manage
contextdefault unlock() message

Definition at line 335 of file Store.h.

References assert.

◆ ~EntryGuard()

Store::EntryGuard::~EntryGuard ( )
inline

Definition at line 340 of file Store.h.

◆ EntryGuard() [2/2]

Store::EntryGuard::EntryGuard ( EntryGuard &&  )
delete

Member Function Documentation

◆ get()

Entry* Store::EntryGuard::get ( void  )
inline

like std::unique_ptr::get()

Returns
nil or the guarded (locked) entry

Definition at line 351 of file Store.h.

◆ onException()

void Store::EntryGuard::onException ( )
privatenoexcept

Definition at line 2171 of file store.cc.

References SWALLOW_EXCEPTIONS.

◆ unlockAndReset()

void Store::EntryGuard::unlockAndReset ( const char *  resetContext = nullptr)
inline

like std::unique_ptr::reset() stops guarding the entry unlocks the entry (which may destroy it)

Definition at line 358 of file Store.h.

Referenced by StoreEntry::setPublicKey().

Member Data Documentation

◆ context_

const char* Store::EntryGuard::context_
private

Definition at line 369 of file Store.h.

◆ entry_

Entry* Store::EntryGuard::entry_
private

Definition at line 368 of file Store.h.


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors