// Copyright 2019 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.

library fuchsia.io2;

using zx;

/// A node for streaming unstructured data.
/// No pipe-specific methods are provided by this protocol. The client should
/// access the pipe via the socket object returned from the `PipeInfo` member
/// in [`fuchsia.io2/Representation`].
protocol Pipe {
    compose Node;
};

/// The pipe representation of a node.
/// A pipe is a data streaming interface, commonly used for standard in/out.
/// There is no universal requirement as to if it is uni- or bi-directional.
/// The selection of this variant in [`Representation`] implies that the
/// connection speaks the [`fuchsia.io2/Pipe`] protocol.
resource table PipeInfo {
    /// The backing socket transport for the pipe.
    /// The rights on this socket should correspond to the rights on the
    /// node connection.
    1: zx.handle:SOCKET socket;
};
