public static MulticastRequest decodeMulticastRequest(ByteBuffer buf) throws IOException {
  try {
    String host=getUtf(buf);
    int port=ushortToInt(buf.getShort());
    String[] groups=new String[ushortToInt(buf.getShort())];
    for (int i=0; i < groups.length; i++) {
      groups[i]=getUtf(buf);
    }
    ServiceID[] ids=new ServiceID[ushortToInt(buf.getShort())];
    for (int i=0; i < ids.length; i++) {
      long hi=buf.getLong();
      long lo=buf.getLong();
      ids[i]=new ServiceID(hi,lo);
    }
    return new MulticastRequest(host,port,groups,ids);
  }
 catch (  RuntimeException e) {
    throw new DiscoveryProtocolException(null,e);
  }
}

public static MulticastRequest decodeMulticastRequest ( ByteBuffer buf ) throws IOException { try { String host = getUtf ( buf ) ; int port = ushortToInt ( buf . getShort ( ) ) ; String [ ] groups = new String [ ushortToInt ( buf . getShort ( ) ) ] ; for ( int i = 0 ; i < groups . length ; i ++ ) { groups [ i ] = getUtf ( buf ) ; } ServiceID [ ] ids = new ServiceID [ ushortToInt ( buf . getShort ( ) ) ] ; for ( int i = 0 ; i < ids . length ; i ++ ) { long hi = buf . getLong ( ) ; long lo = buf . getLong ( ) ; ids [ i ] = new ServiceID ( hi , lo ) ; } return new MulticastRequest ( host , port , groups , ids ) ; } catch ( RuntimeException e ) { throw new DiscoveryProtocolException ( null , e ) ; } }
decodes multicast request according to the net . jini . discovery . plaintext format .
