blob: 55aafdf89f267f9ee2467f6840d0b6a8dee65d58 [file] [log] [blame]
// Copyright 2016 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef PERIDOT_LIB_SOCKET_SOCKET_PAIR_H_
#define PERIDOT_LIB_SOCKET_SOCKET_PAIR_H_
#include <src/lib/fxl/logging.h>
#include <src/lib/fxl/macros.h>
#include <lib/zx/socket.h>
namespace socket {
// SocketPair produces a pair of connected sockets.
class SocketPair {
public:
SocketPair();
~SocketPair();
zx::socket socket1;
zx::socket socket2;
private:
FXL_DISALLOW_COPY_AND_ASSIGN(SocketPair);
};
inline SocketPair::SocketPair() {
FXL_CHECK(zx::socket::create(0u, &socket1, &socket2) == ZX_OK);
}
inline SocketPair::~SocketPair() {}
} // namespace socket
#endif // PERIDOT_LIB_SOCKET_SOCKET_PAIR_H_