1// Copyright (c) 2012 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CONTENT_PUBLIC_BROWSER_GLOBAL_ROUTING_ID_H_
6#define CONTENT_PUBLIC_BROWSER_GLOBAL_ROUTING_ID_H_
7
8namespace content {
9
10// Uniquely identifies the route from which a net::URLRequest comes.
11struct GlobalRoutingID {
12  GlobalRoutingID() : child_id(-1), route_id(-1) {
13  }
14
15  GlobalRoutingID(int child_id, int route_id)
16      : child_id(child_id),
17        route_id(route_id) {
18  }
19
20  // The unique ID of the child process (different from OS's PID).
21  int child_id;
22
23  // The route ID (unique for each URLRequest source).
24  int route_id;
25
26  bool operator<(const GlobalRoutingID& other) const {
27    if (child_id == other.child_id)
28      return route_id < other.route_id;
29    return child_id < other.child_id;
30  }
31  bool operator==(const GlobalRoutingID& other) const {
32    return child_id == other.child_id &&
33        route_id == other.route_id;
34  }
35  bool operator!=(const GlobalRoutingID& other) const {
36    return !(*this == other);
37  }
38};
39
40}  // namespace content
41
42#endif  // CONTENT_PUBLIC_BROWSER_GLOBAL_ROUTING_ID_H_
43