blob: b9526bf0f9bdc087a974540aef2cd26c7069471a [file] [log] [blame]
Elliott Hughes70c82042011-05-11 16:12:36 -07001/*
2 * Copyright (C) 2011 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Elliott Hughes5d930ca2014-04-23 17:53:37 -070017package android.system;
Elliott Hughes70c82042011-05-11 16:12:36 -070018
19import java.io.FileDescriptor;
Elliott Hughesfe77f812014-04-29 17:59:30 -070020import libcore.util.Objects;
Elliott Hughes70c82042011-05-11 16:12:36 -070021
22/**
23 * Corresponds to C's {@code struct pollfd} from
24 * <a href="http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/poll.h.html">&lt;poll.h&gt;</a>
Elliott Hughes5d930ca2014-04-23 17:53:37 -070025 *
26 * @hide
Elliott Hughes70c82042011-05-11 16:12:36 -070027 */
28public final class StructPollfd {
Elliott Hughesfe77f812014-04-29 17:59:30 -070029 /** The file descriptor to poll. */
30 public FileDescriptor fd;
Elliott Hughes70c82042011-05-11 16:12:36 -070031
Elliott Hughesfe77f812014-04-29 17:59:30 -070032 /**
33 * The events we're interested in. POLLIN corresponds to being in select(2)'s read fd set,
34 * POLLOUT to the write fd set.
35 */
36 public short events;
Elliott Hughes70c82042011-05-11 16:12:36 -070037
Elliott Hughesfe77f812014-04-29 17:59:30 -070038 /** The events that actually happened. */
39 public short revents;
Elliott Hughes70c82042011-05-11 16:12:36 -070040
Elliott Hughesfe77f812014-04-29 17:59:30 -070041 /**
42 * A non-standard extension that lets callers conveniently map back to the object
43 * their fd belongs to. This is used by Selector, for example, to associate each
44 * FileDescriptor with the corresponding SelectionKey.
45 */
46 public Object userData;
Elliott Hughes70c82042011-05-11 16:12:36 -070047
Elliott Hughesfe77f812014-04-29 17:59:30 -070048 @Override public String toString() {
49 return Objects.toString(this);
50 }
Elliott Hughes70c82042011-05-11 16:12:36 -070051}