chromium/third_party/ipcz/src/ipcz/box.h

// Copyright 2022 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IPCZ_SRC_IPCZ_BOX_
#define IPCZ_SRC_IPCZ_BOX_

#include "ipcz/api_object.h"
#include "ipcz/application_object.h"
#include "ipcz/driver_object.h"
#include "ipcz/parcel_wrapper.h"
#include "third_party/abseil-cpp/absl/types/variant.h"
#include "util/overloaded.h"

namespace ipcz {

// Generic handle wrapper around a DriverObject, ApplicationObject, or Parcel,
// allowing those types to be passed wherever IpczHandles are accepted.
class Box : public APIObjectImpl<Box, APIObject::kBox> {};

}  // namespace ipcz

#endif  // IPCZ_SRC_IPCZ_BOX_