1ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen// Copyright (c) 2011 The Chromium Authors. All rights reserved.
2c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// Use of this source code is governed by a BSD-style license that can be
3c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch// found in the LICENSE file.
4c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#ifndef NET_HTTP_HTTP_NET_LOG_PARAMS_H_
6c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#define NET_HTTP_HTTP_NET_LOG_PARAMS_H_
73345a6884c488ff3a535c2c9acdd33d74b37e311Iain Merrick#pragma once
8c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
9c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include <string>
10c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
11c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "base/basictypes.h"
12ddb351dbec246cf1fab5ec20d2d5520909041de1Kristian Monsen#include "base/memory/ref_counted.h"
13c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/base/net_log.h"
14c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#include "net/http/http_request_headers.h"
15731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
16731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass Value;
17c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
18c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochnamespace net {
19c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
20731df977c0511bca2206b5f333555b1205ff1f43Iain Merrickclass HttpResponseHeaders;
21731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
22c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NetLogHttpRequestParameter : public NetLog::EventParameters {
23c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
24c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  NetLogHttpRequestParameter(const std::string& line,
25731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick                             const HttpRequestHeaders& headers);
26c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
27731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  const HttpRequestHeaders& GetHeaders() const {
28731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    return headers_;
29c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
30c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
314a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  const std::string& GetLine() const {
324a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch    return line_;
334a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch  }
344a5e2dc747d50c653511c68ccb2cfbfb740bd5a7Ben Murdoch
3572a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // NetLog::EventParameters
3672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual Value* ToValue() const;
3772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
38c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
39731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual ~NetLogHttpRequestParameter();
40c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
41c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const std::string line_;
42c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  HttpRequestHeaders headers_;
43c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
44c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(NetLogHttpRequestParameter);
45c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
46c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
47c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdochclass NetLogHttpResponseParameter : public NetLog::EventParameters {
48c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch public:
49c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  explicit NetLogHttpResponseParameter(
50731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick      const scoped_refptr<HttpResponseHeaders>& headers);
51731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick
52731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  const HttpResponseHeaders& GetHeaders() const {
53731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick    return *headers_;
54c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  }
55c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
5672a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  // NetLog::EventParameters
5772a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen  virtual Value* ToValue() const;
5872a454cd3513ac24fbdd0e0cb9ad70b86a99b801Kristian Monsen
59c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch private:
60731df977c0511bca2206b5f333555b1205ff1f43Iain Merrick  virtual ~NetLogHttpResponseParameter();
61c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
62c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  const scoped_refptr<HttpResponseHeaders> headers_;
63c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
64c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch  DISALLOW_COPY_AND_ASSIGN(NetLogHttpResponseParameter);
65c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch};
66c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
67c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch}  // namespace net
68c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
69c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch#endif  // NET_HTTP_HTTP_NET_LOG_PARAMS_H_
70c407dc5cd9bdc5668497f21b26b09d988ab439deBen Murdoch
71