1 // Copyright 2019 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. 4 5 #include "mojo/public/cpp/bindings/generic_pending_receiver.h" 6 7 namespace mojo { 8 9 GenericPendingReceiver::GenericPendingReceiver() = default; 10 GenericPendingReceiver(base::StringPiece interface_name,mojo::ScopedMessagePipeHandle receiving_pipe)11GenericPendingReceiver::GenericPendingReceiver( 12 base::StringPiece interface_name, 13 mojo::ScopedMessagePipeHandle receiving_pipe) 14 : interface_name_(interface_name.as_string()), 15 pipe_(std::move(receiving_pipe)) {} 16 17 GenericPendingReceiver::GenericPendingReceiver(GenericPendingReceiver&&) = 18 default; 19 20 GenericPendingReceiver::~GenericPendingReceiver() = default; 21 22 GenericPendingReceiver& GenericPendingReceiver::operator=( 23 GenericPendingReceiver&&) = default; 24 reset()25void GenericPendingReceiver::reset() { 26 interface_name_.reset(); 27 pipe_.reset(); 28 } 29 PassPipe()30mojo::ScopedMessagePipeHandle GenericPendingReceiver::PassPipe() { 31 DCHECK(is_valid()); 32 interface_name_.reset(); 33 return std::move(pipe_); 34 } 35 PassPipeIfNameIs(const char * interface_name)36mojo::ScopedMessagePipeHandle GenericPendingReceiver::PassPipeIfNameIs( 37 const char* interface_name) { 38 DCHECK(is_valid()); 39 if (interface_name_ == interface_name) 40 return PassPipe(); 41 return mojo::ScopedMessagePipeHandle(); 42 } 43 44 } // namespace mojo 45