Home GnuPG

Add d-pointer to Job class

Description

Add d-pointer to Job class

* src/CMakeLists.txt (qgpgme_PRIVATE_HEADERS): Add abstractimportjob_p.
* src/job.h (class Job): Add constructor. Add member d_ptr. Add member
functions d_func.
* src/job.cpp (typedef JobPrivateHash, d_func, setJobPrivate,
getJobPrivate): Remove.
(Job::Job): Add new constructor. Use new constructor as delegated
constructor for existing constructor.
(Job::~Job): Use default.
(Job::startIt, Job::startNow): Use Q_D macro instead of getJobPrivate.
(make_job_subclass_ext): Remove.
(make_job_subclass): Adapt to removal of make_job_subclass_ext.
* src/job_p.h (class JobPrivate): Add member functions q_func. Add
default constructor. Use destructor destructor. Add member q_ptr.
(setJobPrivate, getJobPrivate, jobPrivate): Remove.
* src/threadedjobmixin.h (template class ThreadedJobMixin): Add
template parameter T_private. Add new parameter to typedef mixin_type.
Add alternative constructor.
* src/abstractimportjob.cpp, src/abstractimportjob.h
(class AbstractImportJob): Add constructor overload.
* src/abstractimportjob_p.h: New.
* src/changeexpiryjob.cpp, src/decryptverifyarchivejob.cpp,
src/decryptverifyjob.cpp, src/encryptarchivejob.cpp, src/encryptjob.cpp,
src/importjob.cpp, src/listallkeysjob.cpp, src/quickjob.cpp,
src/signarchivejob.cpp, src/signencryptarchivejob.cpp,
src/signencryptjob.cpp, src/signjob.cpp, src/verifydetachedjob.cpp,
src/verifyopaquejob.cpp, src/wkdrefreshjob.cpp: Add private pointer
argument to *Job constructor. Use Q_D macro instead of jobPrivate in
all setters and getters.
* src/changeexpiryjob.h, src/decryptverifyarchivejob.h,
src/decryptverifyjob.h, src/encryptarchivejob.h, src/encryptjob.h,
src/importjob.h, src/listallkeysjob.h, src/quickjob.h,
src/signarchivejob.h, src/signencryptarchivejob.h, src/signencryptjob.h,
src/signjob.h, src/verifydetachedjob.h, src/verifyopaquejob.h,
src/wkdrefreshjob.h: Forward-declare *JobPrivate class. Add private
pointer argument to *Job constructor. Use macro for defining d_func()
member functions.
* src/changeexpiryjob_p.h, src/decryptverifyarchivejob_p.h,
src/decryptverifyjob_p.h, src/encryptarchivejob_p.h, src/encryptjob_p.h,
src/listallkeysjob_p.h, src/quickjob_p.h, src/signarchivejob_p.h,
src/signencryptarchivejob_p.h, src/signencryptjob_p.h, src/signjob_p.h,
src/verifydetachedjob_p.h, src/verifyopaquejob_p.h: Change *JobPrivate
struct to class.
* src/importjob_p.h, src/wkdrefreshjob_p.h: Change *JobPrivate struct to
class and derive from AbstractImportJobPrivate.
* src/qgpgmechangeexpiryjob.cpp, src/qgpgmedecryptverifyarchivejob.cpp,
src/qgpgmedecryptverifyjob.cpp, src/qgpgmeencryptarchivejob.cpp,
src/qgpgmeencryptjob.cpp, src/qgpgmeimportjob.cpp,
src/qgpgmelistallkeysjob.cpp, src/qgpgmequickjob.cpp,
src/qgpgmesignarchivejob.cpp, src/qgpgmesignencryptarchivejob.cpp,
src/qgpgmesignencryptjob.cpp, src/qgpgmesignjob.cpp,
src/qgpgmeverifydetachedjob.cpp, src/qgpgmeverifyopaquejob.cpp,
src/qgpgmewkdrefreshjob.cpp: (class QGpgME*JobPrivate): Remove member q.
Use macro for defining q_func() member functions. Replace constructor
with default. Use Q_Q in functions that need q.
(class QGpgME*Job): Remove setJobPrivate calls from the constructors.
* src/qgpgmechangeexpiryjob.h, src/qgpgmedecryptverifyarchivejob.h,
src/qgpgmedecryptverifyjob.h, src/qgpgmeencryptarchivejob.h,
src/qgpgmeencryptjob.h, src/qgpgmeimportjob.h,
src/qgpgmelistallkeysjob.h, src/qgpgmequickjob.h,
src/qgpgmesignarchivejob.h, src/qgpgmesignencryptarchivejob.h,
src/qgpgmesignencryptjob.h, src/qgpgmesignjob.h,
src/qgpgmeverifydetachedjob.h, src/qgpgmeverifyopaquejob.h,
src/qgpgmewkdrefreshjob.h: Forward-declare QGpgME*JobPrivate class.
(class QGpgME*Job): Specify private class as private class template
argument of the base template class. Use macro for defining d_func()
member functions.
* src/qgpgmedecryptjob.h, src/qgpgmedownloadjob.h,
src/qgpgmeexportjob.h, src/qgpgmegpgcardjob.h,
src/qgpgmeimportfromkeyserverjob.h, src/qgpgmekeyformailboxjob.h,
src/qgpgmekeygenerationjob.h, src/qgpgmekeylistjob.h,
src/qgpgmereceivekeysjob.h, src/qgpgmetofupolicyjob.h,
src/qgpgmewkdlookupjob.h, src/qgpgmewkspublishjob.h (class QGpgME*Job):
Specify void as private class template argument of the base template
class.

By adding the d-pointer (pimpl) to the Job class we can get rid of
the workaround using a global map to store the private class
belonging to a job.

Details

Provenance
ikloeckerAuthored on Thu, May 15, 4:17 PM
Parents
rGPGMEQT433e40765dfc: Explicitly define constructor and destructor of some Job classes
Branches
Unknown
Tags
Unknown