xref: /haiku/headers/private/netservices/HttpResult.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_HTTP_RESULT_H_
6 #define _B_HTTP_RESULT_H_
7 
8 
9 #include <HttpHeaders.h>
10 #include <String.h>
11 #include <Url.h>
12 #include <UrlResult.h>
13 
14 
15 namespace BPrivate {
16 
17 namespace Network {
18 
19 
20 class BUrlRequest;
21 
22 
23 class BHttpResult: public BUrlResult {
24 			friend class 				BHttpRequest;
25 
26 public:
27 										BHttpResult(const BUrl& url);
28 										BHttpResult(const BHttpResult& other);
29 										~BHttpResult();
30 
31 	// Result parameters modifications
32 			void						SetUrl(const BUrl& url);
33 
34 	// Result parameters access
35 			const BUrl&					Url() const;
36 			BString						ContentType() const;
37 			off_t						Length() const;
38 
39 	// HTTP-Specific stuff
40 			const BHttpHeaders&			Headers() const;
41 			const BString&				StatusText() const;
42 			int32						StatusCode() const;
43 
44 	// Result tests
45 			bool						HasHeaders() const;
46 
47 	// Overloaded members
48 			BHttpResult&				operator=(const BHttpResult& other);
49 
50 private:
51 			BUrl						fUrl;
52 
53 			BHttpHeaders 				fHeaders;
54 			int32						fStatusCode;
55 			BString						fStatusString;
56 };
57 
58 
59 } // namespace Network
60 
61 } // namespace BPrivate
62 
63 #endif // _B_URL_RESULT_H_
64