diff rep/channel/REPSocketChannel.java @ 147:4ff68518e9ca

*** empty log message ***
author kent
date Wed, 27 Aug 2008 23:38:21 +0900
parents ec625f8f8d7c
children 4cfed12aa3aa
line wrap: on
line diff
--- a/rep/channel/REPSocketChannel.java	Wed Aug 27 23:14:39 2008 +0900
+++ b/rep/channel/REPSocketChannel.java	Wed Aug 27 23:38:21 2008 +0900
@@ -14,10 +14,20 @@
 public class REPSocketChannel<P> extends SelectableChannel{
 
 	private SocketChannel sc;
+	private REPUnpack<P> unpack;
+	private REPPack<P> pack;
 
 	public REPSocketChannel(SocketChannel channel) {
 		sc = channel;
 	}
+	
+	public void setUnpack(REPUnpack<P> _unpack){
+		unpack = _unpack;
+	}
+	public void setPack(REPPack<P> _pack){
+		pack = _pack;
+	}
+	
 
 	@Override
 	public Object blockingLock() {
@@ -84,14 +94,19 @@
 		return null;
 	}
 	
-	public P read(){
-		// TODO
-		return null;
-		
+	public P read() throws IOException{
+		return unpack.unpackUConv(this);
 	}
 	public boolean write(P p){
-		return false;
-		//
+		ByteBuffer bb = pack.packUConv(p);
+		try {
+			while (bb.remaining() > 0 ){
+				sc.write(bb);
+			}
+			return true;
+		} catch (IOException e) {
+			return false;
+		}
 	}
 
 	public static <T> REPSocketChannel<T> create() throws IOException {