chromium/third_party/ipcz/src/ipcz/pending_transaction_set.h

// Copyright 2023 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_PENDING_TRANSACTION_SET_
#define IPCZ_SRC_IPCZ_PENDING_TRANSACTION_SET_

#include <memory>
#include <set>

#include "ipcz/ipcz.h"
#include "ipcz/parcel.h"
#include "util/unique_ptr_comparator.h"

namespace ipcz {

// PendingTransactionSet wraps a set of pending Parcel objects with a special
// case for the common scenario where single elements are repeatedly inserted
// and then removed from the set, repeatedly.
//
// Care is taken to ensure that any Parcel owned by this set has a stable
// address throughout its lifetime, exposed as an opaque IpczTransaction value.
class PendingTransactionSet {};

}  // namespace ipcz

#endif  // IPCZ_SRC_IPCZ_PENDING_TRANSACTION_SET_