1 16 17 package org.apache.catalina.cluster.tcp; 18 import org.apache.catalina.cluster.Member; 19 import java.net.InetAddress ; 20 21 26 public class IDataSenderFactory { 27 private IDataSenderFactory() { 28 } 29 public static final String SYNC_MODE="synchronous"; 30 public static final String ASYNC_MODE="asynchronous"; 31 public static final String POOLED_SYNC_MODE="pooled"; 32 public static final String FAST_ASYNC_QUEUE_MODE="fastasyncqueue"; 33 34 public synchronized static IDataSender getIDataSender(String mode, Member mbr) 35 throws java.io.IOException { 36 if (SYNC_MODE.equals(mode) ) 37 return new SocketSender(InetAddress.getByName(mbr.getHost()),mbr.getPort()); 38 else if ( ASYNC_MODE.equals(mode) ) 39 return new AsyncSocketSender(InetAddress.getByName(mbr.getHost()),mbr.getPort()); 40 else if ( FAST_ASYNC_QUEUE_MODE.equals(mode) ) 41 return new FastAsyncSocketSender(InetAddress.getByName(mbr.getHost()),mbr.getPort()); 42 else if (POOLED_SYNC_MODE.equals(mode) ) 43 return new PooledSocketSender(InetAddress.getByName(mbr.getHost()),mbr.getPort()); 44 else 45 throw new java.io.IOException ("Invalid replication mode="+mode); 46 } 47 48 public static String validateMode(String mode) { 49 if (SYNC_MODE.equals(mode) || 50 ASYNC_MODE.equals(mode) || 51 FAST_ASYNC_QUEUE_MODE.equals(mode) || 52 POOLED_SYNC_MODE.equals(mode) ) { 53 return null; 54 } else { 55 return "Replication mode has to be '"+SYNC_MODE+"', '" + FAST_ASYNC_QUEUE_MODE +"', '"+ASYNC_MODE+"' or '"+POOLED_SYNC_MODE+"'"; 56 } 57 } 58 59 60 } 61 | Popular Tags |