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

Classes

class  DataObject
 DataObject to be passed to the callback function. More...
 

Public Types

using DataObjectPtr = std::shared_ptr< DataObject >
 
using TaskRunnable = std::function< int(DataObjectPtr)>
 
using TaskCallback = std::function< void(int, DataObjectPtr)>
 

Public Slots

void SlotRun ()
 

Signals

void SignalTaskRunnableEnd (int rtn)
 announce runnable finished
 
void SignalTaskEnd ()
 runnable and callabck all finished
 

Public Member Functions

 Task (std::string name=DEFAULT_TASK_NAME)
 Construct a new Task object.
 
 Task (TaskRunnable runnable, std::string name=DEFAULT_TASK_NAME, DataObjectPtr data_object=nullptr, bool sequency=true)
 Construct a new Task object. More...
 
 Task (TaskRunnable runnable, std::string name, DataObjectPtr data, TaskCallback callback=[](int, const std::shared_ptr< DataObject > &) {}, bool sequency=true)
 Construct a new Task object. More...
 
virtual ~Task () override
 Destroy the Task object.
 
virtual void Run ()
 Run - run the task.
 
std::string GetUUID () const
 
std::string GetFullID () const
 
bool GetSequency () const
 

Static Public Attributes

static const std::string DEFAULT_TASK_NAME = "default-task"
 

Protected Member Functions

void SetFinishAfterRun (bool finish_after_run)
 Set the Finish After Run object. More...
 
void SetRTN (int rtn)
 

Private Slots

void slot_task_run_callback (int rtn)
 

Private Member Functions

void init ()
 
virtual void run () override
 

Static Private Member Functions

static std::string generate_uuid ()
 

Private Attributes

const std::string uuid_
 
const std::string name_
 
const bool sequency_ = true
 must run in the same thread
 
TaskCallback callback_
 
TaskRunnable runnable_
 
bool run_callback_after_runnable_finished_ = true
 
int rtn_ = 0
 
QThread * callback_thread_ = nullptr
 
DataObjectPtr data_object_ = nullptr
 

Friends

class TaskRunner
 

Constructor & Destructor Documentation

◆ Task() [1/2]

GpgFrontend::Thread::Task::Task ( TaskRunnable  runnable,
std::string  name = DEFAULT_TASK_NAME,
DataObjectPtr  data_object = nullptr,
bool  sequency = true 
)
explicit

Construct a new Task object.

Parameters
callbackThe callback function to be executed.

◆ Task() [2/2]

GpgFrontend::Thread::Task::Task ( TaskRunnable  runnable,
std::string  name,
DataObjectPtr  data,
TaskCallback  callback = [](int, const std::shared_ptr<DataObject> &) {},
bool  sequency = true 
)
explicit

Construct a new Task object.

Parameters
runnable

References GetFullID().

Member Function Documentation

◆ generate_uuid()

std::string GpgFrontend::Thread::Task::generate_uuid ( )
staticprivate
Returns
std::string

◆ GetFullID()

std::string GpgFrontend::Thread::Task::GetFullID ( ) const
Returns
std::string

Referenced by GpgFrontend::Thread::TaskRunner::PostTask(), and Task().

◆ GetSequency()

bool GpgFrontend::Thread::Task::GetSequency ( ) const
Returns
std::string

◆ GetUUID()

std::string GpgFrontend::Thread::Task::GetUUID ( ) const
Returns
std::string

◆ SetFinishAfterRun()

void GpgFrontend::Thread::Task::SetFinishAfterRun ( bool  finish_after_run)
protected

Set the Finish After Run object.

Parameters
finish_after_run

Referenced by GpgFrontend::UI::FileReadTask::Run(), and GpgFrontend::UI::VersionCheckTask::Run().

◆ SetRTN()

void GpgFrontend::Thread::Task::SetRTN ( int  rtn)
protected
Parameters
rtn

Member Data Documentation

◆ DEFAULT_TASK_NAME

const std::string GpgFrontend::Thread::Task::DEFAULT_TASK_NAME = "default-task"
static

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.

The source code version of this software was modified and released by Saturnericeric@.nosp@m.bktu.nosp@m.s.comeric@.nosp@m.bktu.nosp@m.s.com starting on May 12, 2021.


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