Implement GetBytesReceived() in base class

This commit is contained in:
Tobias Taschner
2018-11-02 21:37:45 +01:00
parent ab544da1d2
commit f04094e4ec
4 changed files with 21 additions and 12 deletions

View File

@@ -79,8 +79,6 @@ public:
wxFileOffset GetBytesExpectedToSend() const wxOVERRIDE { return m_dataSize; } wxFileOffset GetBytesExpectedToSend() const wxOVERRIDE { return m_dataSize; }
wxFileOffset GetBytesReceived() const wxOVERRIDE { return m_bytesReceived; }
void HandleCallback(DWORD dwInternetStatus, LPVOID lpvStatusInformation, void HandleCallback(DWORD dwInternetStatus, LPVOID lpvStatusInformation,
DWORD dwStatusInformationLength); DWORD dwStatusInformationLength);
@@ -94,7 +92,6 @@ private:
wxScopedPtr<wxWebAuthChallengeWinHTTP> m_authChallenge; wxScopedPtr<wxWebAuthChallengeWinHTTP> m_authChallenge;
wxMemoryBuffer m_dataWriteBuffer; wxMemoryBuffer m_dataWriteBuffer;
wxFileOffset m_dataWritten; wxFileOffset m_dataWritten;
wxFileOffset m_bytesReceived;
void SendRequest(); void SendRequest();
@@ -105,7 +102,6 @@ private:
void SetFailedWithLastError(); void SetFailedWithLastError();
friend class wxWebAuthChallengeWinHTTP; friend class wxWebAuthChallengeWinHTTP;
friend class wxWebResponseWinHTTP;
wxDECLARE_NO_COPY_CLASS(wxWebRequestWinHTTP); wxDECLARE_NO_COPY_CLASS(wxWebRequestWinHTTP);
}; };

View File

@@ -83,12 +83,14 @@ public:
virtual wxFileOffset GetBytesExpectedToSend() const = 0; virtual wxFileOffset GetBytesExpectedToSend() const = 0;
virtual wxFileOffset GetBytesReceived() const = 0; virtual wxFileOffset GetBytesReceived() const;
virtual wxFileOffset GetBytesExpectedToReceive() const; virtual wxFileOffset GetBytesExpectedToReceive() const;
void SetState(State state, const wxString& failMsg = ""); void SetState(State state, const wxString& failMsg = "");
void ReportDataReceived(size_t sizeReceived);
static void SplitParameters(const wxString& s, wxString& value, static void SplitParameters(const wxString& s, wxString& value,
wxWebRequestHeaderMap& parameters); wxWebRequestHeaderMap& parameters);
@@ -108,7 +110,8 @@ protected:
m_session(session), m_session(session),
m_id(id), m_id(id),
m_state(State_Idle), m_state(State_Idle),
m_ignoreServerErrorStatus(false) { } m_ignoreServerErrorStatus(false),
m_bytesReceived(0) { }
bool CheckServerStatus(); bool CheckServerStatus();
@@ -119,6 +122,7 @@ private:
int m_id; int m_id;
State m_state; State m_state;
bool m_ignoreServerErrorStatus; bool m_ignoreServerErrorStatus;
wxFileOffset m_bytesReceived;
wxCharBuffer m_dataText; wxCharBuffer m_dataText;
void ProcessStateEvent(State state, const wxString& failMsg); void ProcessStateEvent(State state, const wxString& failMsg);

View File

@@ -102,6 +102,11 @@ void wxWebRequest::SetData(wxSharedPtr<wxInputStream> dataStream, const wxString
SetHeader("Content-Type", contentType); SetHeader("Content-Type", contentType);
} }
wxFileOffset wxWebRequest::GetBytesReceived() const
{
return m_bytesReceived;;
}
wxFileOffset wxWebRequest::GetBytesExpectedToReceive() const wxFileOffset wxWebRequest::GetBytesExpectedToReceive() const
{ {
if ( GetResponse() ) if ( GetResponse() )
@@ -122,6 +127,11 @@ void wxWebRequest::SetState(State state, const wxString & failMsg)
CallAfter(&wxWebRequest::ProcessStateEvent, state, failMsg); CallAfter(&wxWebRequest::ProcessStateEvent, state, failMsg);
} }
void wxWebRequest::ReportDataReceived(size_t sizeReceived)
{
m_bytesReceived += sizeReceived;
}
// The SplitParamaters implementation is adapted to wxWidgets // The SplitParamaters implementation is adapted to wxWidgets
// from Poco::Net::MessageHeader::splitParameters // from Poco::Net::MessageHeader::splitParameters
@@ -335,6 +345,7 @@ void* wxWebResponse::GetDataBuffer(size_t sizeNeeded)
void wxWebResponse::ReportDataReceived(size_t sizeReceived) void wxWebResponse::ReportDataReceived(size_t sizeReceived)
{ {
m_readBuffer.UngetAppendBuf(sizeReceived); m_readBuffer.UngetAppendBuf(sizeReceived);
m_request.ReportDataReceived(sizeReceived);
if ( m_request.GetStorage() == wxWebRequest::Storage_File ) if ( m_request.GetStorage() == wxWebRequest::Storage_File )
m_file.Write(m_readBuffer.GetData(), m_readBuffer.GetDataLen()); m_file.Write(m_readBuffer.GetData(), m_readBuffer.GetDataLen());

View File

@@ -147,8 +147,7 @@ wxWebRequestWinHTTP::wxWebRequestWinHTTP(int id, wxWebSessionWinHTTP& session, c
m_url(url), m_url(url),
m_connect(NULL), m_connect(NULL),
m_request(NULL), m_request(NULL),
m_dataWritten(0), m_dataWritten(0)
m_bytesReceived(0)
{ {
m_headers = session.GetHeaders(); m_headers = session.GetHeaders();
} }
@@ -407,7 +406,6 @@ bool wxWebResponseWinHTTP::ReadData()
bool wxWebResponseWinHTTP::ReportAvailableData(DWORD dataLen) bool wxWebResponseWinHTTP::ReportAvailableData(DWORD dataLen)
{ {
ReportDataReceived(dataLen); ReportDataReceived(dataLen);
static_cast<wxWebRequestWinHTTP&>(m_request).m_bytesReceived += dataLen;
return ReadData(); return ReadData();
} }