/**
* $RCSfile$
* $Revision: $
* $Date: $
*
* Copyright (C) 2006 Jive Software. All rights reserved.
*
* This software is published under the terms of the GNU Public License (GPL),
* a copy of which is included in this distribution.
*/
package org.jivesoftware.multiplexer.net;
import org.jivesoftware.multiplexer.ConnectionManager;
import org.jivesoftware.multiplexer.PacketRouter;
import org.jivesoftware.multiplexer.ServerPort;
import org.jivesoftware.multiplexer.spi.ClientFailoverDeliverer;
import org.jivesoftware.multiplexer.spi.ServerRouter;
import org.jivesoftware.util.Log;
import java.io.IOException;
import java.net.Socket;
/**
* Factory of {@link SocketReader}. Currently only socket readers for clients are
* supported.
*
* @author Gaston Dombiak
*/
class SocketReaderFactory {
private static PacketRouter router = new ServerRouter();
private static String serverName = ConnectionManager.getInstance().getServerName();
static SocketReader createSocketReader(Socket sock, boolean isSecure, ServerPort serverPort,
boolean useBlockingMode) throws IOException {
if (serverPort.isClientPort()) {
SocketConnection conn =
new SocketConnection(new ClientFailoverDeliverer(), sock, isSecure);
return new ClientSocketReader(router, serverName, sock, conn, useBlockingMode);
} else {
Log.warn("Invalid socket reader was requested. Only clients are allowed to connect,");
return null;
}
}
}