Skip to content

Commit d284649

Browse files
author
wangwj-f
committed
网络模块为初始化时不能添加请求任务
1 parent f8293b4 commit d284649

File tree

5 files changed

+46
-1
lines changed

5 files changed

+46
-1
lines changed

.gitignore

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,19 @@ ModelManifest.xml
272272
/bin/Win32/Release/NetworkTool.exe
273273
/bin/Win32/Debug/QMultiThreadNetworkd.dll
274274
/bin/Win32/Release/QMultiThreadNetwork.dll
275+
/source/GeneratedFiles/Debug/moc_networkuploadrequest.cpp
276+
/source/GeneratedFiles/Debug/moc_networkrunnable.cpp
277+
/source/GeneratedFiles/Debug/moc_networkrequest.cpp
278+
/source/GeneratedFiles/Debug/moc_networkreply.cpp
279+
/source/GeneratedFiles/Debug/moc_networkmtdownloadrequest.cpp
280+
/source/GeneratedFiles/Debug/moc_networkmanager.cpp
281+
/source/GeneratedFiles/Debug/moc_networkdownloadrequest.cpp
282+
/source/GeneratedFiles/Debug/moc_networkcommonrequest.cpp
283+
/source/GeneratedFiles/Release/moc_networkuploadrequest.cpp
284+
/source/GeneratedFiles/Release/moc_networkrunnable.cpp
285+
/source/GeneratedFiles/Release/moc_networkrequest.cpp
286+
/source/GeneratedFiles/Release/moc_networkreply.cpp
287+
/source/GeneratedFiles/Release/moc_networkmtdownloadrequest.cpp
288+
/source/GeneratedFiles/Release/moc_networkmanager.cpp
289+
/source/GeneratedFiles/Release/moc_networkdownloadrequest.cpp
290+
/source/GeneratedFiles/Release/moc_networkcommonrequest.cpp

include/networkmanager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ That must be called in the main thread.
2020
#define NETWORKMANAGER_H
2121

2222
#include <QObject>
23+
#include <atomic>
2324
#include "networkreply.h"
2425
#include "networkdef.h"
2526
#include "network_global.h"
@@ -96,7 +97,11 @@ private Q_SLOTS:
9697
private:
9798
QScopedPointer<NetworkManagerPrivate> d_ptr;
9899
static NetworkManager* ms_pInstance;
100+
#if _MSC_VER >= 1700
101+
static std::atomic<bool> ms_bIntialized;
102+
#else
99103
static bool ms_bIntialized;
104+
#endif
100105
};
101106

102107
#endif //NETWORKMANAGER_H

samples/networktool/networktool.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -533,6 +533,7 @@ void NetworkTool::onUpload()
533533
req.strReqArg = strUploadFilePath; //本地文件路径
534534
req.bShowProgress = uiAddTask.cb_showProgress->isChecked();
535535
req.bTryAgainWhileFailed = true;
536+
req.mapRawHeader.insert("Authorization", "bearer cn-ad0c0fe1-7643-42c1-8cfa-e7dc74e05e7b");
536537

537538
NetworkReply *pReply = NetworkManager::globalInstance()->addRequest(req);
538539
if (nullptr != pReply)

source/inc/networkmanager.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ That must be called in the main thread.
2020
#define NETWORKMANAGER_H
2121

2222
#include <QObject>
23+
#include <atomic>
2324
#include "networkreply.h"
2425
#include "networkdef.h"
2526
#include "network_global.h"
@@ -96,7 +97,11 @@ private Q_SLOTS:
9697
private:
9798
QScopedPointer<NetworkManagerPrivate> d_ptr;
9899
static NetworkManager* ms_pInstance;
100+
#if _MSC_VER >= 1700
101+
static std::atomic<bool> ms_bIntialized;
102+
#else
99103
static bool ms_bIntialized;
104+
#endif
100105
};
101106

102107
#endif //NETWORKMANAGER_H

source/networkmanager.cpp

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,11 @@ bool NetworkManagerPrivate::releaseRequestThread(quint64 uiRequestId)
620620

621621
//////////////////////////////////////////////////////////////////////////
622622
NetworkManager *NetworkManager::ms_pInstance = nullptr;
623+
#if _MSC_VER >= 1700
624+
std::atomic<bool> NetworkManager::ms_bIntialized = false;
625+
#else
623626
bool NetworkManager::ms_bIntialized = false;
627+
#endif
624628

625629
NetworkManager::NetworkManager(QObject *parent)
626630
: QObject(parent)
@@ -706,6 +710,13 @@ void NetworkManager::fini()
706710

707711
NetworkReply *NetworkManager::addRequest(RequestTask& request)
708712
{
713+
if (NetworkManager::isInitialized())
714+
{
715+
qDebug() << "[QMultiThreadNetwork] You must call NetworkManager::initialize() before any request.";
716+
LOG_INFO("[QMultiThreadNetwork] You must call NetworkManager::initialize() before any request.");
717+
return nullptr;
718+
}
719+
709720
Q_D(NetworkManager);
710721
d->resetStopAllFlag();
711722

@@ -719,6 +730,13 @@ NetworkReply *NetworkManager::addRequest(RequestTask& request)
719730

720731
NetworkReply *NetworkManager::addBatchRequest(BatchRequestTask& tasks, quint64 &uiBatchId)
721732
{
733+
if (NetworkManager::isInitialized())
734+
{
735+
qDebug() << "[QMultiThreadNetwork] You must call NetworkManager::initialize() before any request.";
736+
LOG_INFO("[QMultiThreadNetwork] You must call NetworkManager::initialize() before any request.");
737+
return nullptr;
738+
}
739+
722740
Q_D(NetworkManager);
723741
d->resetStopAllFlag();
724742

@@ -840,7 +858,7 @@ void NetworkManager::updateProgress(quint64 uiId, quint64 uiBatchId, qint64 iByt
840858

841859
void NetworkManager::onRequestFinished(const RequestTask &request)
842860
{
843-
//Q_ASSERT(QThread::currentThread() == NetworkManager::globalInstance()->thread());
861+
Q_ASSERT(QThread::currentThread() == NetworkManager::globalInstance()->thread());
844862
Q_D(NetworkManager);
845863
if (d->isStopAllState())
846864
return;

0 commit comments

Comments
 (0)