swift
|
Support for threaded based reading and parsing tasks such as data files via http, or file system and parsing (such as FSX models) More...
Public Member Functions | |
virtual | ~CThreadedReader () |
Destructor. | |
QDateTime | getUpdateTimestamp () const |
Thread safe, get update timestamp. More... | |
void | setUpdateTimestamp (const QDateTime &updateTimestamp=QDateTime::currentDateTimeUtc()) |
Thread safe, set update timestamp. More... | |
bool | updatedWithinLastMs (qint64 timeLastMs) |
Was setup read within last xx milliseconds. More... | |
bool | isMarkedAsFailed () const |
Is marked as read failed. More... | |
void | setMarkedAsFailed (bool failed) |
Set marker for read failed. More... | |
swift::misc::network::CUrlLogList | getReadLog () const |
Get the read log. More... | |
void | startReader () |
Starts the reader. More... | |
void | pauseReader () |
Pauses the reader. More... | |
void | markAsUsedInUnitTest () |
Used in unit test. More... | |
bool | hasPendingUrls () const |
Has pending URLs? More... | |
swift::misc::network::CUrlLogList | getUrlLogList () const |
Get the URL log list. More... | |
int | getNetworkReplyProgress () const |
Progress 0..100. More... | |
QPair< qint64, qint64 > | getNetworkReplyBytes () const |
Max./current bytes. | |
![]() | |
CContinuousWorker (QObject *owner, const QString &name) | |
Constructor. More... | |
void | start (QThread::Priority priority=QThread::InheritPriority) |
Starts a thread and moves the worker into it. | |
void | quit () noexcept final |
Stops the thread the next time around its event loop. The thread and the worker will then be deleted. More... | |
void | quitAndWait () noexcept final |
Calls quit() and blocks until the thread is finished. More... | |
bool | isEnabled () const |
Enabled (running)? More... | |
void | setEnabled (bool enabled) |
Enabled (running)? More... | |
void | startUpdating (int updateTimeSecs) |
Start updating (start/stop timer) More... | |
const QString & | getName () |
Name of the worker. | |
const QObject * | owner () const |
Owner of the worker. | |
![]() | |
template<typename T , typename F > | |
void | then (T *context, F functor) |
Connects to a functor or method which will be called when the task is finished. More... | |
template<typename F > | |
void | then (F functor) |
Connects to a functor which will be called when the task is finished. More... | |
bool | isFinished () const |
Returns true if the task has finished. More... | |
template<typename F > | |
void | doIfFinished (F functor) const |
Executes some code (in the caller's thread) if the task has finished. More... | |
template<typename F > | |
void | doIfNotFinished (F functor) const |
Executes some code (in the caller's thread) if the task has not finished. More... | |
template<typename F1 , typename F2 > | |
void | doIfFinishedElse (F1 ifFunctor, F2 elseFunctor) const |
Executes some code (in the caller's thread) if the task has finished and some different code if it has not finished. More... | |
void | waitForFinished () noexcept |
Blocks until the task is finished. More... | |
void | abandon () noexcept |
Notify the task that its result is no longer needed, so it can finish early. More... | |
void | abandonAndWait () noexcept |
Convenience to call abandon() followed by waitForFinished(). | |
Static Public Member Functions | |
static const QStringList & | getLogCategories () |
Log categories. | |
![]() | |
static const QStringList & | getLogCategories () |
Log categories. | |
static const QSet< CWorkerBase * > & | allWorkers () |
All workers currently existing. | |
Protected Member Functions | |
CThreadedReader (QObject *owner, const QString &name) | |
Constructor. | |
qint64 | lastModifiedMsSinceEpoch (QNetworkReply *nwReply) const |
When was reply last modified, -1 if N/A. | |
void | threadAssertCheck () const |
Make sure everthing runs correctly in own thread. | |
bool | didContentChange (const QString &content, int startPosition=-1) |
Stores new content hash and returns if content changed (based on hash value. More... | |
void | setInitialAndPeriodicTime (int initialTime, int periodicTime) |
Set initial and periodic times. | |
virtual void | doWorkImpl () |
This method does the actual work in the derived class. | |
bool | doWorkCheck () const |
Still enabled etc.? More... | |
QNetworkReply * | getFromNetworkAndLog (const swift::misc::network::CUrl &url, const swift::misc::CSlot< void(QNetworkReply *)> &callback) |
Get request from network, and log with m_urlReadLog. More... | |
virtual void | networkReplyProgress (int logId, qint64 current, qint64 max, const QUrl &url) |
Network request progress. | |
void | logNetworkReplyReceived (QNetworkReply *reply) |
Network reply received, mark in m_urlReadLog. More... | |
![]() | |
virtual void | initialize () |
Called when the thread is started. | |
virtual void | cleanup () |
Called when the thread is finished. | |
virtual void | beforeQuit () noexcept |
Called before quit is called. More... | |
virtual unsigned long | waitTimeoutMs () const |
Wait time for quitAndWait, 0 means not waiting. | |
void | stopUpdateTimer () |
Safely stop update time. | |
![]() | |
CWorkerBase () | |
Constructor. | |
~CWorkerBase () | |
Destructor. | |
bool | isAbandoned () const |
For the task to check whether it can finish early. More... | |
bool | hasStarted () const |
True if the worker has started. | |
void | setStarted () |
Mark the task as started. | |
void | setFinished () |
Mark the task as finished. | |
Static Protected Member Functions | |
static void | logInconsistentData (const swift::misc::CStatusMessage &msg, const char *funcInfo=nullptr) |
Use this to log inconsistent data. More... | |
Protected Attributes | |
QReadWriteLock | m_lock |
lock which can be used from the derived classes More... | |
std::atomic_int | m_networkReplyProgress |
Progress percentage 0...100. | |
std::atomic_llong | m_networkReplyCurrent |
current bytes | |
std::atomic_llong | m_networkReplyNax |
max bytes | |
![]() | |
QTimer | m_updateTimer { this } |
timer which can be used by implementing classes | |
Additional Inherited Members | |
![]() | |
void | aboutToStart () |
Emitted when the task is about to start. | |
void | finished () |
Emitted when the task is finished. More... | |
Support for threaded based reading and parsing tasks such as data files via http, or file system and parsing (such as FSX models)
Definition at line 31 of file threadedreader.h.
|
protected |
Stores new content hash and returns if content changed (based on hash value.
Definition at line 84 of file threadedreader.cpp.
|
protected |
Still enabled etc.?
Definition at line 140 of file threadedreader.cpp.
|
protected |
Get request from network, and log with m_urlReadLog.
Definition at line 152 of file threadedreader.cpp.
|
inline |
Progress 0..100.
Definition at line 90 of file threadedreader.h.
CUrlLogList swift::core::CThreadedReader::getReadLog | ( | ) | const |
Get the read log.
Definition at line 104 of file threadedreader.cpp.
QDateTime swift::core::CThreadedReader::getUpdateTimestamp | ( | ) | const |
Thread safe, get update timestamp.
Definition at line 44 of file threadedreader.cpp.
CUrlLogList swift::core::CThreadedReader::getUrlLogList | ( | ) | const |
Get the URL log list.
Definition at line 78 of file threadedreader.cpp.
bool swift::core::CThreadedReader::hasPendingUrls | ( | ) | const |
Has pending URLs?
Definition at line 72 of file threadedreader.cpp.
bool swift::core::CThreadedReader::isMarkedAsFailed | ( | ) | const |
Is marked as read failed.
Definition at line 100 of file threadedreader.cpp.
|
staticprotected |
Use this to log inconsistent data.
Definition at line 194 of file threadedreader.cpp.
|
protected |
Network reply received, mark in m_urlReadLog.
Definition at line 187 of file threadedreader.cpp.
|
inline |
Used in unit test.
Definition at line 78 of file threadedreader.h.
void swift::core::CThreadedReader::pauseReader | ( | ) |
Pauses the reader.
Definition at line 70 of file threadedreader.cpp.
void swift::core::CThreadedReader::setMarkedAsFailed | ( | bool | failed | ) |
Set marker for read failed.
Definition at line 102 of file threadedreader.cpp.
void swift::core::CThreadedReader::setUpdateTimestamp | ( | const QDateTime & | updateTimestamp = QDateTime::currentDateTimeUtc() | ) |
Thread safe, set update timestamp.
Definition at line 50 of file threadedreader.cpp.
void swift::core::CThreadedReader::startReader | ( | ) |
Starts the reader.
Definition at line 64 of file threadedreader.cpp.
bool swift::core::CThreadedReader::updatedWithinLastMs | ( | qint64 | timeLastMs | ) |
Was setup read within last xx milliseconds.
Definition at line 56 of file threadedreader.cpp.
|
mutableprotected |
lock which can be used from the derived classes
Definition at line 96 of file threadedreader.h.