| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "net/server/http_connection.h" |
| |
| #include "net/server/http_server.h" |
| #include "net/server/http_server_response_info.h" |
| #include "net/server/web_socket.h" |
| #include "net/socket/stream_listen_socket.h" |
| |
| namespace net { |
| |
| int HttpConnection::last_id_ = 0; |
| |
| void HttpConnection::Send(const std::string& data) { |
| if (!socket_.get()) |
| return; |
| socket_->Send(data); |
| } |
| |
| void HttpConnection::Send(const char* bytes, int len) { |
| if (!socket_.get()) |
| return; |
| socket_->Send(bytes, len); |
| } |
| |
| void HttpConnection::Send(const HttpServerResponseInfo& response) { |
| Send(response.Serialize()); |
| } |
| |
| HttpConnection::HttpConnection(HttpServer* server, |
| scoped_ptr<StreamListenSocket> sock) |
| : server_(server), |
| socket_(sock.Pass()) { |
| id_ = last_id_++; |
| } |
| |
| HttpConnection::~HttpConnection() { |
| server_->delegate_->OnClose(id_); |
| } |
| |
| void HttpConnection::Shift(int num_bytes) { |
| recv_data_ = recv_data_.substr(num_bytes); |
| } |
| |
| } // namespace net |