changeset 146:20beee6ca31a

*** empty log message ***
author pin
date Wed, 27 Aug 2008 23:14:39 +0900
parents ec625f8f8d7c
children 4ff68518e9ca
files rep/SessionManager.java
diffstat 1 files changed, 13 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/rep/SessionManager.java	Wed Aug 27 23:01:40 2008 +0900
+++ b/rep/SessionManager.java	Wed Aug 27 23:14:39 2008 +0900
@@ -20,7 +20,10 @@
 
 import rep.channel.REPServerSocketChannel;
 import rep.channel.REPSocketChannel;
+import rep.channel.SelectionKeySimulator;
+import rep.channel.SelectorSimulator;
 import rep.handler.PacketSet;
+import rep.handler.REPHandler;
 import rep.simulator.REPSelector;
 import rep.xml.SessionXMLDecoder;
 import rep.xml.SessionXMLEncoder;
@@ -62,7 +65,6 @@
 	}
 	
 	public void openSelector() throws IOException{
-		//selector = Selector.open();
 		selector = REPSelector.open();
 	}
 	
@@ -91,23 +93,25 @@
 	}
 
 	private void select() throws IOException {
-		for(SelectionKey key : selector.selectedKeys()){
+		for(SelectionKeySimulator key : selector.selectedKeys()){
 			if(key.isAcceptable()){
 				/*** serverChannelはenableになったSelectionKeyのchannel ***/
-				ServerSocketChannel serverChannel = (ServerSocketChannel)key.channel();
-				SocketChannel channel = serverChannel.accept();	//keyからchannelを取って、accept 
+				REPServerSocketChannel serverChannel = (REPServerSocketChannel)key.channel();
+				REPSocketChannel channel = serverChannel.accept();	//keyからchannelを取って、accept 
 				registerChannel (selector, channel, SelectionKey.OP_READ);
 				channel = null;
 
 				
 			}else if(key.isReadable()){
 				
-				REPSocketChannel<REPCommand> channel = (REPSocketChannel<REPCommand>)key.channel();
-				REPPacketReceive receive = new REPPacketReceive(channel);
-				receive.setkey(key);
-				REPCommand receivedCommand = receive.unpackUConv();
-				manage(channel, receivedCommand);
+//				REPSocketChannel<REPCommand> channel = (REPSocketChannel<REPCommand>)key.channel();
+//				REPPacketReceive receive = new REPPacketReceive(channel);
+//				receive.setkey(key);
+//				REPCommand receivedCommand = receive.unpackUConv();
+//				manage(channel, receivedCommand);
 				
+				REPHandler handler = (REPHandler)key.attachment();
+				handler.handle(key);
 				
 			}else if(key.isConnectable()){
 				System.out.println("Connectable");