// Path: server/src/com/yems/painter/constant/Commons.java
// public class Commons {
// 	public static final int PORT = 8080; // ¶Ë¿ÚºÅ
// 
// 	public static String currentClientIP = ""; // ±êÊ¾µ±Ç°¿Í»§¶Ë
// 	public static String myUUID = ""; // µ±Ç°Éè±¸Î¨Ò»±êÊ¾·û
// }
// 
// Path: server/src/com/yems/painter/core/MetadataRepositories.java
// public class MetadataRepositories implements Serializable {
// 	
// 	private Map<String, Channel> channels;// ±£´æ¿Í»§¶ËµÄÁ¬½Ó key--IPµØÖ·£»value--¿Í»§¶ËºÍ·þÎñ¶Ë½¨Á¢µÄÍ¨µÀ
// 	
// 	private  List<SerializablePath> bufferShapes;// ÓÃÓÚ·þÎñÆ÷¶Ë±£´æÍ¼ÐÎÁÐ±í
// 
// 	private MetadataRepositories() {
// 		channels = new HashMap<String, Channel>();
// 		bufferShapes = new ArrayList<SerializablePath>();
// 	}
// 
// 	private static class Builder {
// 		private static MetadataRepositories instance = new MetadataRepositories();
// 	}
// 	
// 	public static MetadataRepositories getInstance(){
// 		return Builder.instance;
// 	}
// 
// 	public Map<String, Channel> getChannels() {
// 		return channels;
// 	}
// 
// 	public void setChannels(Map<String, Channel> channels) {
// 		this.channels = channels;
// 	}
// 
// 	public  List<SerializablePath> getBufferShapes() {
// 		return bufferShapes;
// 	}
// 
// 	public  void setBufferShapes(Vector<SerializablePath> bufferShapes) {
// 		this.bufferShapes = bufferShapes;
// 	}
// 
// }
// 
// Path: server/src/com/yems/painter/serializable/SerializablePath.java
// public class SerializablePath implements Serializable {
// 	/** ×é³É¸ÃÂ·¾¶µÄµã*/
// 	public ArrayList<SerializablePoint> points = new ArrayList();
// 	/** ±¾µØ¿Í»§¶Ë²Ù×÷ÀàÐÍ£¨send-·¢ËÍÍ¼ÐÎÊý¾Ý¡¢clear-Çå¿ÕÍ¼ÐÎÊý¾Ý¡¢send_uuid-·¢ËÍÉè±¸Î¨Ò»±êÊ¾·û£©*/
// 	private String OPType = "send"; 
// 	/** µ±Ç°Éè±¸µÄÆÁÄ»¿í¶È*/
// 	private float screenWidth; 
// 	/** µ±Ç°Éè±¸µÄÆÁÄ»¸ß¶È*/
// 	private float screenHeight; 
// 	/** µ±Ç°Éè±¸µÄÎ¨Ò»±êÊ¾·û*/
// 	private String myUUID; 
// 	/** µ±Ç°Í¼ÐÎËùÓÃµÄ»­±ÊÑùÊ½*/
// 	private SerializablePaint serializablePaint; 
// 	/** */
// 	public String shapeType = "CURVE";
// 	
// 	public String getMyUUID() {
// 		return myUUID;
// 	}
// 
// 	public void setMyUUID(String myUUID) {
// 		this.myUUID = myUUID;
// 	}
// 
// 	public float getScreenWidth() {
// 		return screenWidth;
// 	}
// 
// 	public void setScreenWidth(float screenWidth) {
// 		this.screenWidth = screenWidth;
// 	}
// 
// 	public float getScreenHeight() {
// 		return screenHeight;
// 	}
// 
// 	public void setScreenHeight(float screenHeight) {
// 		this.screenHeight = screenHeight;
// 	}
// 
// 	public SerializablePaint getSerializablePaint() {
// 		return serializablePaint;
// 	}
// 
// 	public void setSerializablePaint(SerializablePaint serializablePaint) {
// 		this.serializablePaint = serializablePaint;
// 	}
// 
// 	public String getOPType() {
// 		return OPType;
// 	}
// 
// 	public void setOPType(String oPType) {
// 		OPType = oPType;
// 	}
// }


import java.net.InetSocketAddress;
import java.util.Map;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
import com.yems.painter.constant.Commons;
import com.yems.painter.core.MetadataRepositories;
import com.yems.painter.serializable.SerializablePath;
package com.yems.painter.handler;




/**
 * @ClassName: MyHandler
 * @Description: ×Ô¶¨ÒåÍ¨µÀ´¦ÀíÆ÷£¬ÓÃÓÚ´¦ÀíÍ¨µÀ¼äÏûÏ¢µÄÊÕ·¢µÈ
 * @author lwtx-yems
 * @date Mar 6, 2015 10:40:51 AM
 * 
 */
public class MyServerHandler extends SimpleChannelHandler {

	@Override
	public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
		Channel channel = e.getChannel();
		Commons.currentClientIP = ((InetSocketAddress) e.getChannel()
				.getRemoteAddress()).getAddress().getHostAddress();
		// MetadataRepositories.getInstance().getChannels().put(
		// Commons.currentClientIP, channel);
// Path: server/src/com/yems/painter/constant/Commons.java
// public class Commons {
// 	public static final int PORT = 8080; // ¶Ë¿ÚºÅ
// 
// 	public static String currentClientIP = ""; // ±êÊ¾µ±Ç°¿Í»§¶Ë
// 	public static String myUUID = ""; // µ±Ç°Éè±¸Î¨Ò»±êÊ¾·û
// }
// 
// Path: server/src/com/yems/painter/core/MetadataRepositories.java
// public class MetadataRepositories implements Serializable {
// 	
// 	private Map<String, Channel> channels;// ±£´æ¿Í»§¶ËµÄÁ¬½Ó key--IPµØÖ·£»value--¿Í»§¶ËºÍ·þÎñ¶Ë½¨Á¢µÄÍ¨µÀ
// 	
// 	private  List<SerializablePath> bufferShapes;// ÓÃÓÚ·þÎñÆ÷¶Ë±£´æÍ¼ÐÎÁÐ±í
// 
// 	private MetadataRepositories() {
// 		channels = new HashMap<String, Channel>();
// 		bufferShapes = new ArrayList<SerializablePath>();
// 	}
// 
// 	private static class Builder {
// 		private static MetadataRepositories instance = new MetadataRepositories();
// 	}
// 	
// 	public static MetadataRepositories getInstance(){
// 		return Builder.instance;
// 	}
// 
// 	public Map<String, Channel> getChannels() {
// 		return channels;
// 	}
// 
// 	public void setChannels(Map<String, Channel> channels) {
// 		this.channels = channels;
// 	}
// 
// 	public  List<SerializablePath> getBufferShapes() {
// 		return bufferShapes;
// 	}
// 
// 	public  void setBufferShapes(Vector<SerializablePath> bufferShapes) {
// 		this.bufferShapes = bufferShapes;
// 	}
// 
// }
// 
// Path: server/src/com/yems/painter/serializable/SerializablePath.java
// public class SerializablePath implements Serializable {
// 	/** ×é³É¸ÃÂ·¾¶µÄµã*/
// 	public ArrayList<SerializablePoint> points = new ArrayList();
// 	/** ±¾µØ¿Í»§¶Ë²Ù×÷ÀàÐÍ£¨send-·¢ËÍÍ¼ÐÎÊý¾Ý¡¢clear-Çå¿ÕÍ¼ÐÎÊý¾Ý¡¢send_uuid-·¢ËÍÉè±¸Î¨Ò»±êÊ¾·û£©*/
// 	private String OPType = "send"; 
// 	/** µ±Ç°Éè±¸µÄÆÁÄ»¿í¶È*/
// 	private float screenWidth; 
// 	/** µ±Ç°Éè±¸µÄÆÁÄ»¸ß¶È*/
// 	private float screenHeight; 
// 	/** µ±Ç°Éè±¸µÄÎ¨Ò»±êÊ¾·û*/
// 	private String myUUID; 
// 	/** µ±Ç°Í¼ÐÎËùÓÃµÄ»­±ÊÑùÊ½*/
// 	private SerializablePaint serializablePaint; 
// 	/** */
// 	public String shapeType = "CURVE";
// 	
// 	public String getMyUUID() {
// 		return myUUID;
// 	}
// 
// 	public void setMyUUID(String myUUID) {
// 		this.myUUID = myUUID;
// 	}
// 
// 	public float getScreenWidth() {
// 		return screenWidth;
// 	}
// 
// 	public void setScreenWidth(float screenWidth) {
// 		this.screenWidth = screenWidth;
// 	}
// 
// 	public float getScreenHeight() {
// 		return screenHeight;
// 	}
// 
// 	public void setScreenHeight(float screenHeight) {
// 		this.screenHeight = screenHeight;
// 	}
// 
// 	public SerializablePaint getSerializablePaint() {
// 		return serializablePaint;
// 	}
// 
// 	public void setSerializablePaint(SerializablePaint serializablePaint) {
// 		this.serializablePaint = serializablePaint;
// 	}
// 
// 	public String getOPType() {
// 		return OPType;
// 	}
// 
// 	public void setOPType(String oPType) {
// 		OPType = oPType;
// 	}
// }


// Path: server/src/com/yems/painter/handler/MyServerHandler.java
import java.net.InetSocketAddress;
import java.util.Map;
import org.jboss.netty.channel.Channel;
import org.jboss.netty.channel.ChannelHandlerContext;
import org.jboss.netty.channel.ChannelStateEvent;
import org.jboss.netty.channel.ExceptionEvent;
import org.jboss.netty.channel.MessageEvent;
import org.jboss.netty.channel.SimpleChannelHandler;
import com.yems.painter.constant.Commons;
import com.yems.painter.core.MetadataRepositories;
import com.yems.painter.serializable.SerializablePath;

package com.yems.painter.handler;




/**
 * @ClassName: MyHandler
 * @Description: ×Ô¶¨ÒåÍ¨µÀ´¦ÀíÆ÷£¬ÓÃÓÚ´¦ÀíÍ¨µÀ¼äÏûÏ¢µÄÊÕ·¢µÈ
 * @author lwtx-yems
 * @date Mar 6, 2015 10:40:51 AM
 * 
 */
public class MyServerHandler extends SimpleChannelHandler {

	@Override
	public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) {
		Channel channel = e.getChannel();
		Commons.currentClientIP = ((InetSocketAddress) e.getChannel()
				.getRemoteAddress()).getAddress().getHostAddress();
		// MetadataRepositories.getInstance().getChannels().put(
		// Commons.currentClientIP, channel);
		System.out.println("¿Í»§: " + Commons.currentClientIP + " ½øÈë£¡");