#include "reference_drivers/sync_reference_driver.h"
#include <algorithm>
#include <cstdint>
#include <limits>
#include <string>
#include <string_view>
#include <tuple>
#include <vector>
#include "ipcz/ipcz.h"
#include "reference_drivers/object.h"
#include "reference_drivers/random.h"
#include "reference_drivers/single_process_reference_driver_base.h"
#include "third_party/abseil-cpp/absl/synchronization/mutex.h"
#include "third_party/abseil-cpp/absl/types/span.h"
#include "util/ref_counted.h"
namespace ipcz::reference_drivers {
namespace {
void CloseAllHandles(absl::Span<const IpczDriverHandle> handles) { … }
class TransportWrapper : public RefCounted<TransportWrapper> { … };
struct SavedMessage { … };
class InProcessTransport
: public ObjectImpl<InProcessTransport, Object::kTransport> { … };
IpczResult IPCZ_API CreateTransports(IpczDriverHandle transport0,
IpczDriverHandle transport1,
uint32_t flags,
const void* options,
IpczDriverHandle* new_transport0,
IpczDriverHandle* new_transport1) { … }
IpczResult IPCZ_API ActivateTransport(IpczDriverHandle transport,
IpczHandle listener,
IpczTransportActivityHandler handler,
uint32_t flags,
const void* options) { … }
IpczResult IPCZ_API DeactivateTransport(IpczDriverHandle transport,
uint32_t flags,
const void* options) { … }
IpczResult IPCZ_API Transmit(IpczDriverHandle transport,
const void* data,
size_t num_bytes,
const IpczDriverHandle* handles,
size_t num_handles,
uint32_t flags,
const void* options) { … }
}
const IpczDriver kSyncReferenceDriver = …;
}