KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > sapia > ubik > rmi > server > transport > udp > UdpRmiConnection


1 package org.sapia.ubik.rmi.server.transport.udp;
2
3 import org.sapia.ubik.net.udp.ObjectStreamFactory;
4 import org.sapia.ubik.net.udp.UDPConnection;
5 import org.sapia.ubik.net.udp.UDPServerAddress;
6 import org.sapia.ubik.rmi.server.VmId;
7 import org.sapia.ubik.rmi.server.transport.MarshalOutputStream;
8 import org.sapia.ubik.rmi.server.transport.RmiConnection;
9
10 import java.io.ByteArrayOutputStream JavaDoc;
11 import java.io.IOException JavaDoc;
12 import java.io.ObjectOutputStream JavaDoc;
13 import java.io.OutputStream JavaDoc;
14
15 import java.net.DatagramPacket JavaDoc;
16 import java.net.DatagramSocket JavaDoc;
17
18 import java.rmi.RemoteException JavaDoc;
19
20
21 /**
22  * @author Yanick Duchesne
23  * 17-Jun-2003
24  */

25 public class UdpRmiConnection extends UDPConnection implements RmiConnection {
26   private ObjectStreamFactory _fac = new UdpObjectStreamFactory();
27
28   /**
29    * Constructor for UdpRmiConnection.
30    * @param addr
31    * @param bufsz
32    * @param timeout
33    */

34   public UdpRmiConnection(UDPServerAddress addr, int bufsz, int timeout) {
35     super(addr, bufsz, timeout);
36   }
37
38   /**
39    * Constructor for UdpRmiConnection.
40    * @param localServer
41    * @param pack
42    * @param bufsz
43    * @param timeout
44    */

45   public UdpRmiConnection(DatagramSocket JavaDoc localServer, DatagramPacket JavaDoc pack,
46     int bufsz, int timeout) {
47     super(localServer, pack, bufsz, timeout);
48   }
49
50   /**
51    * @see org.sapia.ubik.rmi.server.transport.RmiConnection#send(Object, VmId, String)
52    */

53   public void send(Object JavaDoc o, VmId associated, String JavaDoc transportType)
54     throws IOException JavaDoc, RemoteException JavaDoc {
55     ByteArrayOutputStream JavaDoc bos = new ByteArrayOutputStream JavaDoc(_bufsz);
56     MarshalOutputStream ous = (MarshalOutputStream) _fac.toOutput(bos);
57     ous.setUp(associated, transportType);
58     ous.writeObject(o);
59     ous.flush();
60     ous.close();
61     super.send(bos.toByteArray());
62   }
63
64   /**
65    * @see org.sapia.ubik.net.udp.UDPConnection#getFactory()
66    */

67   protected ObjectStreamFactory getFactory() {
68     return _fac;
69   }
70
71   /*////////////////////////////////////////////////////////////////////
72                                INNER CLASSES
73   ////////////////////////////////////////////////////////////////////*/

74   public static final class UdpObjectStreamFactory
75     implements ObjectStreamFactory {
76     /**
77      * @see org.sapia.ubik.net.udp.ObjectStreamFactory#toOutput(OutputStream)
78      */

79     public ObjectOutputStream JavaDoc toOutput(OutputStream os)
80       throws IOException JavaDoc {
81       return new MarshalOutputStream(os);
82     }
83   }
84 }
85
Popular Tags