digiKam Developer Documentation
Professional Photo Management with the Power of Open Source
Loading...
Searching...
No Matches
Digikam::AutotagsPipelineBase Class Reference
Inheritance diagram for Digikam::AutotagsPipelineBase:

Public Member Functions

 AutotagsPipelineBase (const AutotagsScanSettings &_settings)
virtual void bqmSendOne (std::unique_ptr< DMetadata > &_bqmMeta, const ItemInfo &info, const QUrl &outputUrl, const DImg &image)
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const DImg &_thumbnail) override
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const QIcon &_thumbnail) override
virtual void notify (MLPipelineNotification notification, const QString &_name, const QString &_path, const QString &_displayData, int _processed, const QImage &_thumbnail) override
virtual bool start () override
Public Member Functions inherited from Digikam::MLPipelineFoundation
virtual void cancel ()
bool hasFinished () const

Protected Member Functions

bool enqueue (MLPipelineQueue *thisQueue, MLPipelinePackageFoundation *package) override
Protected Member Functions inherited from Digikam::MLPipelineFoundation
virtual void addMoreWorkers ()=0
bool addWorker (const MLPipelineStage &stage)
bool checkMoreWorkers (int totalItemCount, int currentItemCount, bool useFullCpu)
virtual bool classifier ()=0
void clearAllQueues ()
virtual MLPipelinePackageFoundation * dequeue (MLPipelineQueue *thisQueue)
void emitSignalUpdateItemCount (const qlonglong itemCount)
 Helper methods to perform signal emitting through the MLPIPELINE_FINDER_END mocro with the moc processor.
virtual bool extractor ()=0
virtual bool finder ()=0
virtual bool loader ()=0
void pipelinePerformanceEnd (const MLPipelineStage &stage, int totalItemCount, QElapsedTimer &timer)
void pipelinePerformanceEnd (const MLPipelineStage &stage, QElapsedTimer &timer)
void pipelinePerformanceStart (const MLPipelineStage &stage, QElapsedTimer &timer)
 Methods to profile the Pipeline performance.
MLPipelinePackageFoundation * queueEndSignal () const
 Queue helper functions.
void showPipelinePerformance () const
void stageEnd (MLPipelineStage thisStage, MLPipelineStage nextStage)
void stageStart (QThread::Priority threadPriority, MLPipelineStage thisStage, MLPipelineStage nextStage, MLPipelineQueue *&thisQueue, MLPipelineQueue *&nextQueue)
virtual bool trainer ()=0
void waitForStart ()
virtual bool writer ()=0

Protected Attributes

const QList< AlbumRootInfo > albumRoots
AutotagsClassifierBase * autotagsClassifier = nullptr
std::unique_ptr< DMetadata > bqmMeta
QUrl bqmOutputUrl
QSemaphore bqmSemaphore
DNNModelNet * model = nullptr
AutotagsScanSettings settings
Protected Attributes inherited from Digikam::MLPipelineFoundation
bool cancelled = false
QAtomicInteger< int > itemsProcessed = 0
quint64 maxBufferSize = 2147483648
 2 GB default
QIcon missingIcon = QIcon::fromTheme(QLatin1String("image-missing"))
QMutex mutex
QMap< MLPipelineStage, MLPipelinePerformanceProfile > performanceProfileList
QElapsedTimer pipelineTimer
QMap< MLPipelineStage, MLPipelineQueue * > queues
QThreadPool * threadPool = nullptr
QMutex threadStageMutex
const int throttledQueueDepth = 1
QAtomicInteger< int > totalItemCount = 0
quint64 usedBufferSize = 0
QList< QFutureWatcher< bool > * > watchList

Additional Inherited Members

Public Types inherited from Digikam::MLPipelineFoundation
enum  MLPipelineNotification { notifySkipped , notifyProcessed }
typedef struct Digikam::MLPipelineFoundation::_MLPipelinePerformanceProfile MLPipelinePerformanceProfile
typedef SharedQueue< MLPipelinePackageFoundation * > MLPipelineQueue
enum  MLPipelineStage {
  Finder , Loader , Extractor , Classifier ,
  Trainer , Writer , None
}
Signals inherited from Digikam::MLPipelineFoundation
void finished ()
 Emitted when the last package has finished processing.
void processed (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one package has finished processing.
void processing (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one package begins processing.
void progressValueChanged (float progress)
void scheduled ()
 Emitted when processing is scheduled.
void signalAddMoreWorkers ()
void signalUpdateItemCount (const qlonglong itemCount)
void skipped (const MLPipelinePackageNotify::Ptr &package)
 Emitted when one or several packages were skipped, usually because they have already been scanned.
void started (const QString &message)
 Emitted when processing has started.

Member Function Documentation

◆ enqueue()

bool Digikam::AutotagsPipelineBase::enqueue ( MLPipelineQueue * thisQueue,
MLPipelinePackageFoundation * package )
overrideprotectedvirtual

Reimplemented from Digikam::MLPipelineFoundation.

◆ notify() [1/3]

void Digikam::AutotagsPipelineBase::notify ( MLPipelineNotification notification,
const QString & _name,
const QString & _path,
const QString & _displayData,
int _processed,
const DImg & _thumbnail )
overridevirtual

Reimplemented from Digikam::MLPipelineFoundation.

◆ notify() [2/3]

void Digikam::AutotagsPipelineBase::notify ( MLPipelineNotification notification,
const QString & _name,
const QString & _path,
const QString & _displayData,
int _processed,
const QIcon & _thumbnail )
overridevirtual

Reimplemented from Digikam::MLPipelineFoundation.

◆ notify() [3/3]

void Digikam::AutotagsPipelineBase::notify ( MLPipelineNotification notification,
const QString & _name,
const QString & _path,
const QString & _displayData,
int _processed,
const QImage & _thumbnail )
overridevirtual

Reimplemented from Digikam::MLPipelineFoundation.

◆ start()

bool Digikam::AutotagsPipelineBase::start ( )
overridevirtual

Reimplemented from Digikam::MLPipelineFoundation.