View Javadoc

1   /*
2    * Created on Nov 7, 2003
3    */
4   package org.neo.swarm.interceptor.tcp;
5   
6   import java.io.Serializable;
7   import java.net.InetAddress;
8   
9   import org.neo.swarm.core.aop.Aspect;
10  import org.neo.swarm.core.aop.AspectComponent;
11  import org.neo.swarm.core.aop.silc.comp.MethodInterceptor;
12  import org.neo.swarm.core.aop.silc.comp.Perspective;
13  import org.neo.swarm.core.aop.silc.comp.Pointcut;
14  import org.neo.swarm.core.aop.silc.comp.RegexPointCut;
15  import org.neo.swarm.util.network.tcp.client.TcpSenderFactoryI;
16  import org.neo.swarm.util.serialize.Serializer;
17  
18  /***
19   * ClientSide that uses a TCP sender to pass messages off to the server. This
20   * represents the last part of a remote-serializable interceptor stack.
21   * 
22   * @author neil.avery
23   */
24  public class TcpClient implements Serializable, Aspect {
25  
26      Pointcut pointcut = new RegexPointCut(".*");
27      MethodInterceptor interceptor;
28  
29      public TcpClient(InetAddress host, int port, TcpSenderFactoryI tcpFactory, Serializer serializer) {
30          this.interceptor = new TcpClientInterceptor( host,  port,  tcpFactory,  serializer);
31      }
32  
33      public void advise(AspectComponent componentInstance) {
34          pointcut.advise(Perspective.REMOTE, componentInstance, interceptor);
35      }
36  
37      public MethodInterceptor getInterceptor() {
38          return interceptor;
39      }
40  
41      public void replaceInterceptor(MethodInterceptor interceptor) {
42          this.interceptor = interceptor;
43      }
44  }