blob: 920dcefb412cb61c014924c85d83b97e49404f81 [file] [log] [blame]
package org.testng.remote.strprotocol;
import org.testng.TestNGException;
import org.testng.remote.RemoteTestNG;
import java.io.IOException;
import java.net.SocketTimeoutException;
/**
* Central class to connect to the host and send message.
*
* @author Cedric Beust <cedric@beust.com>
*/
public class MessageHub {
private boolean m_debug = false;
private IMessageSender m_messageSender;
public MessageHub(IMessageSender messageSender) {
m_messageSender = messageSender;
}
/**
* Starts the connection.
*
* @return <TT>true</TT> if the connection was successful, <TT>false</TT> otherwise
* @throws TestNGException if an exception occurred while establishing the connection
*/
public void connect() throws IOException {
m_messageSender.connect();
}
/**
* Shutsdown the connection to the remote test listener.
*/
public void shutDown() {
m_messageSender.shutDown();
}
public void sendMessage(IMessage message) {
try {
m_messageSender.sendMessage(message);
} catch (Exception e) {
e.printStackTrace();
}
}
public IMessage receiveMessage() {
IMessage result = null;
try {
result = m_messageSender.receiveMessage();
m_messageSender.sendAck();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
private static void p(String msg) {
if (RemoteTestNG.isVerbose()) {
System.out.println("[StringMessageSenderHelper] " + msg); //$NON-NLS-1$
}
}
public void setDebug(boolean debug) {
m_debug = debug;
}
public void initReceiver() throws SocketTimeoutException {
m_messageSender.initReceiver();
}
public IMessageSender getMessageSender() {
return m_messageSender;
}
}