#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 353 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 357 of file Store.h.

References assert, entry_, and StoreEntry::locked().

◆ ~EntryGuard()

Store::EntryGuard::~EntryGuard ( )
inline

Definition at line 362 of file Store.h.

References entry_, and onException().

◆ 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 373 of file Store.h.

References entry_.

◆ onException()

void Store::EntryGuard::onException ( )
privatenoexcept

Definition at line 2087 of file store.cc.

References context_, entry_, StoreEntry::releaseRequest(), SWALLOW_EXCEPTIONS, and StoreEntry::unlock().

Referenced by ~EntryGuard().

◆ 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 380 of file Store.h.

References context_, entry_, and StoreEntry::unlock().

Referenced by StoreEntry::setPublicKey().

Member Data Documentation

◆ context_

const char* Store::EntryGuard::context_
private

Definition at line 391 of file Store.h.

Referenced by onException(), and unlockAndReset().

◆ entry_

Entry* Store::EntryGuard::entry_
private

Definition at line 390 of file Store.h.

Referenced by EntryGuard(), ~EntryGuard(), get(), onException(), and unlockAndReset().


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

 

Introduction

Documentation

Support

Miscellaneous

Web Site Translations

Mirrors