Electroneum
epee::mlocked< T > Struct Template Reference

#include <mlocker.h>

Inheritance diagram for epee::mlocked< T >:
Collaboration diagram for epee::mlocked< T >:

Public Types

using type = T
 

Public Member Functions

 mlocked ()
 
 mlocked (const T &t)
 
 mlocked (const mlocked< T > &mt)
 
 mlocked (const T &&t)
 
 mlocked (const mlocked< T > &&mt)
 
mlocked< T > & operator= (const mlocked< T > &mt)
 
 ~mlocked ()
 

Detailed Description

template<class T>
struct epee::mlocked< T >

Locks memory while in scope

Primarily useful for making sure that private keys don't get swapped out

Definition at line 67 of file mlocker.h.

Member Typedef Documentation

◆ type

template<class T>
using epee::mlocked< T >::type = T

Definition at line 68 of file mlocker.h.

Constructor & Destructor Documentation

◆ mlocked() [1/5]

template<class T>
epee::mlocked< T >::mlocked ( )
inline

Definition at line 70 of file mlocker.h.

70 : T() { mlocker::lock(this, sizeof(T)); }
const uint32_t T[512]
static void lock(void *ptr, size_t len)
Definition: mlocker.cpp:126

◆ mlocked() [2/5]

template<class T>
epee::mlocked< T >::mlocked ( const T t)
inline

Definition at line 71 of file mlocker.h.

71 : T(t) { mlocker::lock(this, sizeof(T)); }
const uint32_t T[512]
static void lock(void *ptr, size_t len)
Definition: mlocker.cpp:126

◆ mlocked() [3/5]

template<class T>
epee::mlocked< T >::mlocked ( const mlocked< T > &  mt)
inline

Definition at line 72 of file mlocker.h.

72 : T(mt) { mlocker::lock(this, sizeof(T)); }
const uint32_t T[512]
static void lock(void *ptr, size_t len)
Definition: mlocker.cpp:126

◆ mlocked() [4/5]

template<class T>
epee::mlocked< T >::mlocked ( const T &&  t)
inline

Definition at line 73 of file mlocker.h.

73 : T(t) { mlocker::lock(this, sizeof(T)); }
const uint32_t T[512]
static void lock(void *ptr, size_t len)
Definition: mlocker.cpp:126

◆ mlocked() [5/5]

template<class T>
epee::mlocked< T >::mlocked ( const mlocked< T > &&  mt)
inline

Definition at line 74 of file mlocker.h.

74 : T(mt) { mlocker::lock(this, sizeof(T)); }
const uint32_t T[512]
static void lock(void *ptr, size_t len)
Definition: mlocker.cpp:126

◆ ~mlocked()

template<class T>
epee::mlocked< T >::~mlocked ( )
inline

Definition at line 76 of file mlocker.h.

76 { try { mlocker::unlock(this, sizeof(T)); } catch (...) { /* do not propagate */ } }
const uint32_t T[512]
static void unlock(void *ptr, size_t len)
Definition: mlocker.cpp:144

Member Function Documentation

◆ operator=()

template<class T>
mlocked<T>& epee::mlocked< T >::operator= ( const mlocked< T > &  mt)
inline

Definition at line 75 of file mlocker.h.

75 { T::operator=(mt); return *this; }
connection< TProtocol > & operator=(const connection< TProtocol > &obj)

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