| // Copyright (c) 2013 The Chromium OS Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef P2P_SERVER_FAKE_HTTP_SERVER_H_ |
| #define P2P_SERVER_FAKE_HTTP_SERVER_H_ |
| |
| #include <string> |
| |
| #include <base/callback.h> |
| #include <base/files/file_path.h> |
| #include <base/macros.h> |
| |
| #include "p2p/server/http_server.h" |
| |
| namespace p2p { |
| |
| namespace server { |
| |
| // A HTTP server that doesn't really serve any files and can be made |
| // to lie about its number of connected clients. |
| class FakeHttpServer : public HttpServer { |
| public: |
| FakeHttpServer() : is_running_(false), num_connections_(0) {} |
| FakeHttpServer(const FakeHttpServer&) = delete; |
| FakeHttpServer& operator=(const FakeHttpServer&) = delete; |
| |
| bool Start() override { |
| is_running_ = true; |
| return true; |
| } |
| |
| bool Stop() override { |
| is_running_ = false; |
| return true; |
| } |
| |
| bool IsRunning() override { return is_running_; } |
| |
| uint16_t Port() override { return 1234; } |
| |
| void SetNumConnectionsCallback(NumConnectionsCallback callback) override { |
| callback_ = callback; |
| } |
| |
| void SetNumConnections(int num_connections) { |
| if (num_connections_ != num_connections) { |
| num_connections_ = num_connections; |
| if (!callback_.is_null()) |
| callback_.Run(num_connections); |
| } |
| } |
| |
| private: |
| bool is_running_; |
| NumConnectionsCallback callback_; |
| int num_connections_; |
| }; |
| |
| } // namespace server |
| |
| } // namespace p2p |
| |
| #endif // P2P_SERVER_FAKE_HTTP_SERVER_H_ |