Implement GetBytesReceived() in base class
This commit is contained in:
@@ -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);
|
||||||
};
|
};
|
||||||
|
@@ -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);
|
||||||
|
@@ -102,14 +102,19 @@ void wxWebRequest::SetData(wxSharedPtr<wxInputStream> dataStream, const wxString
|
|||||||
SetHeader("Content-Type", contentType);
|
SetHeader("Content-Type", contentType);
|
||||||
}
|
}
|
||||||
|
|
||||||
wxFileOffset wxWebRequest::GetBytesExpectedToReceive() const
|
wxFileOffset wxWebRequest::GetBytesReceived() const
|
||||||
|
{
|
||||||
|
return m_bytesReceived;;
|
||||||
|
}
|
||||||
|
|
||||||
|
wxFileOffset wxWebRequest::GetBytesExpectedToReceive() const
|
||||||
{
|
{
|
||||||
if ( GetResponse() )
|
if ( GetResponse() )
|
||||||
return GetResponse()->GetContentLength();
|
return GetResponse()->GetContentLength();
|
||||||
else
|
else
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWebRequest::SetState(State state, const wxString & failMsg)
|
void wxWebRequest::SetState(State state, const wxString & failMsg)
|
||||||
{
|
{
|
||||||
// Add a reference while the request is active
|
// Add a reference while the request is active
|
||||||
@@ -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());
|
||||||
|
@@ -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();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user