From cfcdbe54802c69a7d731d8e1f48b858fe73a4452 Mon Sep 17 00:00:00 2001 From: Mark Wielaard Date: Sun, 30 Sep 2001 18:04:38 +0000 Subject: DataInput.java: Merge with Classpath. * java/io/DataInput.java: Merge with Classpath. * java/io/DataOutput.java: Idem. * java/io/FilenameFilter.java: Idem. * java/io/Serializable.java: Idem. * java/lang/Cloneable.java: Idem. * java/lang/Comparable.java: Idem. * java/lang/Runnable.java: Idem. * java/lang/reflect/Member.java: Idem. * java/net/ContentHandlerFactory.java: Idem. * java/net/FileNameMap.java: Idem. * java/net/SocketImplFactory.java: Idem. * java/net/SocketOptions.java: Idem. * java/net/URLStreamHandlerFactory.java: Idem. From-SVN: r45910 --- libjava/java/net/SocketOptions.java | 151 +++++++++++++++++++++++++++++------- 1 file changed, 123 insertions(+), 28 deletions(-) (limited to 'libjava/java/net/SocketOptions.java') diff --git a/libjava/java/net/SocketOptions.java b/libjava/java/net/SocketOptions.java index d0e00d9..f83fb50 100644 --- a/libjava/java/net/SocketOptions.java +++ b/libjava/java/net/SocketOptions.java @@ -1,40 +1,135 @@ -// SocketOptions.java - Interface for get/set socket options. +/* SocketOptions.java -- Implements options for sockets (duh!) + Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation, Inc. -/* Copyright (C) 1999 Free Software Foundation +This file is part of GNU Classpath. - This file is part of libgcj. +GNU Classpath is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU Classpath is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. -This software is copyrighted work licensed under the terms of the -Libgcj License. Please consult the file "LIBGCJ_LICENSE" for -details. */ +You should have received a copy of the GNU General Public License +along with GNU Classpath; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA +02111-1307 USA. -package java.net; +As a special exception, if you link this library with other files to +produce an executable, this library does not by itself cause the +resulting executable to be covered by the GNU General Public License. +This exception does not however invalidate any other reasons why the +executable file might be covered by the GNU General Public License. */ -/** - * @author Warren Levy - * @date May 3, 1999. - */ +package java.net; /** * Written using on-line Java Platform 1.2 API Specification. * Status: Believed complete and correct. */ -public abstract interface SocketOptions +/** + * This interface is used by SocketImpl and + * DatagramSocketImpl to implement options + * on sockets. + * + * @since 1.2 + * + * @author Aaron M. Renn (arenn@urbanophile.com) + * @author Warren Levy + */ +public interface SocketOptions { - public static final int TCP_NODELAY = 0x1; - public static final int SO_BINDADDR = 0xF; - public static final int SO_REUSEADDR = 0x4; - public static final int IP_MULTICAST_IF = 0x10; - public static final int SO_LINGER = 0x80; - public static final int SO_TIMEOUT = 0x1006; - - // JDK1.2 - public static final int SO_SNDBUF = 0x1001; - - // JDK1.2 - public static final int SO_RCVBUF = 0x1002; - - public void setOption(int optID, Object value) throws SocketException; - public Object getOption(int optID) throws SocketException; -} + +/*************************************************************************/ + +/* + * Static Variables + */ + +/** + * Option id for the SO_LINGER value + */ +static final int SO_LINGER = 0x80; // 128 + +/** + * Option id for the SO_TIMEOUT value + */ +static final int SO_TIMEOUT = 0x1006; // 4102 + +/** + * Retrieve the local address to which the socket is bound. + */ +static final int SO_BINDADDR = 0x0F; // 15 + +/** + * Option id for the send buffer size + * @since 1.2 + */ +static final int SO_SNDBUF = 0x1001; // 4097 + +/** + * Option id for the receive buffer size + * @since 1.2 + */ +static final int SO_RCVBUF = 0x1002; // 4098 + +/** + * Sets the SO_REUSEADDR parameter on a socket + */ +static final int SO_REUSEADDR = 0x04; // 4 + +/** + * Option id for the TCP_NODELAY value + */ +static final int TCP_NODELAY = 0x01; // 1 + +/** + * Options id for the IP_MULTICAST_IF value + */ +static final int IP_MULTICAST_IF = 0x10; // 16 + +/*************************************************************************/ + +/* + * Interface Methods + */ + +/** + * Sets the specified option on a socket to the passed in object. For + * options that take an integer argument, the passed in object is an + * Integer. For options that are set to on or off, the + * value passed will be a Boolean. The option_id + * parameter is one of the defined constants in this interface. + * + * @param option_id The identifier of the option + * @param val The value to set the option to + * + * @exception SocketException If an error occurs + */ +void +setOption(int option_id, Object val) throws SocketException; + +/*************************************************************************/ + +/** + * Returns the current setting of the specified option. The + * Object returned will be an Integer for options + * that have integer values. For options that are set to on or off, a + * Boolean will be returned. The option_id + * is one of the defined constants in this interface. + * + * @param option_id The option identifier + * + * @return The current value of the option + * + * @exception SocketException If an error occurs + */ +Object +getOption(int option_id) throws SocketException; + +} // interface SocketOptions + -- cgit v1.1