Class Probe


  • public class Probe
    extends java.lang.Object
    Discovers all UDP-based members running on a certain mcast address
    • Constructor Summary

      Constructors 
      Constructor Description
      Probe()  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private boolean checkDuplicateResponse​(java.lang.String response)  
      protected void fetchAddressesAndInvoke​(java.net.SocketAddress dest, java.net.InetAddress bind_addr, java.lang.String request, java.lang.String passcode, long timeout, int ttl, boolean udp, boolean tcp)  
      protected static void help()  
      static void main​(java.lang.String[] args)  
      private static boolean matches​(java.lang.String response, java.lang.String match)  
      private static java.lang.String parseAddress​(java.lang.String response)  
      protected static java.util.Collection<java.net.SocketAddress> parseAddresses​(java.lang.String input, int port)
      Returns a list of addr:port responses.
      void start​(java.util.List<java.net.InetAddress> addrs, java.net.InetAddress bind_addr, int port, int ttl, long timeout, java.lang.String request, java.lang.String match, boolean weed_out_duplicates, java.lang.String passcode, boolean udp, boolean tcp)  
      boolean verbose()  
      Probe verbose​(boolean b)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • senders

        protected final java.util.Set<java.lang.String> senders
      • weed_out_duplicates

        protected boolean weed_out_duplicates
      • match

        protected java.lang.String match
      • thread_pool

        protected java.util.concurrent.ExecutorService thread_pool
      • matched

        protected final java.util.concurrent.atomic.AtomicInteger matched
      • not_matched

        protected final java.util.concurrent.atomic.AtomicInteger not_matched
      • count

        protected final java.util.concurrent.atomic.AtomicInteger count
      • verbose

        protected boolean verbose
    • Constructor Detail

      • Probe

        public Probe()
    • Method Detail

      • verbose

        public boolean verbose()
      • verbose

        public Probe verbose​(boolean b)
      • start

        public void start​(java.util.List<java.net.InetAddress> addrs,
                          java.net.InetAddress bind_addr,
                          int port,
                          int ttl,
                          long timeout,
                          java.lang.String request,
                          java.lang.String match,
                          boolean weed_out_duplicates,
                          java.lang.String passcode,
                          boolean udp,
                          boolean tcp)
                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • fetchAddressesAndInvoke

        protected void fetchAddressesAndInvoke​(java.net.SocketAddress dest,
                                               java.net.InetAddress bind_addr,
                                               java.lang.String request,
                                               java.lang.String passcode,
                                               long timeout,
                                               int ttl,
                                               boolean udp,
                                               boolean tcp)
                                        throws java.io.IOException
        Throws:
        java.io.IOException
      • parseAddresses

        protected static java.util.Collection<java.net.SocketAddress> parseAddresses​(java.lang.String input,
                                                                                     int port)
                                                                              throws java.lang.Exception
        Returns a list of addr:port responses. Counting the occurrences of a given address, e.g. 3 assumes we have 3 processes on the same host, yielding requests to host:port, host:port+1 and host_port+3. This is a quick-n-dirty scheme and it will fail when processes don't occupy adjacent ports.
        Throws:
        java.lang.Exception
      • checkDuplicateResponse

        private boolean checkDuplicateResponse​(java.lang.String response)
      • parseAddress

        private static java.lang.String parseAddress​(java.lang.String response)
      • matches

        private static boolean matches​(java.lang.String response,
                                       java.lang.String match)
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        Throws:
        java.lang.Exception
      • help

        protected static void help()