ActionMessenger.java

00001 package edu.stanford.hci.r3.actions.remote;
00002 
00003 import java.io.BufferedOutputStream;
00004 import java.io.IOException;
00005 import java.net.Socket;
00006 
00007 import edu.stanford.hci.r3.actions.R3Action;
00008 import edu.stanford.hci.r3.util.DebugUtils;
00009 import edu.stanford.hci.r3.util.SystemUtils;
00010 
00023 public abstract class ActionMessenger {
00024 
00028         protected static final String LINE_SEPARATOR = SystemUtils.LINE_SEPARATOR;
00029 
00033         private BufferedOutputStream bos;
00034 
00038         private Socket sock;
00039 
00043         public ActionMessenger(Socket s) {
00044                 try {
00045                         sock = s;
00046                         bos = new BufferedOutputStream(s.getOutputStream());
00047                 } catch (IOException e) {
00048                         e.printStackTrace();
00049                 }
00050         }
00051 
00055         public void destroy() {
00056                 try {
00057                         if (bos != null) {
00058                                 bos.close();
00059                                 bos = null;
00060                         }
00061                         if (sock != null) {
00062                                 sock.close();
00063                                 sock = null;
00064                         }
00065                 } catch (IOException ioe) {
00066                         DebugUtils.println("Got exception when destroying messenger: "
00067                                         + ioe.getLocalizedMessage());
00068                 }
00069         }
00070 
00077         public abstract byte[] getMessage(R3Action action);
00078 
00084         public void sendAction(R3Action action) {
00085                 try {
00086                         bos.write(getMessage(action));
00087                         bos.flush();
00088                 } catch (IOException e) {
00089                         e.printStackTrace();
00090                 }
00091         }
00092 
00093 }

Generated on Sat Apr 14 18:21:33 2007 for R3 Paper Toolkit by  doxygen 1.4.7