OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 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 | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "mojo/public/bindings/lib/message_queue.h" | 5 #include "mojo/public/bindings/lib/message_queue.h" |
6 | 6 |
7 #include <assert.h> | 7 #include <assert.h> |
8 #include <stddef.h> | 8 #include <stddef.h> |
9 | 9 |
10 #include "mojo/public/bindings/lib/message.h" | 10 #include "mojo/public/bindings/lib/message.h" |
11 | 11 |
12 namespace mojo { | 12 namespace mojo { |
13 | 13 |
14 MessageQueue::MessageQueue() { | 14 MessageQueue::MessageQueue() { |
15 } | 15 } |
16 | 16 |
17 MessageQueue::~MessageQueue() { | 17 MessageQueue::~MessageQueue() { |
18 while (!queue_.empty()) | 18 while (!queue_.empty()) |
19 Pop(); | 19 Pop(); |
20 } | 20 } |
21 | 21 |
22 bool MessageQueue::IsEmpty() const { | 22 bool MessageQueue::IsEmpty() const { |
23 return queue_.empty(); | 23 return queue_.empty(); |
24 } | 24 } |
25 | 25 |
26 const Message* MessageQueue::Peek() const { | 26 Message* MessageQueue::Peek() { |
27 assert(!queue_.empty()); | 27 assert(!queue_.empty()); |
28 return queue_.front(); | 28 return queue_.front(); |
29 } | 29 } |
30 | 30 |
31 void MessageQueue::Push(Message* message) { | 31 void MessageQueue::Push(Message* message) { |
32 queue_.push(new Message()); | 32 queue_.push(new Message()); |
33 queue_.back()->Swap(message); | 33 queue_.back()->Swap(message); |
34 } | 34 } |
35 | 35 |
36 void MessageQueue::Pop(Message* message) { | 36 void MessageQueue::Pop(Message* message) { |
37 assert(!queue_.empty()); | 37 assert(!queue_.empty()); |
38 queue_.front()->Swap(message); | 38 queue_.front()->Swap(message); |
39 Pop(); | 39 Pop(); |
40 } | 40 } |
41 | 41 |
42 void MessageQueue::Pop() { | 42 void MessageQueue::Pop() { |
43 assert(!queue_.empty()); | 43 assert(!queue_.empty()); |
44 delete queue_.front(); | 44 delete queue_.front(); |
45 queue_.pop(); | 45 queue_.pop(); |
46 } | 46 } |
47 | 47 |
48 } // namespace mojo | 48 } // namespace mojo |
OLD | NEW |