GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
GpgFrontend::GpgKeyGetter Class Reference
Inheritance diagram for GpgFrontend::GpgKeyGetter:
Inheritance graph
Collaboration diagram for GpgFrontend::GpgKeyGetter:
Collaboration graph

Public Member Functions

 GpgKeyGetter (int channel=SingletonFunctionObject::GetDefaultChannel())
 Construct a new Gpg Key Getter object. More...
 
GpgKey GetKey (const std::string &id, bool use_cache=true)
 Get the Key object. More...
 
KeyListPtr GetKeys (const KeyIdArgsListPtr &ids)
 Get the Keys object. More...
 
GpgKey GetPubkey (const std::string &id, bool use_cache=true)
 Get the Pubkey object. More...
 
KeyLinkListPtr FetchKey ()
 Get all the keys by receiving a linked list. More...
 
void FlushKeyCache ()
 flush the keys in the cache More...
 
KeyListPtr GetKeysCopy (const KeyListPtr &keys)
 Get the Keys Copy object. More...
 
KeyLinkListPtr GetKeysCopy (const KeyLinkListPtr &keys)
 Get the Keys Copy object. More...
 
- Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgKeyGetter >
 SingletonFunctionObject (const SingletonFunctionObject< GpgKeyGetter > &)=delete
 prohibit copy More...
 
 SingletonFunctionObject (GpgKeyGetter &&)=delete
 Construct a new Singleton Function Object object. More...
 
 SingletonFunctionObject (const GpgKeyGetter &)=delete
 Construct a new Singleton Function Object object. More...
 
SingletonFunctionObjectoperator= (const SingletonFunctionObject< GpgKeyGetter > &)=delete
 prohibit copy More...
 
void operator= (const GpgKeyGetter &)=delete
 
int GetChannel () const
 Get the Channel object. More...
 
- Public Member Functions inherited from GpgFrontend::ChannelObject
 ChannelObject () noexcept
 Construct a new Default Channel Object object. More...
 
 ChannelObject (int channel)
 Construct a new Channel Object object. More...
 
int GetChannel () const
 Get the Channel object. More...
 
void SetChannel (int channel)
 Set the Channel object. More...
 

Private Member Functions

GpgKey get_key_in_cache (const std::string &id)
 Get the Key object. More...
 

Private Attributes

GpgContextctx_
 Get the gpgme context object. More...
 
std::mutex ctx_mutex_
 shared mutex for the keys cache More...
 
std::map< std::string, GpgKeykeys_cache_
 cache the keys with key id More...
 
std::mutex keys_cache_mutex_
 shared mutex for the keys cache More...
 

Additional Inherited Members

- Static Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgKeyGetter >
static GpgKeyGetterGetInstance (int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
 Get the Instance object. More...
 
static GpgKeyGetterCreateInstance (int channel, std::function< std::unique_ptr< ChannelObject >(void)> factory)
 Create a Instance object. More...
 
static void ReleaseChannel (int channel)
 
static int GetDefaultChannel ()
 Get the Default Channel object. More...
 
static std::vector< int > GetAllChannelId ()
 Get all the channel ids. More...
 
- Static Public Member Functions inherited from GpgFrontend::ChannelObject
static int GetDefaultChannel ()
 Get the Default Channel object. More...
 
- Protected Member Functions inherited from GpgFrontend::SingletonFunctionObject< GpgKeyGetter >
 SingletonFunctionObject ()=default
 Construct a new Singleton Function Object object. More...
 
 SingletonFunctionObject (int channel)
 Construct a new Singleton Function Object object. More...
 
virtual ~SingletonFunctionObject ()=default
 Destroy the Singleton Function Object object. More...
 

Constructor & Destructor Documentation

◆ GpgKeyGetter()

GpgFrontend::GpgKeyGetter::GpgKeyGetter ( int  channel = SingletonFunctionObject::GetDefaultChannel())
explicit

Construct a new Gpg Key Getter object.

Parameters
channelCopyright (C) 2021 Saturneric

This file is part of GpgFrontend.

GpgFrontend is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

GpgFrontend is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GpgFrontend. If not, see https://www.gnu.org/licenses/.

The initial version of the source code is inherited from the gpg4usb project, which is under GPL-3.0-or-later.

All the source code of GpgFrontend was modified and released by Saturnericeric@.nosp@m.bktu.nosp@m.s.com starting on May 12, 2021.

SPDX-License-Identifier: GPL-3.0-or-later

Member Function Documentation

◆ FetchKey()

GpgFrontend::KeyLinkListPtr GpgFrontend::GpgKeyGetter::FetchKey ( )

Get all the keys by receiving a linked list.

Returns
KeyLinkListPtr

Referenced by GpgFrontend::UI::KeyTable::Refresh().

◆ FlushKeyCache()

void GpgFrontend::GpgKeyGetter::FlushKeyCache ( )

◆ get_key_in_cache()

GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::get_key_in_cache ( const std::string &  id)
private

Get the Key object.

Parameters
id
Returns
GpgKey

◆ GetKey()

◆ GetKeys()

◆ GetKeysCopy() [1/2]

GpgFrontend::KeyLinkListPtr GpgFrontend::GpgKeyGetter::GetKeysCopy ( const KeyLinkListPtr &  keys)

Get the Keys Copy object.

Parameters
keys
Returns
KeyLinkListPtr

◆ GetKeysCopy() [2/2]

GpgFrontend::KeyListPtr GpgFrontend::GpgKeyGetter::GetKeysCopy ( const KeyListPtr &  keys)

Get the Keys Copy object.

Parameters
keys
Returns
KeyListPtr

◆ GetPubkey()

GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetPubkey ( const std::string &  id,
bool  use_cache = true 
)

Get the Pubkey object.

Parameters
fpr
Returns
GpgKey

Member Data Documentation

◆ ctx_

GpgContext& GpgFrontend::GpgKeyGetter::ctx_
private
Initial value:

Get the gpgme context object.

◆ ctx_mutex_

std::mutex GpgFrontend::GpgKeyGetter::ctx_mutex_
mutableprivate

shared mutex for the keys cache

◆ keys_cache_

std::map<std::string, GpgKey> GpgFrontend::GpgKeyGetter::keys_cache_
private

cache the keys with key id

◆ keys_cache_mutex_

std::mutex GpgFrontend::GpgKeyGetter::keys_cache_mutex_
mutableprivate

shared mutex for the keys cache


The documentation for this class was generated from the following files:
GpgFrontend::SingletonFunctionObject< GpgContext >::GetInstance
static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:181
GpgFrontend::SingletonFunctionObject::GetChannel
int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:252