changeset 31:593f915dd6ff JOINandPUT

for JOIN and PUT Testing
author pin
date Sat, 10 Nov 2007 12:52:24 +0900
parents e67b1cec9dbe
children d1c6cb6d9a2f
files rep/EditorList.java rep/REP.java rep/SessionList.java rep/SessionManager.java rep/SessionManagerList.java rep/gui/DefaultTableModelTest.java rep/gui/JTableTest.java
diffstat 7 files changed, 76 insertions(+), 23 deletions(-) [+]
line wrap: on
line diff
--- a/rep/EditorList.java	Fri Nov 09 19:45:19 2007 +0900
+++ b/rep/EditorList.java	Sat Nov 10 12:52:24 2007 +0900
@@ -63,4 +63,15 @@
 		}
 	}
 
+
+	public void sendPutAck(SocketChannel channel, REPCommand repCmd) {
+		REPPacketSend send = new REPPacketSend(channel);
+		send.send(repCmd);
+	}
+	
+	public void send(SocketChannel channel, REPCommand command){
+		REPPacketSend send = new REPPacketSend(channel);
+		send.send(command);
+	}
+
 }
--- a/rep/REP.java	Fri Nov 09 19:45:19 2007 +0900
+++ b/rep/REP.java	Sat Nov 10 12:52:24 2007 +0900
@@ -15,24 +15,24 @@
     public static final int REPCMD_REPLACE_ACK	= 14;
     public static final int SMCMD_JOIN		= 41;
     public static final int SMCMD_JOIN_ACK	= 42;
-    public static final int SMCMD_GET		= 43;
-    public static final int SMCMD_GET_ACK	= 44;
+    public static final int SMCMD_GET		= 43; //obsolete
+    public static final int SMCMD_GET_ACK	= 44; //obsolete
     public static final int SMCMD_PUT		= 45;
     public static final int SMCMD_PUT_ACK	= 46;
     public static final int SMCMD_SELECT	= 47;
     public static final int SMCMD_SELECT_ACK	= 48;
-    public static final int SMCMD_REGISTER	= 49;
-    public static final int SMCMD_REGISTER_ACK	= 50;
-    public static final int SMCMD_DEREGISTER	= 51;
-    public static final int SMCMD_DEREGISTER_ACK= 52;
+    public static final int SMCMD_REGISTER	= 49;		//obsolete
+    public static final int SMCMD_REGISTER_ACK	= 50;	//obsolete
+    public static final int SMCMD_DEREGISTER	= 51;	//obsolete
+    public static final int SMCMD_DEREGISTER_ACK= 52;	//obsolete
     public static final int SMCMD_QUIT		= 53;
     public static final int SMCMD_QUIT_ACK	= 54;
-    public static final int SMCMD_SESSION   = 60;
-    public static final int SMCMD_SESSION_ACK    = 61;
+    public static final int SMCMD_SESSION   = 60;		//obsolete
+    public static final int SMCMD_SESSION_ACK    = 61;	//obsolete
 	public static final int SMCMD_SM_JOIN   = 62;
 	public static final int SMCMD_SM_JOIN_ACK = 63;
 	public static final int SMCMD_UPDATE = 65;
 	public static final int SMCMD_UPDATE_ACK = 66;
-	public static final int SMCMD_UPDATE_UP = 67;
-	public static final int SMCMD_UPDATE_DOWN = 68;
+	public static final int SMCMD_UPDATE_UP = 67;		//obsolete
+	public static final int SMCMD_UPDATE_DOWN = 68;		//obsolete
 }
--- a/rep/SessionList.java	Fri Nov 09 19:45:19 2007 +0900
+++ b/rep/SessionList.java	Sat Nov 10 12:52:24 2007 +0900
@@ -15,10 +15,19 @@
 
 	private SocketChannel smchannel;
 	private boolean channelequals = false;
+	private LinkedList<Session> tmpSessionList = new LinkedList<Session>();
+	
+	public SessionList(){
+		makeDefaultSession();
+	}
 	
 	public void add(SocketChannel channel) {
 		
 	}
+	
+	public void makeDefaultSession(){
+		session3.put(0, new Session(0, null, null));
+	}
 
 	public int getEditorNumber() {
 		return 0;
@@ -146,4 +155,8 @@
 		send.send(new REPCommand(REP.SMCMD_SELECT, sid, 0, 0, 0, 0, ""));
 	}
 
+	public void addSession(SocketChannel channel, String string, int i) {
+		tmpSessionList.add(new Session(0, string, channel));
+	}
+
 }
--- a/rep/SessionManager.java	Fri Nov 09 19:45:19 2007 +0900
+++ b/rep/SessionManager.java	Sat Nov 10 12:52:24 2007 +0900
@@ -133,24 +133,36 @@
 				smList.sendJoin(repCmd);
 				//sessionmanagerGUI.setComboEditor(repCmd.eid, channel);
 			}
+			
+			/*** 各エディタのテスト用 ***/
+			repCmd.setCMD(REP.SMCMD_JOIN_ACK);
+			REPPacketSend sendJoinAckTest = new REPPacketSend(channel);
+			sendJoinAckTest.send(repCmd);
+			
 			break;
 		case REP.SMCMD_JOIN_ACK:
-				editorList.setEID(repCmd);
-				editorList.sendJoinAck(repCmd);
-				sessionmanagerGUI.setComboEditor(repCmd.eid, channel);
+//				editorList.setEID(repCmd);
+//				editorList.sendJoinAck(repCmd);
+//				sessionmanagerGUI.setComboEditor(repCmd.eid, channel);
 			break;
+			
 		case REP.SMCMD_PUT:
-			int sessionID = sessionlist.addSession(channel, repCmd.string);	//SIDを取得
-			smList.sendUpdate(sessionID, repCmd.string);						//updateコマンド:Session生成を通知
-			sessionmanagerGUI.setComboSession(sessionID, repCmd.string);	//ComboBoxにSessionを追加
-			repCmd.setSID(sessionID);			//SIDをセット
-			repCmd.setCMD(repCmd.cmd + 1);		//ACKを返す
-			REPPacketSend repSend2 = new REPPacketSend(channel);
-			repSend2.send(repCmd);
-			//sessionlist.sendAddedSession(repCmd);
+			if(repCmd.string.length() == 0){
+				sessionlist.addEditor(channel, 0, 0);
+			}else if(repCmd.string.length() > 0){
+				int sid = sessionlist.addSession(channel, repCmd.string);
+				sessionlist.addEditor(channel, sid, 0);
+			}
+			
+			/*** 各エディタのテスト用 ***/
+			repCmd.setCMD(REP.SMCMD_PUT_ACK);
+			REPPacketSend sendPutAckTest = new REPPacketSend(channel);
+			sendPutAckTest.send(repCmd);
+			
 			break;
 //		case REP.SMCMD_PUT_ACK:
 //			break;
+			
 		case REP.SMCMD_SELECT:
 			sessionlist.addEditor(channel, repCmd.sid, repCmd);	//sessionlistへ追加
 			repCmd.setCMD(repCmd.cmd + 1);
@@ -162,8 +174,13 @@
 		case REP.SMCMD_SESSION:
 			break;
 		case REP.SMCMD_SM_JOIN:
-			this.isMaster  = true;
-			myHost = repCmd.host;
+			//this.isMaster  = true;
+			//myHost = repCmd.host;
+			if(isMaster){
+				//REPPacketSend send = new REPPacketSend(channel);
+				repCmd.setCMD(REP.SMCMD_SM_JOIN_ACK);
+				smList.sendSessionList(sessionlist, repCmd);
+			}
 			sendSessionManagerJoinAck(channel, repCmd);
 			break;
 		case REP.SMCMD_SM_JOIN_ACK:
@@ -265,6 +282,7 @@
 			//sm_join_com.setString(sm_join_com.string + ":" + socketString);
 			send.send(REPCommand.SMCMD_SESSION_JOIN);
 			smList.add(sessionchannel);
+			smList.setMaster(sessionchannel);
 		}catch (IOException e) {
 			e.printStackTrace();
 		}
--- a/rep/SessionManagerList.java	Fri Nov 09 19:45:19 2007 +0900
+++ b/rep/SessionManagerList.java	Sat Nov 10 12:52:24 2007 +0900
@@ -47,4 +47,13 @@
 		this.master = channel;
 	}
 
+	public void sendSessionList(SessionList sessionlist, REPCommand command) {
+		command.setCMD(REP.SMCMD_SM_JOIN_ACK);
+		
+		for(SocketChannel channel : list){
+			REPPacketSend send = new REPPacketSend(channel);
+			send.send(command);
+		}
+	}
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rep/gui/DefaultTableModelTest.java	Sat Nov 10 12:52:24 2007 +0900
@@ -0,0 +1,1 @@
+package rep.gui;
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;

class DefaultTableModelTest extends JFrame {

	DefaultTableModelTest() {
		getContentPane().setLayout(new FlowLayout());

		String[][] rowData = {
			{ "A1", "B1", "C1" },
			{ "A2", "B2", "C2" },
			{ "A3", "B3", "C3" },
			{ "A4", "B4", "C4" },
		};
		String[] colNames = { "A", "B", "C" };

		DefaultTableModel tm = new DefaultTableModel(rowData, colNames);
		JTable tb = new JTable(tm);
		JScrollPane sp = new JScrollPane(tb);
		sp.setPreferredSize(new Dimension(230, 80));
		getContentPane().add(sp);

		String[] data = { "A5", "B5", "C5" };
		tm.addRow(data);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("DefaultTableModelTest");
		setSize(250, 120);
		setVisible(true);
	}
	public static void main(String[] args) {
		new DefaultTableModelTest();
	}
}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rep/gui/JTableTest.java	Sat Nov 10 12:52:24 2007 +0900
@@ -0,0 +1,1 @@
+package rep.gui;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;

import javax.swing.*;
import javax.swing.event.AncestorEvent;
import javax.swing.event.AncestorListener;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;

class JTableTest extends JFrame implements ActionListener, FocusListener, ListSelectionListener{
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JTable tb;
	JTableTest() {
		getContentPane().setLayout(new FlowLayout());

		tb = new JTable(10, 5);
		tb.setValueAt("AAA", 0, 0);
		tb.setValueAt("BBB", 1, 1);
		tb.setValueAt("CCC", 2, 2);
		
		tb.addFocusListener(this);
		

		JScrollPane sp = new JScrollPane(tb);
		sp.setPreferredSize(new Dimension(230, 80));
		getContentPane().add(sp);

		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setTitle("JTableTest");
		setSize(250, 120);
		setVisible(true);
	}
	public static void main(String[] args) {
		new JTableTest();
	}
	public void actionPerformed(ActionEvent event) {
		//if(event.getSource() == tb){
		//	int a = tb.getSelectedColumn();
		//	int b = tb.getSelectedRow();
		//	System.out.println("Selected item is " + a + ":" + b);
		//}
	}

	public void focusGained(FocusEvent event) {
		int column = tb.getSelectedColumn();
		int row = tb.getSelectedRow();
		System.out.println("Gained item is " + column + ":" + row);
	}
	public void focusLost(FocusEvent event) {
		
	}
	public void valueChanged(ListSelectionEvent event) {
		int column = tb.getSelectedColumn();
		int row = tb.getSelectedRow();
		Object value = tb.getValueAt(row, column);
		System.out.println("Gained item is " + column + ":" + row + "," + value);
	}
}
\ No newline at end of file