1 21 22 package org.armedbear.lisp; 23 24 import java.net.Socket ; 25 26 public final class SocketStream extends TwoWayStream 27 { 28 private final Socket socket; 29 30 public SocketStream(Socket socket, Stream in, Stream out) 31 { 32 super(in, out); 33 this.socket = socket; 34 } 35 36 public LispObject typeOf() 37 { 38 return Symbol.SOCKET_STREAM; 39 } 40 41 public LispClass classOf() 42 { 43 return BuiltInClass.SOCKET_STREAM; 44 } 45 46 public LispObject typep(LispObject type) throws ConditionThrowable 47 { 48 if (type == Symbol.SOCKET_STREAM) 49 return T; 50 if (type == BuiltInClass.SOCKET_STREAM) 51 return T; 52 return super.typep(type); 53 } 54 55 public LispObject close(LispObject abort) throws ConditionThrowable 56 { 57 try { 58 socket.close(); 59 setOpen(false); 60 return T; 61 } catch (Exception e) { 62 return signal(new LispError(e.getMessage())); 63 } 64 } 65 66 public String toString() 67 { 68 return unreadableString("SOCKET-STREAM"); 69 } 70 } 71 | Popular Tags |