#include "mojo/public/cpp/bindings/generic_pending_associated_receiver.h"
#include <string_view>
#include <utility>
#include "base/check.h"
namespace mojo {
GenericPendingAssociatedReceiver::GenericPendingAssociatedReceiver() = default;
GenericPendingAssociatedReceiver::GenericPendingAssociatedReceiver(
std::string_view interface_name,
mojo::ScopedInterfaceEndpointHandle handle)
: interface_name_(std::string(interface_name)),
handle_(std::move(handle)) {}
GenericPendingAssociatedReceiver::GenericPendingAssociatedReceiver(
GenericPendingAssociatedReceiver&&) = default;
GenericPendingAssociatedReceiver& GenericPendingAssociatedReceiver::operator=(
GenericPendingAssociatedReceiver&&) = default;
GenericPendingAssociatedReceiver::~GenericPendingAssociatedReceiver() = default;
void GenericPendingAssociatedReceiver::reset() {
interface_name_.reset();
handle_.reset();
}
mojo::ScopedInterfaceEndpointHandle
GenericPendingAssociatedReceiver::PassHandle() {
DCHECK(is_valid());
interface_name_.reset();
return std::move(handle_);
}
mojo::ScopedInterfaceEndpointHandle
GenericPendingAssociatedReceiver::PassHandleIfNameIs(
const char* interface_name) {
DCHECK(is_valid());
if (interface_name_ == interface_name)
return PassHandle();
return mojo::ScopedInterfaceEndpointHandle();
}
}