Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1297)

Side by Side Diff: mojo/edk/system/message_in_transit_queue.h

Issue 1353683005: EDK: Convert remaining scoped_ptr -> std::unique_ptr in //mojo/edk/system. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #ifndef MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_ 5 #ifndef MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_
6 #define MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_ 6 #define MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_
7 7
8 #include <deque> 8 #include <deque>
9 #include <memory>
9 10
10 #include "base/memory/scoped_ptr.h"
11 #include "mojo/edk/system/message_in_transit.h" 11 #include "mojo/edk/system/message_in_transit.h"
12 #include "mojo/edk/system/system_impl_export.h" 12 #include "mojo/edk/system/system_impl_export.h"
13 #include "mojo/public/cpp/system/macros.h" 13 #include "mojo/public/cpp/system/macros.h"
14 14
15 namespace mojo { 15 namespace mojo {
16 namespace system { 16 namespace system {
17 17
18 // A simple queue for |MessageInTransit|s (that owns its messages). 18 // A simple queue for |MessageInTransit|s (that owns its messages).
19 // This class is not thread-safe. 19 // This class is not thread-safe.
20 class MOJO_SYSTEM_IMPL_EXPORT MessageInTransitQueue { 20 class MOJO_SYSTEM_IMPL_EXPORT MessageInTransitQueue {
21 public: 21 public:
22 MessageInTransitQueue(); 22 MessageInTransitQueue();
23 ~MessageInTransitQueue(); 23 ~MessageInTransitQueue();
24 24
25 bool IsEmpty() const { return queue_.empty(); } 25 bool IsEmpty() const { return queue_.empty(); }
26 size_t Size() const { return queue_.size(); } 26 size_t Size() const { return queue_.size(); }
27 27
28 void AddMessage(scoped_ptr<MessageInTransit> message) { 28 void AddMessage(std::unique_ptr<MessageInTransit> message) {
29 queue_.push_back(message.release()); 29 queue_.push_back(message.release());
30 } 30 }
31 31
32 scoped_ptr<MessageInTransit> GetMessage() { 32 std::unique_ptr<MessageInTransit> GetMessage() {
33 MessageInTransit* rv = queue_.front(); 33 MessageInTransit* rv = queue_.front();
34 queue_.pop_front(); 34 queue_.pop_front();
35 return make_scoped_ptr(rv); 35 return std::unique_ptr<MessageInTransit>(rv);
36 } 36 }
37 37
38 const MessageInTransit* PeekMessage() const { return queue_.front(); } 38 const MessageInTransit* PeekMessage() const { return queue_.front(); }
39 MessageInTransit* PeekMessage() { return queue_.front(); } 39 MessageInTransit* PeekMessage() { return queue_.front(); }
40 40
41 void DiscardMessage() { 41 void DiscardMessage() {
42 delete queue_.front(); 42 delete queue_.front();
43 queue_.pop_front(); 43 queue_.pop_front();
44 } 44 }
45 45
46 void Clear(); 46 void Clear();
47 47
48 // Efficiently swaps contents with |*other|. 48 // Efficiently swaps contents with |*other|.
49 void Swap(MessageInTransitQueue* other); 49 void Swap(MessageInTransitQueue* other);
50 50
51 private: 51 private:
52 // TODO(vtl): When C++11 is available, switch this to a deque of 52 // TODO(vtl): When C++11 is available, switch this to a deque of
53 // |scoped_ptr|/|unique_ptr|s. 53 // |unique_ptr|s.
54 std::deque<MessageInTransit*> queue_; 54 std::deque<MessageInTransit*> queue_;
55 55
56 MOJO_DISALLOW_COPY_AND_ASSIGN(MessageInTransitQueue); 56 MOJO_DISALLOW_COPY_AND_ASSIGN(MessageInTransitQueue);
57 }; 57 };
58 58
59 } // namespace system 59 } // namespace system
60 } // namespace mojo 60 } // namespace mojo
61 61
62 #endif // MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_ 62 #endif // MOJO_EDK_SYSTEM_MESSAGE_IN_TRANSIT_QUEUE_H_
OLDNEW
« no previous file with comments | « mojo/edk/system/master_connection_manager.cc ('k') | mojo/edk/system/message_in_transit_test_utils.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698