Home | History | Annotate | Download | only in strprotocol
      1 package org.testng.remote.strprotocol;
      2 
      3 import java.io.IOException;
      4 import java.net.SocketException;
      5 import java.net.SocketTimeoutException;
      6 
      7 public interface IMessageSender {
      8 
      9   void connect() throws IOException;
     10 
     11   /**
     12    * Initialize the receiver.
     13    * the underlying socket server will be polling until a first client connect.
     14    *
     15    * @throws SocketException This exception will be thrown if a connection
     16    * to the remote TestNG instance could not be established after ten
     17    * seconds.
     18    */
     19   void initReceiver() throws SocketTimeoutException;
     20 
     21   /**
     22    * Stop the receiver.
     23    * it provides a way that allow the API invoker to stop the receiver,
     24    * e.g. break from a dead while loop
     25    */
     26   void stopReceiver();
     27 
     28   void sendMessage(IMessage message) throws Exception;
     29 
     30   /**
     31    * Will return null or throw EOFException when the connection has been severed.
     32    */
     33   IMessage receiveMessage() throws Exception;
     34 
     35   void shutDown();
     36 
     37   // These two methods should probably be in a separate class since they should all be
     38   // the same for implementers of this interface.
     39   void sendAck();
     40 
     41   void sendStop();
     42 }
     43