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

Public Member Functions

 CacheManager (int channel=SingletonFunctionObject::GetDefaultChannel())
 
void SaveCache (std::string key, const nlohmann::json &value, bool flush=false)
 
nlohmann::json LoadCache (std::string key)
 
nlohmann::json LoadCache (std::string key, nlohmann::json default_value)
 
- Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< CacheManager >
 SingletonFunctionObject (const SingletonFunctionObject< CacheManager > &)=delete
 prohibit copy
 
 SingletonFunctionObject (CacheManager &&)=delete
 Construct a new Singleton Function Object object.
 
 SingletonFunctionObject (const CacheManager &)=delete
 Construct a new Singleton Function Object object.
 
SingletonFunctionObjectoperator= (const SingletonFunctionObject< CacheManager > &)=delete
 prohibit copy More...
 
void operator= (const CacheManager &)=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.
 
 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

std::string get_data_object_key (std::string key)
 
nlohmann::json load_cache_storage (std::string key, nlohmann::json default_value)
 
void load_all_cache_storage ()
 
void flush_cache_storage ()
 
void register_cache_key (std::string key)
 

Private Attributes

ThreadSafeMap< std::string, nlohmann::json > cache_storage_
 
nlohmann::json key_storage_
 
QTimer * m_timer_
 
const std::string drk_key_ = "__cache_manage_data_register_key_list"
 

Additional Inherited Members

- Static Public Member Functions inherited from GpgFrontend::SingletonFunctionObject< CacheManager >
static CacheManagerGetInstance (int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
 Get the Instance object. More...
 
static CacheManagerCreateInstance (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< CacheManager >
 SingletonFunctionObject ()=default
 Construct a new Singleton Function Object object.
 
 SingletonFunctionObject (int channel)
 Construct a new Singleton Function Object object. More...
 
virtual ~SingletonFunctionObject ()=default
 Destroy the Singleton Function Object object.
 

Constructor & Destructor Documentation

◆ CacheManager()

GpgFrontend::CacheManager::CacheManager ( int  channel = SingletonFunctionObject::GetDefaultChannel())

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


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