1336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpackage org.testng.remote;
2336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
3336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.SuiteRunner;
4336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.internal.Utils;
5336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.internal.remote.SlavePool;
669e715ffa3624f1dd4b1bc55cb8919d25dc732b3gkorlandimport org.testng.remote.adapter.RemoteResultListener;
7336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustimport org.testng.xml.XmlSuite;
8336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
90f7e671c94aeedee2fbc796b3318d44b0297b6cdnullinimport java.io.IOException;
100f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin
11336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beustpublic class RemoteWorker {
1269e715ffa3624f1dd4b1bc55cb8919d25dc732b3gkorland  protected RemoteResultListener m_listener;
13336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  private SlavePool m_slavePool;
14336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
1569e715ffa3624f1dd4b1bc55cb8919d25dc732b3gkorland  public RemoteWorker(RemoteResultListener listener, SlavePool slavePool) {
1669e715ffa3624f1dd4b1bc55cb8919d25dc732b3gkorland    m_listener = listener;
17336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    m_slavePool = slavePool;
18336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
190f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin
20336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  protected SlavePool getSlavePool() {
21336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    return m_slavePool;
22336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
230f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin
24336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  protected SuiteRunner sendSuite(ConnectionInfo ci, XmlSuite suite)
250f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin    throws IOException, ClassNotFoundException
26336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  {
270f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin    log("Sending " + suite.getName() + " to "
28336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust        + ci.getSocket().getInetAddress().getCanonicalHostName() + ":"
29336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust        + ci.getSocket().getRemoteSocketAddress());
30336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    ci.getOos().writeObject(suite);
31336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    ci.getOos().flush();
32336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    SuiteRunner result = (SuiteRunner) ci.getOis().readObject();
33336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    log("Received results for " + result.getName());
34336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    return result;
35336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
360f7e671c94aeedee2fbc796b3318d44b0297b6cdnullin
37336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  private void log(String string) {
38336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust    Utils.log("", 2, string);
39336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust  }
40336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
41336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust
42336f0ef401e9f564b8dc99d601ac80e8891ac2c1Cédric Beust}
43