121 lines
4.5 KiB
C++
121 lines
4.5 KiB
C++
// CkHttpProgress.h: interface for the CkHttpProgress class.
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _CKHTTPPROGRESSW_H
|
|
#define _CKHTTPPROGRESSW_H
|
|
|
|
#include "CkBaseProgressW.h"
|
|
|
|
#if !defined(__sun__) && !defined(__sun)
|
|
#pragma pack (push, 8)
|
|
#endif
|
|
|
|
|
|
/*
|
|
|
|
ProgressInfo events:
|
|
|
|
|
|
SocketConnect - hostname:port, called when initiating a connection.
|
|
SocketConnected - hostname:port, called after successfully connected.
|
|
HttpProxyConnect - hostname:port
|
|
SslHandshake - "Starting"/"Finished"
|
|
HttpGetBegin - URL
|
|
HttpCacheHit - "Returning page from cache."
|
|
HttpInfo - various conditions...
|
|
"Begin reading response" -- called when beginning to read the response.
|
|
"Finished reading response"
|
|
"Existing connection with HTTP server no longer open, restarting GET with new connection."
|
|
"Reading chunked response."
|
|
"UnGzipping response data"
|
|
"Connection:close header is present"
|
|
GetRequest - the full HTTP GET request to be sent to the server.
|
|
ResponseHeader - the header of the HTTP response.
|
|
HttpStatusCode - HTTP response status code (integer)
|
|
ChunkSize - Size (in bytes) of next chunk in response.
|
|
ResponseContentLength - Non-chunked response size in bytes.
|
|
UnGzippedLength - If the response was gzip compressed, this is the uncompressed size.
|
|
HostnameResolve - hostname, Called when starting to resolve a hostname (to an IP address)
|
|
ResolvedToIp - dotted IP address, called after hostname is resolved.
|
|
HttpAuth - one of the following strings:
|
|
"Starting Negotiate Authentication"
|
|
"Starting NTLM Authentication"
|
|
"Adding Basic Authentication Header"
|
|
"Adding Proxy Authentication Header"
|
|
"Starting Proxy NTLM Authentication"
|
|
"Starting Digest Authentication"
|
|
CookieToSend - Value of a Set-Cookie header field to be added to the outgoing request.
|
|
SavingCookie - XML of cookie being persisted.
|
|
HttpRedirect - Redirect URL
|
|
Socks4Connect - domain:port
|
|
Socks5Connect - domain:port
|
|
|
|
HttpRequestBegin - Verb (such as POST, GET, PUT), domain:port/path
|
|
RequestHeader - The full HTTP request header to be sent.
|
|
StartSendingRequest - Size of entire request, including header, in number of bytes. (Not called for QuickGet)
|
|
- for uploads, this is the size of the entire upload (headers and all files combined)
|
|
SubPartHeader - The header for one of the parts within a multipart request.
|
|
UploadFilename - The file about to be uploaded (streamed from file to socket..)
|
|
|
|
*/
|
|
|
|
// When creating an application class that inherits the CkHttpProgressW base class, use the CK_HTTPPROGRESSW_API
|
|
// definition to declare the overrides in the class header. This has the effect that if for
|
|
// some unforeseen and unlikely reason the Chilkat event callback API changes, or if new
|
|
// callback methods are added in a future version, then you'll discover them at compile time
|
|
// after updating to the new Chilkat version.
|
|
// For example:
|
|
/*
|
|
class MyProgress : public CkHttpProgressW
|
|
{
|
|
public:
|
|
CK_HTTPPROGRESSW_API
|
|
|
|
...
|
|
};
|
|
*/
|
|
#define CK_HTTPPROGRESSW_API \
|
|
void HttpRedirect(const wchar_t *originalUrl, const wchar_t *redirectUrl, bool *abort);\
|
|
void HttpChunked(void);\
|
|
void HttpBeginReceive(void);\
|
|
void HttpEndReceive(bool success);\
|
|
void HttpBeginSend(void);\
|
|
void HttpEndSend(bool success);\
|
|
void ReceiveRate(__int64 byteCount, unsigned long bytesPerSec);\
|
|
void SendRate(__int64 byteCount, unsigned long bytesPerSec);
|
|
|
|
class CK_VISIBLE_PUBLIC CkHttpProgressW : public CkBaseProgressW
|
|
{
|
|
public:
|
|
CkHttpProgressW() { }
|
|
virtual ~CkHttpProgressW() { }
|
|
|
|
// These event callbacks are now defined in CkBaseProgressW.
|
|
//virtual void PercentDone(int pctDone, bool *abort) { }
|
|
//virtual void AbortCheck(bool *abort) { }
|
|
//virtual void ProgressInfo(const wchar_t *name, const wchar_t *value) { }
|
|
|
|
virtual void HttpRedirect(const wchar_t *originalUrl, const wchar_t *redirectUrl, bool *abort) { }
|
|
|
|
// Called just before a chunked response is about to be received.
|
|
// With chunked responses, it is not possible to get PercentDone callbacks because
|
|
// the entire size of the HTTP response is not known as it is being received.
|
|
virtual void HttpChunked(void) { }
|
|
|
|
virtual void HttpBeginReceive(void) { }
|
|
virtual void HttpEndReceive(bool success) { }
|
|
virtual void HttpBeginSend(void) { }
|
|
virtual void HttpEndSend(bool success) { }
|
|
|
|
virtual void ReceiveRate(__int64 byteCount, unsigned long bytesPerSec) { }
|
|
virtual void SendRate(__int64 byteCount, unsigned long bytesPerSec) { }
|
|
|
|
};
|
|
#if !defined(__sun__) && !defined(__sun)
|
|
#pragma pack (pop)
|
|
#endif
|
|
|
|
|
|
#endif
|