// 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_PARCEL_WRAPPER_ #define IPCZ_SRC_IPCZ_PARCEL_WRAPPER_ #include <cstddef> #include "ipcz/api_object.h" #include "ipcz/ipcz.h" #include "ipcz/parcel.h" #include "third_party/abseil-cpp/absl/base/macros.h" #include "util/ref_counted.h" namespace ipcz { // A parcel wrapper owns a Parcel received from a portal, after the Parcel has // been retrieved from the portal by the application. // // Applications can use these objects to perform two-phase reads of parcels // without blocking the receiving portal, and to report their own // application-level validation failures to ipcz via the Reject() API. class ParcelWrapper : public APIObjectImpl<ParcelWrapper, APIObject::kParcel> { … }; } // namespace ipcz #endif // IPCZ_SRC_IPCZ_PARCEL_WRAPPER_