On 9 August 2010 22:42, Martin Sustrik <sustrik@250bpm.com> wrote:
gonzalo diethelm wrote:
>>> As always, just copy Sun's original implementation, implement
> getters
>>> and setters for every socket option:
>> +1
>
> Ok, but I seem to remember there was a point made about not adding
> separate interfaces for each socket option; this way, when new options
> are added, old code can be made aware of them without changes (or
> something to that effect). Perhaps this only applied to C code.
>
> So, if we go the full Java way, we would end up with the following
> methods:
>
>   void setSocketHWM(int hwm);
>   void setSocketSwap(int swap);
>   void setSocketAffinity(int affinity);
>   void setSocketIdentity(byte[] identity);
>   void setSocketSubscribe(byte[] subscribe);
>   void setSocketUnsubscribe(byte[] unsubscribe);
>   void setSocketRate(int rate);
>   void setSocketRecoveryInterval(int recovery_interval);
>   void setSocketMulticastLoop(boolean multicast_loop);
>   void setSocketSendBufferSize(int sndbuf);
>   void setSocketReceiveBufferSize(int rcvbuf);
>   void setSocketReceiveMore(boolean rcvmore);
>
>   int getSocketHWM();
>   int getSocketSwap();
>   int getSocketAffinity();
>   byte[] getSocketIdentity();
>   byte[] getSocketSubscribe();
>   byte[] getSocketUnsubscribe();
>   int getSocketRate();
>   int getSocketRecoveryInterval();
>   boolean getSocketMulticastLoop();
>   int getSocketSendBufferSize();
>   int getSocketReceiveBufferSize();
>   boolean getSocketReceiveMore();
>
> Thoughts?

What I saw on the page referenced by Steve looked like this:

       void setOption(int optID, Object val) throws SocketException;
       Object getOption(int optID) throws SocketException;

Isn't that sandard Java sockopt interface?


Perversely they are doing both, I read the article as that they have now introduced the type-safe API in 1.4.  I don't see the Object API listed in the documentation, so I presume it's now only the internal API,

http://download-llnw.oracle.com/javase/1.4.2/docs/api/java/net/Socket.html
http://download.oracle.com/javase/1.4.2/docs/api/java/net/ServerSocket.html

-- 
Steve-o