4040#include < utility>
4141#include < vector>
4242
43- ThreadExecutor::ThreadExecutor (const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings, const Settings &settings, Suppressions &suppressions, ErrorLogger &errorLogger, CppCheck::ExecuteCmdFn executeCommand)
44- : Executor(files, fileSettings, settings, suppressions, errorLogger)
43+ ThreadExecutor::ThreadExecutor (const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings, const Settings &settings, Suppressions &suppressions, ErrorLogger &errorLogger, TimerResults* timerResults, CppCheck::ExecuteCmdFn executeCommand)
44+ : Executor(files, fileSettings, settings, suppressions, errorLogger, timerResults )
4545 , mExecuteCommand(std::move(executeCommand))
4646{
4747 assert (mSettings .jobs > 1 );
@@ -87,8 +87,8 @@ class SyncLogForwarder : public ErrorLogger
8787class ThreadData
8888{
8989public:
90- ThreadData (ThreadExecutor &threadExecutor, ErrorLogger &errorLogger, const Settings &settings, Suppressions& supprs, const std::list<FileWithDetails> &files, const std::list<FileSettings> &fileSettings, CppCheck::ExecuteCmdFn executeCommand)
91- : mFiles (files), mFileSettings (fileSettings), mSettings (settings), mSuppressions (supprs), mExecuteCommand (std::move(executeCommand)), logForwarder (threadExecutor, errorLogger)
90+ ThreadData (ThreadExecutor &threadExecutor, ErrorLogger &errorLogger, TimerResults *timerResults, const Settings &settings, Suppressions& supprs, const std::list<FileWithDetails> &files, const std::list<FileSettings> &fileSettings, CppCheck::ExecuteCmdFn executeCommand)
91+ : mFiles (files), mFileSettings (fileSettings), mTimerResults (timerResults), mSettings (settings), mSuppressions (supprs), mExecuteCommand (std::move(executeCommand)), mLogForwarder (threadExecutor, errorLogger)
9292 {
9393 mItNextFile = mFiles .begin ();
9494 mItNextFileSettings = mFileSettings .begin ();
@@ -119,8 +119,8 @@ class ThreadData
119119 return false ;
120120 }
121121
122- unsigned int check (ErrorLogger &errorLogger, const FileWithDetails *file, const FileSettings *fs) const {
123- CppCheck fileChecker (mSettings , mSuppressions , errorLogger , false , mExecuteCommand );
122+ unsigned int check (const FileWithDetails *file, const FileSettings *fs) {
123+ CppCheck fileChecker (mSettings , mSuppressions , mLogForwarder , mTimerResults , false , mExecuteCommand );
124124
125125 unsigned int result;
126126 if (fs) {
@@ -155,7 +155,7 @@ class ThreadData
155155 mProcessedSize += fileSize;
156156 mProcessedFiles ++;
157157 if (!mSettings .quiet )
158- logForwarder .reportStatus (mProcessedFiles , mTotalFiles , mProcessedSize , mTotalFileSize );
158+ mLogForwarder .reportStatus (mProcessedFiles , mTotalFiles , mProcessedSize , mTotalFileSize );
159159 }
160160
161161private:
@@ -170,12 +170,12 @@ class ThreadData
170170 std::size_t mTotalFileSize {};
171171
172172 std::mutex mFileSync ;
173+ TimerResults *mTimerResults ;
173174 const Settings &mSettings ;
174175 Suppressions &mSuppressions ;
175176 CppCheck::ExecuteCmdFn mExecuteCommand ;
176177
177- public:
178- SyncLogForwarder logForwarder;
178+ SyncLogForwarder mLogForwarder ;
179179};
180180
181181static unsigned int STDCALL threadProc (ThreadData *data)
@@ -187,7 +187,7 @@ static unsigned int STDCALL threadProc(ThreadData *data)
187187 std::size_t fileSize;
188188
189189 while (data->next (file, fs, fileSize)) {
190- result += data->check (data-> logForwarder , file, fs);
190+ result += data->check (file, fs);
191191
192192 data->status (fileSize);
193193 }
@@ -200,7 +200,7 @@ unsigned int ThreadExecutor::check()
200200 std::vector<std::future<unsigned int >> threadFutures;
201201 threadFutures.reserve (mSettings .jobs );
202202
203- ThreadData data (*this , mErrorLogger , mSettings , mSuppressions , mFiles , mFileSettings , mExecuteCommand );
203+ ThreadData data (*this , mErrorLogger , mTimerResults , mSettings , mSuppressions , mFiles , mFileSettings , mExecuteCommand );
204204
205205 for (unsigned int i = 0 ; i < mSettings .jobs ; ++i) {
206206 try {
@@ -216,8 +216,8 @@ unsigned int ThreadExecutor::check()
216216 return v + f.get ();
217217 });
218218
219- if (mSettings .showtime == ShowTime::SUMMARY || mSettings .showtime == ShowTime::TOP5_SUMMARY)
220- CppCheck::printTimerResults (mSettings .showtime );
219+ if (mTimerResults && ( mSettings .showtime == ShowTime::SUMMARY || mSettings .showtime == ShowTime::TOP5_SUMMARY) )
220+ mTimerResults -> showResults (mSettings .showtime );
221221
222222 return result;
223223}
0 commit comments