/* * Copyright (C) 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package android.system; import libcore.util.NonNull; import libcore.util.Nullable; import java.net.SocketAddress; import java.nio.ByteBuffer; /** * Corresponds to C's {@code struct msghdr} * */ public final class StructMsghdr{ /** * Optional address. *

Sendmsg: Caller must populate to specify the target address for a datagram, or pass * {@code null} to send to the destination of an already-connected socket. * Recvmsg: Populated by the system to specify the source address. */ @Nullable public SocketAddress msg_name; /** Scatter/gather array */ @NonNull public final ByteBuffer[] msg_iov; /** Ancillary data */ @Nullable public StructCmsghdr[] msg_control; /** Flags on received message. */ public int msg_flags; /** * Constructs an instance with the given field values */ public StructMsghdr(@Nullable SocketAddress msg_name, @NonNull ByteBuffer[] msg_iov, @Nullable StructCmsghdr[] msg_control, int msg_flags) { this.msg_name = msg_name; this.msg_iov = msg_iov; this.msg_control = msg_control; this.msg_flags = msg_flags; } }