xref: /haiku/headers/private/netservices/UrlProtocolListener.h (revision 52c4471a3024d2eb81fe88e2c3982b9f8daa5e56)
1 /*
2  * Copyright 2010-2017 Haiku Inc. All rights reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _B_URL_PROTOCOL_LISTENER_H_
6 #define _B_URL_PROTOCOL_LISTENER_H_
7 
8 
9 #include <stddef.h>
10 #include <cstdlib>
11 
12 #include <UrlResult.h>
13 
14 
15 class BCertificate;
16 
17 
18 namespace BPrivate {
19 
20 namespace Network {
21 
22 
23 class BUrlRequest;
24 
25 
26 enum BUrlProtocolDebugMessage {
27 	B_URL_PROTOCOL_DEBUG_TEXT,
28 	B_URL_PROTOCOL_DEBUG_ERROR,
29 	B_URL_PROTOCOL_DEBUG_HEADER_IN,
30 	B_URL_PROTOCOL_DEBUG_HEADER_OUT,
31 	B_URL_PROTOCOL_DEBUG_TRANSFER_IN,
32 	B_URL_PROTOCOL_DEBUG_TRANSFER_OUT
33 };
34 
35 
36 class BUrlProtocolListener {
37 public:
38 	virtual	void				ConnectionOpened(BUrlRequest* caller);
39 	virtual	void				HostnameResolved(BUrlRequest* caller,
40 									const char* ip);
41 	virtual	void				ResponseStarted(BUrlRequest* caller);
42 	virtual	void				HeadersReceived(BUrlRequest* caller);
43 	virtual	void				BytesWritten(BUrlRequest* caller,
44 									size_t bytesWritten);
45 	virtual	void				DownloadProgress(BUrlRequest* caller,
46 									off_t bytesReceived, off_t bytesTotal);
47 	virtual void				UploadProgress(BUrlRequest* caller,
48 									off_t bytesSent, off_t bytesTotal);
49 
50 	virtual	void				RequestCompleted(BUrlRequest* caller,
51 									bool success);
52 	virtual	void				DebugMessage(BUrlRequest* caller,
53 									BUrlProtocolDebugMessage type,
54 									const char* text);
55 	virtual	bool				CertificateVerificationFailed(
56 									BUrlRequest* caller,
57 									BCertificate& certificate,
58 									const char* message);
59 };
60 
61 
62 } // namespace Network
63 
64 } // namespace BPrivate
65 
66 #endif // _B_URL_PROTOCOL_LISTENER_H_
67