|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectorg.acplt.oncrpc.OncRpcUdpSocketHelper
public class OncRpcUdpSocketHelper
Wraps JRE-specific networking code for UDP/IP-based client sockets. So much for compile once, make it unuseable everywhere.
The following JRE-dependent methods are wrapped and will just do nothing or return fake information on old JRE plattforms. The number after each method wrapper indicates the first JRE version supporting a particular feature:
The following methods have been around since JDK 1.1, so we do not need to wrap them as we will never support JDK 1.0 -- let it rest in piece(s):
| Field Summary | |
|---|---|
private java.lang.reflect.Method |
methodGetReceiveBufferSize
Method Socket.getReceiveBufferSize or null if not available
in the class library of a particular JRE. |
private java.lang.reflect.Method |
methodGetSendBufferSize
Method Socket.getSendBufferSize or null if not available
in the class library of a particular JRE. |
private java.lang.reflect.Method |
methodSetReceiveBufferSize
Method Socket.setReceiverBufferSize or null if not available
in the class library of a particular JRE. |
private java.lang.reflect.Method |
methodSetSendBufferSize
Method Socket.setSendBufferSize or null if not available
in the class library of a particular JRE. |
private java.net.DatagramSocket |
socket
The datagram socket for which we have to help out with some missing methods. |
| Constructor Summary | |
|---|---|
OncRpcUdpSocketHelper(java.net.DatagramSocket socket)
Creates a datagram socket and binds it to an arbitrary available port on the local host machine. |
|
| Method Summary | |
|---|---|
int |
getReceiveBufferSize()
Get size of receive buffer for this socket. |
int |
getSendBufferSize()
Get size of send buffer for this socket. |
protected void |
queryMethods()
Looks up methods of class DatagramSocket whether they are supported by the class libraries of the JRE we are currently executing on. |
void |
setReceiveBufferSize(int size)
Sets the socket's receive buffer size as a hint to the underlying transport layer to use appropriately sized I/O buffers. |
void |
setSendBufferSize(int size)
Sets the socket's send buffer size as a hint to the underlying transport layer to use appropriately sized I/O buffers. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
private java.net.DatagramSocket socket
private java.lang.reflect.Method methodSetSendBufferSize
null if not available
in the class library of a particular JRE.
private java.lang.reflect.Method methodSetReceiveBufferSize
null if not available
in the class library of a particular JRE.
private java.lang.reflect.Method methodGetSendBufferSize
null if not available
in the class library of a particular JRE.
private java.lang.reflect.Method methodGetReceiveBufferSize
null if not available
in the class library of a particular JRE.
| Constructor Detail |
|---|
public OncRpcUdpSocketHelper(java.net.DatagramSocket socket)
| Method Detail |
|---|
public void setSendBufferSize(int size)
throws java.net.SocketException
size - The size to which to set the send buffer size. This value
must be greater than 0.
java.net.SocketException - if the socket's send buffer size could not
be set, because the transport layer decided against accepting the
new buffer size.
java.lang.IllegalArgumentException - if size is 0 or negative.
public int getSendBufferSize()
throws java.net.SocketException
java.net.SocketException - If the transport layer could not be queried
for the size of this socket's send buffer.
public void setReceiveBufferSize(int size)
throws java.net.SocketException
size - The size to which to set the receive buffer size. This value
must be greater than 0.
java.net.SocketException - if the socket's receive buffer size could not
be set, because the transport layer decided against accepting the
new buffer size.
java.lang.IllegalArgumentException - if size is 0 or negative.
public int getReceiveBufferSize()
throws java.net.SocketException
java.net.SocketException - If the transport layer could not be queried
for the size of this socket's receive buffer.protected void queryMethods()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||