GpgFrontend::GpgKeyGetter Class Reference
Inheritance diagram for GpgFrontend::GpgKeyGetter:
Collaboration diagram for GpgFrontend::GpgKeyGetter:

## 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...
SingletonFunctionObject & | operator= (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

GpgContext & | ctx_
| Get the gpgme context object. More...
std::mutex | ctx_mutex_
| shared mutex for the keys cache More...
std::map< std::string, GpgKey > | keys_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 GpgKeyGetter & | GetInstance (int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
| Get the Instance object. More...
static GpgKeyGetter & | CreateInstance (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

  channel | Copyright (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 | ( |  | ) |

flush the keys in the cache

References GpgFrontend::check_gpg_error_2_err_code().

Referenced by GpgFrontend::Thread::CtxCheckTask::Run(), and GpgFrontend::UI::CommonUtils::slot_update_key_status().

## 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()

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

Get the Key object.

Parameters

  fpr |

Returns
  GpgKey

Referenced by GpgFrontend::UI::VerifyKeyDetailBox::create_key_info_grid(), GpgFrontend::UI::KeyImportDetailDialog::create_keys_table(), GpgFrontend::UI::KeyMgmt::delete_keys_with_warning(), GpgFrontend::GpgKeyOpera::DeleteKeys(), GpgFrontend::GpgDecryptResultAnalyse::print_recipient(), GpgFrontend::GpgVerifyResultAnalyse::print_signer(), GpgFrontend::UI::MainWindow::slot_copy_mail_address_to_clipboard(), GpgFrontend::UI::KeyList::slot_double_clicked(), and GpgFrontend::UI::MainWindow::slot_show_key_details().

## GetKeys()

GpgFrontend::KeyListPtr GpgFrontend::GpgKeyGetter::GetKeys | ( | const KeyIdArgsListPtr & | ids | ) |

Get the Keys object.

Parameters

  ids |

Returns
  KeyListPtr

Referenced by GpgFrontend::GpgKeyImportExporter::ExportKeys(), GpgFrontend::UI::MainWindow::slot_encrypt(), GpgFrontend::UI::MainWindow::slot_encrypt_sign(), GpgFrontend::UI::MainWindow::slot_sign(), GpgFrontend::UI::KeyUIDSignDialog::slot_sign_key(), GpgFrontend::UI::MainWindow::SlotFileEncrypt(), GpgFrontend::UI::MainWindow::SlotFileEncryptSign(), and GpgFrontend::UI::MainWindow::SlotFileSign().

## 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:
=
GpgContext::GetInstance(SingletonFunctionObject::GetChannel())

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:

- src/core/function/gpg/GpgKeyGetter.h
- src/core/function/gpg/GpgKeyGetter.cpp

GpgFrontend::SingletonFunctionObject< GpgContext >::GetInstance
static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
GpgFrontend::SingletonFunctionObject::GetChannel
int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239