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