diff options
author | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-03 02:19:49 +0000 |
---|---|---|
committer | agl@chromium.org <agl@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-04-03 02:19:49 +0000 |
commit | 8cf3f1dae79db8cfbf9dc6b75c140eabad918a6e (patch) | |
tree | 89e93505cc275c0a22b5ca7d95c5f03cfacff6a1 /chrome/common/ipc_sync_message.cc | |
parent | 343b7211ff31670cded0f85fa8a056fa6cf7a9f3 (diff) | |
download | chromium_src-8cf3f1dae79db8cfbf9dc6b75c140eabad918a6e.zip chromium_src-8cf3f1dae79db8cfbf9dc6b75c140eabad918a6e.tar.gz chromium_src-8cf3f1dae79db8cfbf9dc6b75c140eabad918a6e.tar.bz2 |
Move IPC code to ipc/
(No review URL: Rietvelt couldn't cope)
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@13062 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/common/ipc_sync_message.cc')
-rw-r--r-- | chrome/common/ipc_sync_message.cc | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/chrome/common/ipc_sync_message.cc b/chrome/common/ipc_sync_message.cc deleted file mode 100644 index a7407e4..0000000 --- a/chrome/common/ipc_sync_message.cc +++ /dev/null @@ -1,126 +0,0 @@ -// Copyright (c) 2006-2008 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 "build/build_config.h" - -#if defined(OS_WIN) -#include <windows.h> -#endif -#include <stack> - -#include "base/logging.h" -#include "base/waitable_event.h" -#include "chrome/common/ipc_sync_message.h" - -namespace IPC { - -uint32 SyncMessage::next_id_ = 0; -#define kSyncMessageHeaderSize 4 - -base::WaitableEvent* dummy_event = new base::WaitableEvent(true, true); - -SyncMessage::SyncMessage( - int32 routing_id, - uint16 type, - PriorityValue priority, - MessageReplyDeserializer* deserializer) - : Message(routing_id, type, priority), - deserializer_(deserializer), - pump_messages_event_(NULL) - { - set_sync(); - set_unblock(true); - - // Add synchronous message data before the message payload. - SyncHeader header; - header.message_id = ++next_id_; - WriteSyncHeader(this, header); -} - -MessageReplyDeserializer* SyncMessage::GetReplyDeserializer() { - MessageReplyDeserializer* rv = deserializer_; - DCHECK(rv); - deserializer_ = NULL; - return rv; -} - -void SyncMessage::EnableMessagePumping() { - DCHECK(!pump_messages_event_); - set_pump_messages_event(dummy_event); -} - -bool SyncMessage::IsMessageReplyTo(const Message& msg, int request_id) { - if (!msg.is_reply()) - return false; - - return GetMessageId(msg) == request_id; -} - -void* SyncMessage::GetDataIterator(const Message* msg) { - void* iter = const_cast<char*>(msg->payload()); - UpdateIter(&iter, kSyncMessageHeaderSize); - return iter; -} - -int SyncMessage::GetMessageId(const Message& msg) { - if (!msg.is_sync() && !msg.is_reply()) - return 0; - - SyncHeader header; - if (!ReadSyncHeader(msg, &header)) - return 0; - - return header.message_id; -} - -Message* SyncMessage::GenerateReply(const Message* msg) { - DCHECK(msg->is_sync()); - - Message* reply = new Message(msg->routing_id(), IPC_REPLY_ID, - msg->priority()); - reply->set_reply(); - - SyncHeader header; - - // use the same message id, but this time reply bit is set - header.message_id = GetMessageId(*msg); - WriteSyncHeader(reply, header); - - return reply; -} - -bool SyncMessage::ReadSyncHeader(const Message& msg, SyncHeader* header) { - DCHECK(msg.is_sync() || msg.is_reply()); - - void* iter = NULL; - bool result = msg.ReadInt(&iter, &header->message_id); - if (!result) { - NOTREACHED(); - return false; - } - - return true; -} - -bool SyncMessage::WriteSyncHeader(Message* msg, const SyncHeader& header) { - DCHECK(msg->is_sync() || msg->is_reply()); - DCHECK(msg->payload_size() == 0); - bool result = msg->WriteInt(header.message_id); - if (!result) { - NOTREACHED(); - return false; - } - - // Note: if you add anything here, you need to update kSyncMessageHeaderSize. - DCHECK(kSyncMessageHeaderSize == msg->payload_size()); - - return true; -} - - -bool MessageReplyDeserializer::SerializeOutputParameters(const Message& msg) { - return SerializeOutputParameters(msg, SyncMessage::GetDataIterator(&msg)); -} - -} // namespace IPC |