package org.jacorb.test.bugs.bugjac181;
import org.jacorb.orb.iiop.IIOPConnection;
import org.jacorb.orb.listener.TCPConnectionEvent;
import org.jacorb.orb.listener.TCPConnectionListener;
/**
* <code>TCPListener</code> is a simple implementation of a listener.
*
* @author Nick Cross
*/
public class TCPListener implements TCPConnectionListener
{
private static boolean listenerOpen = false;
private static boolean listenerClose = false;
private static boolean isCorrectType = true;
/**
* <code>connectionOpened</code> will be called whenever a socket
* is opened.
*
* @param e a <code>TCPConenctionEvent</code> value
*/
public void connectionOpened(TCPConnectionEvent e)
{
validateEvent(e);
setListenerOpen(true);
}
/**
* <code>connectionClosed</code> will be called whenever a socket
* is closed.
*
* @param e a <code>TCPConenctionEvent</code> value
*/
public void connectionClosed(TCPConnectionEvent e)
{
validateEvent(e);
setListenerClose(true);
}
public static synchronized boolean isListenerClose()
{
return listenerClose;
}
public static synchronized void setListenerClose(boolean listenerClose)
{
TCPListener.listenerClose = listenerClose;
}
public static synchronized boolean isListenerOpen()
{
return listenerOpen;
}
public static synchronized void setListenerOpen(boolean listenerOpen)
{
TCPListener.listenerOpen = listenerOpen;
}
public static synchronized void reset()
{
listenerClose = false;
listenerOpen = false;
isCorrectType = true;
}
public boolean isListenerEnabled()
{
return true;
}
public static boolean isEventOfCorrectType()
{
return isCorrectType;
}
private void validateEvent(TCPConnectionEvent e)
{
if (! (e.getSource() instanceof IIOPConnection) )
{
isCorrectType = false;
}
}
}