diff options
Diffstat (limited to 'mojo/system/local_message_pipe_endpoint.h')
-rw-r--r-- | mojo/system/local_message_pipe_endpoint.h | 37 |
1 files changed, 4 insertions, 33 deletions
diff --git a/mojo/system/local_message_pipe_endpoint.h b/mojo/system/local_message_pipe_endpoint.h index 98a665e..45dbe2a 100644 --- a/mojo/system/local_message_pipe_endpoint.h +++ b/mojo/system/local_message_pipe_endpoint.h @@ -45,45 +45,16 @@ class MOJO_SYSTEM_IMPL_EXPORT LocalMessagePipeEndpoint virtual void RemoveWaiter(Waiter* waiter) OVERRIDE; private: - class MessageQueueEntry { - public: - MessageQueueEntry(); - // Provide an explicit copy constructor, so that we can use this directly in - // a (C++03) STL container. However, we only allow the case where |other| is - // empty. (We don't provide a nontrivial constructor, because it wouldn't be - // useful with these constraints. This will change with C++11.) - MessageQueueEntry(const MessageQueueEntry& other); - ~MessageQueueEntry(); - - // Initialize, creating equivalent "duplicate" dispatchers. |transports| - // should be non-null only if nonempty. - // TODO(vtl): This would simply be a constructor, but we don't have C++11's - // emplace operations yet, and I don't want to copy |dispatchers_|. - void Init(scoped_ptr<MessageInTransit> message, - std::vector<DispatcherTransport>* transports); - - MessageInTransit* message() { - return message_; - } - std::vector<scoped_refptr<Dispatcher> >* dispatchers() { - return &dispatchers_; - } - - private: - MessageInTransit* message_; - std::vector<scoped_refptr<Dispatcher> > dispatchers_; - - // We don't need assignment, however. - DISALLOW_ASSIGN(MessageQueueEntry); - }; - MojoWaitFlags SatisfiedFlags(); MojoWaitFlags SatisfiableFlags(); bool is_open_; bool is_peer_open_; - std::deque<MessageQueueEntry> message_queue_; + // Queue of incoming messages; owns its entries. + // TODO(vtl): When C++11 is available, switch this to a deque of + // |scoped_ptr|s. + std::deque<MessageInTransit*> message_queue_; WaiterList waiter_list_; DISALLOW_COPY_AND_ASSIGN(LocalMessagePipeEndpoint); |