OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ | 5 #ifndef IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ |
6 #define IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ | 6 #define IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ |
7 | 7 |
| 8 #include <memory> |
8 #include <vector> | 9 #include <vector> |
9 | 10 |
10 #import "base/mac/scoped_nsobject.h" | 11 #import "base/mac/scoped_nsobject.h" |
11 #include "base/macros.h" | 12 #include "base/macros.h" |
12 #include "base/memory/ref_counted.h" | 13 #include "base/memory/ref_counted.h" |
13 #include "base/memory/scoped_ptr.h" | |
14 #include "base/memory/scoped_vector.h" | 14 #include "base/memory/scoped_vector.h" |
15 #include "base/synchronization/lock.h" | 15 #include "base/synchronization/lock.h" |
16 #include "ios/web/public/test/response_providers/response_provider.h" | 16 #include "ios/web/public/test/response_providers/response_provider.h" |
17 | 17 |
18 @class GCDWebServer; | 18 @class GCDWebServer; |
19 | 19 |
20 namespace web { | 20 namespace web { |
21 namespace test { | 21 namespace test { |
22 | 22 |
23 // A convience class for wrapping a ResponseProvider so that it can be used | 23 // A convience class for wrapping a ResponseProvider so that it can be used |
24 // inside data structures that operate on ref counted objects. This class is a | 24 // inside data structures that operate on ref counted objects. This class is a |
25 // ref counted container for a ResponseProvider. | 25 // ref counted container for a ResponseProvider. |
26 // This object exists for legacy reasons since a large part of the code base | 26 // This object exists for legacy reasons since a large part of the code base |
27 // still uses ResponseProviders that are not ref counted. | 27 // still uses ResponseProviders that are not ref counted. |
28 class RefCountedResponseProviderWrapper : | 28 class RefCountedResponseProviderWrapper : |
29 public base::RefCounted<RefCountedResponseProviderWrapper> { | 29 public base::RefCounted<RefCountedResponseProviderWrapper> { |
30 public: | 30 public: |
31 // Main constructor. | 31 // Main constructor. |
32 explicit RefCountedResponseProviderWrapper( | 32 explicit RefCountedResponseProviderWrapper( |
33 ResponseProvider* response_provider); | 33 ResponseProvider* response_provider); |
34 // Returns the ResponseProvider that backs this object. | 34 // Returns the ResponseProvider that backs this object. |
35 ResponseProvider* GetResponseProvider() { return response_provider_.get(); } | 35 ResponseProvider* GetResponseProvider() { return response_provider_.get(); } |
36 private: | 36 private: |
37 friend class base::RefCounted<RefCountedResponseProviderWrapper>; | 37 friend class base::RefCounted<RefCountedResponseProviderWrapper>; |
38 // The ResponseProvider that backs this object. | 38 // The ResponseProvider that backs this object. |
39 scoped_ptr<ResponseProvider> response_provider_; | 39 std::unique_ptr<ResponseProvider> response_provider_; |
40 virtual ~RefCountedResponseProviderWrapper(); | 40 virtual ~RefCountedResponseProviderWrapper(); |
41 }; | 41 }; |
42 | 42 |
43 // The HttpServer is an in-process web server that is used to service requests. | 43 // The HttpServer is an in-process web server that is used to service requests. |
44 // It is a singleton and backed by a GCDWebServer. | 44 // It is a singleton and backed by a GCDWebServer. |
45 // HttpServer can be configured to serve requests by registering | 45 // HttpServer can be configured to serve requests by registering |
46 // web::ResponseProviders. | 46 // web::ResponseProviders. |
47 // This class is not thread safe on the whole and only certain methods are | 47 // This class is not thread safe on the whole and only certain methods are |
48 // thread safe. | 48 // thread safe. |
49 class HttpServer { | 49 class HttpServer { |
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 // The list of providers to service a request. | 125 // The list of providers to service a request. |
126 std::vector<scoped_refptr<RefCountedResponseProviderWrapper>> providers_; | 126 std::vector<scoped_refptr<RefCountedResponseProviderWrapper>> providers_; |
127 DISALLOW_COPY_AND_ASSIGN(HttpServer); | 127 DISALLOW_COPY_AND_ASSIGN(HttpServer); |
128 }; | 128 }; |
129 | 129 |
130 } // namespace test | 130 } // namespace test |
131 } // namspace web | 131 } // namspace web |
132 | 132 |
133 #endif // IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ | 133 #endif // IOS_WEB_PUBLIC_TEST_HTTP_SERVER_H_ |
134 | 134 |
OLD | NEW |