1 // Copyright 2013 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 "mojo/public/cpp/bindings/lib/message_queue.h"
7 #include "mojo/public/cpp/bindings/message.h"
8 #include "mojo/public/cpp/environment/logging.h"
13 MessageQueue::MessageQueue() {
16 MessageQueue::~MessageQueue() {
17 while (!queue_.empty())
21 bool MessageQueue::IsEmpty() const {
22 return queue_.empty();
25 Message* MessageQueue::Peek() {
26 MOJO_DCHECK(!queue_.empty());
27 return queue_.front();
30 void MessageQueue::Push(Message* message) {
31 queue_.push(new Message());
32 queue_.back()->Swap(message);
35 void MessageQueue::Pop(Message* message) {
36 MOJO_DCHECK(!queue_.empty());
37 queue_.front()->Swap(message);
41 void MessageQueue::Pop() {
42 MOJO_DCHECK(!queue_.empty());
43 delete queue_.front();
47 } // namespace internal