Updating trunk VERSION from 2139.0 to 2140.0
[chromium-blink-merge.git] / content / common / message_router.cc
blob469d85e9f1bcb4f7114ef2c341d3db6b11f39a17
1 // Copyright (c) 2011 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.
5 #include "content/common/message_router.h"
7 #include "ipc/ipc_message.h"
9 namespace content {
11 MessageRouter::MessageRouter() {
14 MessageRouter::~MessageRouter() {
17 bool MessageRouter::OnControlMessageReceived(const IPC::Message& msg) {
18 NOTREACHED() <<
19 "should override in subclass if you care about control messages";
20 return false;
23 bool MessageRouter::Send(IPC::Message* msg) {
24 NOTREACHED() <<
25 "should override in subclass if you care about sending messages";
26 return false;
29 bool MessageRouter::AddRoute(int32 routing_id, IPC::Listener* listener) {
30 if (routes_.Lookup(routing_id)) {
31 DLOG(ERROR) << "duplicate routing ID";
32 return false;
34 routes_.AddWithID(listener, routing_id);
35 return true;
38 void MessageRouter::RemoveRoute(int32 routing_id) {
39 routes_.Remove(routing_id);
42 bool MessageRouter::OnMessageReceived(const IPC::Message& msg) {
43 if (msg.routing_id() == MSG_ROUTING_CONTROL)
44 return OnControlMessageReceived(msg);
46 return RouteMessage(msg);
49 bool MessageRouter::RouteMessage(const IPC::Message& msg) {
50 IPC::Listener* listener = routes_.Lookup(msg.routing_id());
51 if (!listener)
52 return false;
54 listener->OnMessageReceived(msg);
55 return true;
58 } // namespace content