mirror of
https://gcc.gnu.org/git/gcc.git
synced 2025-01-25 22:04:07 +08:00
* java/net/DatagramSocketImpl.java: Merge with Classpath
From-SVN: r46127
This commit is contained in:
parent
48c8b0becf
commit
0d47f08629
@ -1,3 +1,7 @@
|
||||
2001-10-08 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* java/net/DatagramSocketImpl.java: Merge with Classpath
|
||||
|
||||
2001-10-07 Mark Wielaard <mark@klomp.org>
|
||||
|
||||
* java/net/URLDecoder.java: Remerge with Classpath
|
||||
|
@ -1,60 +1,193 @@
|
||||
// DatagramSocketImpl.java - Abstract datagram socket implementation.
|
||||
/* DatagramSocketImpl.java -- Abstract class for UDP socket implementations
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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. */
|
||||
|
||||
This software is copyrighted work licensed under the terms of the
|
||||
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||
details. */
|
||||
|
||||
package java.net;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.FileDescriptor;
|
||||
|
||||
/**
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
* @date May 3, 1999.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Written using on-line Java Platform 1.2 API Specification, as well
|
||||
* as "The Java Class Libraries", 2nd edition (Addison-Wesley, 1998).
|
||||
* Status: Believed complete and correct.
|
||||
*/
|
||||
|
||||
/**
|
||||
* This abstract class models a datagram socket implementation. An
|
||||
* actual implementation class would implement these methods, probably
|
||||
* via redirecting them to native code.
|
||||
*
|
||||
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||
* @author Warren Levy <warrenl@cygnus.com>
|
||||
*/
|
||||
public abstract class DatagramSocketImpl implements SocketOptions
|
||||
{
|
||||
|
||||
/**
|
||||
* The local port to which this socket is bound
|
||||
*/
|
||||
protected int localPort;
|
||||
|
||||
/**
|
||||
* The FileDescriptor object for this object.
|
||||
*/
|
||||
protected FileDescriptor fd;
|
||||
|
||||
/**
|
||||
* Default, no-argument constructor for subclasses to call.
|
||||
*/
|
||||
public DatagramSocketImpl()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* This method binds the socket to the specified local port and address.
|
||||
*
|
||||
* @param lport The port number to bind to
|
||||
* @param laddr The address to bind to
|
||||
*
|
||||
* @exception SocketException If an error occurs
|
||||
*/
|
||||
protected abstract void bind(int lport, InetAddress laddr)
|
||||
throws SocketException;
|
||||
|
||||
/**
|
||||
* This methods closes the socket
|
||||
*/
|
||||
protected abstract void close();
|
||||
|
||||
/**
|
||||
* Creates a new datagram socket.
|
||||
*
|
||||
* @exception SocketException If an error occurs
|
||||
*/
|
||||
protected abstract void create() throws SocketException;
|
||||
|
||||
/**
|
||||
* Takes a peek at the next packet received in order to retrieve the
|
||||
* address of the sender
|
||||
*
|
||||
* @param i The InetAddress to fill in with the information about the
|
||||
* sender if the next packet
|
||||
*
|
||||
* @return The port number of the sender of the packet
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract int peek(InetAddress i) throws IOException;
|
||||
|
||||
/**
|
||||
* Transmits the specified packet of data to the network. The destination
|
||||
* host and port should be encoded in the packet.
|
||||
*
|
||||
* @param p The packet to send
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract void send(DatagramPacket p) throws IOException;
|
||||
|
||||
/**
|
||||
* Receives a packet of data from the network Will block until a packet
|
||||
* arrives. The packet info in populated into the passed in
|
||||
* DatagramPacket object.
|
||||
*
|
||||
* @param p A place to store the incoming packet.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract void receive(DatagramPacket p) throws IOException;
|
||||
|
||||
/**
|
||||
* Sets the Time to Live (TTL) setting on this socket to the specified
|
||||
* value. <b>Use <code>setTimeToLive(int)</code></b> instead.
|
||||
*
|
||||
* @param ttl The new Time to Live value
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
* @deprecated
|
||||
*/
|
||||
protected abstract void setTTL(byte ttl) throws IOException;
|
||||
|
||||
/**
|
||||
* This method returns the current Time to Live (TTL) setting on this
|
||||
* socket. <b>Use <code>getTimeToLive()</code></b> instead.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
* @deprecated
|
||||
*/
|
||||
protected abstract byte getTTL() throws IOException;
|
||||
|
||||
/**
|
||||
* Sets the Time to Live (TTL) setting on this socket to the specified
|
||||
* value.
|
||||
*
|
||||
* @param ttl The new Time to Live value
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract void setTimeToLive(int ttl) throws IOException;
|
||||
|
||||
/**
|
||||
* This method returns the current Time to Live (TTL) setting on this
|
||||
* socket.
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract int getTimeToLive() throws IOException;
|
||||
|
||||
/**
|
||||
* Causes this socket to join the specified multicast group
|
||||
*
|
||||
* @param inetaddr The multicast address to join with
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract void join(InetAddress inetaddr) throws IOException;
|
||||
|
||||
/**
|
||||
* Causes the socket to leave the specified multicast group.
|
||||
*
|
||||
* @param inetaddr The multicast address to leave
|
||||
*
|
||||
* @exception IOException If an error occurs
|
||||
*/
|
||||
protected abstract void leave(InetAddress inetaddr) throws IOException;
|
||||
|
||||
public abstract Object getOption(int optID) throws SocketException;
|
||||
public abstract void setOption(int optID, Object value)
|
||||
throws SocketException;
|
||||
|
||||
/**
|
||||
* Returns the FileDescriptor for this socket
|
||||
*/
|
||||
protected FileDescriptor getFileDescriptor()
|
||||
{
|
||||
return fd;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the local port this socket is bound to
|
||||
*/
|
||||
protected int getLocalPort()
|
||||
{
|
||||
return localPort;
|
||||
|
Loading…
Reference in New Issue
Block a user