| // Copyright (c) 2010 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 "chrome/browser/debugger/devtools_remote_message.h" |
| |
| #include "base/string_number_conversions.h" |
| |
| const char DevToolsRemoteMessageHeaders::kContentLength[] = "Content-Length"; |
| const char DevToolsRemoteMessageHeaders::kTool[] = "Tool"; |
| const char DevToolsRemoteMessageHeaders::kDestination[] = "Destination"; |
| |
| const char DevToolsRemoteMessage::kEmptyValue[] = ""; |
| |
| DevToolsRemoteMessageBuilder& DevToolsRemoteMessageBuilder::instance() { |
| static DevToolsRemoteMessageBuilder instance_; |
| return instance_; |
| } |
| |
| DevToolsRemoteMessage::DevToolsRemoteMessage() {} |
| |
| DevToolsRemoteMessage::DevToolsRemoteMessage(const HeaderMap& headers, |
| const std::string& content) |
| : header_map_(headers), |
| content_(content) { |
| } |
| |
| DevToolsRemoteMessage::~DevToolsRemoteMessage() {} |
| |
| const std::string DevToolsRemoteMessage::GetHeader( |
| const std::string& header_name, |
| const std::string& default_value) const { |
| HeaderMap::const_iterator it = header_map_.find(header_name); |
| if (it == header_map_.end()) { |
| return default_value; |
| } |
| return it->second; |
| } |
| |
| const std::string DevToolsRemoteMessage::GetHeaderWithEmptyDefault( |
| const std::string& header_name) const { |
| return GetHeader(header_name, DevToolsRemoteMessage::kEmptyValue); |
| } |
| |
| const std::string DevToolsRemoteMessage::ToString() const { |
| std::string result; |
| for (HeaderMap::const_iterator it = header_map_.begin(), |
| end = header_map_.end(); it != end; ++it) { |
| result.append(it->first).append(":").append(it->second).append("\r\n"); |
| } |
| result.append("\r\n").append(content_); |
| return result; |
| } |
| |
| DevToolsRemoteMessage* DevToolsRemoteMessageBuilder::Create( |
| const std::string& tool, |
| const std::string& destination, |
| const std::string& content) { |
| DevToolsRemoteMessage::HeaderMap headers; |
| headers[DevToolsRemoteMessageHeaders::kContentLength] = |
| base::IntToString(content.size()); |
| headers[DevToolsRemoteMessageHeaders::kTool] = tool; |
| headers[DevToolsRemoteMessageHeaders::kDestination] = destination; |
| return new DevToolsRemoteMessage(headers, content); |
| } |