/**
** Copyright (C) SAS Institute, All rights reserved.
** General Public License: http://www.opensource.org/licenses/gpl-license.php
**/
package org.safs.sockets;
import java.util.Properties;
/**
* Interface definition for a local SocketProtocol Runner to
* receive asynchronous notification of AbstractProtocolRunner events and messages from a remote
* SocketProtocol Runner.
*
* @author Carl Nagle, SAS Institute, Inc.
*/
public interface SocketProtocolListener extends ConnectionListener {
public static final String DEFAULT_NAME = "SocketsTCPMessenger";
/**
* Remote client has issued the READY event
*/
public void onReceiveReady();
/**
* Remote client has issued the RUNNING event--usually resulting from a DISPATCH event.
*/
public void onReceiveRunning();
/**
* Remote client has issued the RESULT event and is returning a simple statuscode and statusinfo response.
* @param rc -- int statuscode
* @param info -- String statusinfo. Can be null. Can be an empty string.
*/
public void onReceiveResult(int rc, String info);
/**
* Remote client has issued the RESULT event and is returning result information in Properties.
* @param Properties list containing the results properties.
*/
public void onReceiveResultProperties(Properties result);
/**
* Remote client has thrown/issued an Exception message.
* @param message
*/
public void onReceiveException(String message);
/**
* Remote client has sent an arbitrary message.
* This is for custom communication between an engine and a remote client.
* @param message
*/
public void onReceiveMessage(String message);
}