亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? connection.java

?? 關于 RFID 讀寫器的相關內容
?? JAVA
字號:
/*
 * Copyright (C) 2007 ETH Zurich
 *
 * This file is part of Fosstrak (www.fosstrak.org).
 *
 * Fosstrak is free software; you can redistribute it and/or
 * modify it under the terms of the GNU Lesser General Public
 * License version 2.1, as published by the Free Software Foundation.
 *
 * Fosstrak is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public
 * License along with Fosstrak; if not, write to the Free
 * Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
 * Boston, MA  02110-1301  USA
 */

/*
 * Created on 12.02.2004
 *
 */
package org.fosstrak.reader.rprm.core.msg.transport;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import org.fosstrak.reader.rprm.core.msg.IncomingMessage;
import org.fosstrak.reader.rprm.core.msg.IncomingMessageListener;
import org.fosstrak.reader.rprm.core.msg.MessageFormat;
import org.fosstrak.reader.rprm.core.msg.ReceiverHandshakeMessage;
import org.fosstrak.reader.rprm.core.msg.SenderHandshakeMessage;

/**
 * <code>Connection</code> represents a connection to the client.
 * 
 * @author Dijana Micijevic, ETH Zurich Switzerland, Winter 2003/04
 * @author Andreas F黵er, ETH Zurich Switzerland, Winter 2005/06
 */

public abstract class Connection {

	/** A list of listeners that listen to new messages. */
	protected List listeners_;

	/** Flag which states if there is a pending close request on the connection. */
	protected boolean closeRequest = false;

	/** The sender handshake used by this connection. */
	protected SenderHandshakeMessage senderHandshake = null;

	/** The receiver handshake used by this connection. */
	protected ReceiverHandshakeMessage receiverHandshake = null;

	// ================================= methods
	// =======================================

	/**
	 * Adds a listener of incoming messages for this connection.
	 */
	public void addIncomingMessageListener(IncomingMessageListener listener) {
		if (listener != null) {
			if (listeners_ == null) {
				listeners_ = new ArrayList();
			}
			listeners_.add(listener);
		}
	}

	/**
	 * Removes a listener of incoming messages for this connection.
	 */
	protected void removeIncomingMessageListener(
			IncomingMessageListener listener) {
		if (listener != null) {
			listeners_.remove(listener);
		}
	}

	/**
	 * Notifies all added listeners that there is a new message.
	 * 
	 * @param msg
	 *            a new message received
	 */
	protected void notifyListener(IncomingMessage msg) {
		Iterator iter = listeners_.iterator();
		while (iter.hasNext()) {
			IncomingMessageListener element = (IncomingMessageListener) iter
					.next();
			synchronized (element) {
				element.messageReceived(msg);
			}
		}
	}

	/**
	 * Closes the connection
	 * 
	 */
	abstract public void close();

	/**
	 * Sends a message to the specified receiver.
	 * 
	 * @param outMessage
	 *            the message to send.
	 */
	abstract public void send(String outMessage);

	/**
	 * Requests for closing of the connection. It means that the connection has
	 * to close itself after having sent the next message (which should then be
	 * the "last" message, e.g. an ACK of a goodbye command).
	 */
	public void requestClose() {
		closeRequest = true;
	}

	/**
	 * @return Returns the receiverHandshake.
	 */
	public ReceiverHandshakeMessage getReceiverHandshake() {
		return receiverHandshake;
	}

	/**
	 * @param receiverHandshake
	 *            The receiverHandshake to set.
	 */
	public void setReceiverHandshake(ReceiverHandshakeMessage receiverHandshake) {
		this.receiverHandshake = receiverHandshake;
	}

	/**
	 * @return Returns the senderHandshake.
	 */
	public SenderHandshakeMessage getSenderHandshake() {
		return senderHandshake;
	}

	/**
	 * @param senderHandshake
	 *            The senderHandshake to set.
	 */
	public void setSenderHandshake(SenderHandshakeMessage senderHandshake) {
		this.senderHandshake = senderHandshake;
	}

	/**
	 * Returns format of the sender message
	 * 
	 * @return format of the message which arrived or <code>null</code> if not
	 *         defined.
	 */
	public MessageFormat getSenderMessageFormat() {
		if (senderHandshake != null) {
			return senderHandshake.getSenderMessageFormat();
		} else {
			return null;
		}
	}

	/**
	 * Gets the format of message sent back to the receiver
	 * 
	 * @return format of the message which the receiver expects or
	 *         <code>null</code> if not defined.
	 */
	public MessageFormat getReceiverMessageFormat() {
		if (senderHandshake != null) {
			return senderHandshake.getReceiverMessageFormat();
		} else {
			return null;
		}
	}

	/**
	 * @return Returns the ackNakEnabled or <code>false</code> if handshake is
	 *         not defined.
	 */
	public boolean isAckNakEnabled() {
		if (senderHandshake != null) {
			return senderHandshake.getAckNakEnabled();
		} else {
			return false;
		}
	}

	/**
	 * Handles a client on that connection.
	 */
	public abstract void handleClient();

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区在线播放| 日本美女一区二区三区视频| 中文字幕一区二区三区av| 免费观看久久久4p| 日韩一级黄色片| 国内精品第一页| 欧美白人最猛性xxxxx69交| 国产成人在线观看免费网站| 久久久99精品免费观看| 丰满少妇久久久久久久| 中文字幕人成不卡一区| 色一情一乱一乱一91av| 手机精品视频在线观看| 日韩欧美国产综合一区| 高清不卡在线观看av| 怡红院av一区二区三区| 欧美一区二区三区视频免费| 国产乱码精品一品二品| 自拍偷拍亚洲综合| 日韩三区在线观看| 成人精品一区二区三区中文字幕 | 久久99国产精品久久99果冻传媒| 久久久久久综合| 色综合久久久久久久久久久| 免费国产亚洲视频| 国产精品美女久久久久久久久 | 在线看一区二区| 秋霞av亚洲一区二区三| 国产精品理伦片| 欧美一区二区三区啪啪| 不卡影院免费观看| 六月丁香综合在线视频| 亚洲欧美日韩中文播放| 欧美大片日本大片免费观看| 成人免费视频免费观看| 亚洲成人一区二区在线观看| 自拍av一区二区三区| 在线观看日韩一区| 国产乱码精品1区2区3区| 亚洲欧美偷拍三级| 久久夜色精品国产噜噜av | 国产真实乱子伦精品视频| 亚洲免费电影在线| 久久女同性恋中文字幕| 欧美午夜电影网| av在线不卡观看免费观看| 美女视频免费一区| 亚洲国产精品自拍| 中文字幕在线不卡| 久久久久久**毛片大全| 欧美精品123区| 91久久精品国产91性色tv| 国产乱码精品一区二区三区av| 日本中文字幕一区| 亚洲一区二区在线播放相泽| 亚洲国产成人私人影院tom| 欧美一区二区三区播放老司机| 91丝袜美女网| 99精品视频免费在线观看| 精品一区二区在线免费观看| 国产精品电影一区二区| 欧美精品一区二区久久婷婷 | 日本欧美在线观看| 偷拍一区二区三区| 又紧又大又爽精品一区二区| 国产精品热久久久久夜色精品三区 | 久久青草欧美一区二区三区| 日韩欧美三级在线| 日韩亚洲欧美综合| 日韩一级完整毛片| 欧美一区午夜视频在线观看| 欧美高清视频一二三区 | 一区二区三区中文字幕精品精品| 精品入口麻豆88视频| 欧美在线免费视屏| 欧亚洲嫩模精品一区三区| 在线国产亚洲欧美| 欧美综合视频在线观看| 欧美三级一区二区| 欧美亚洲高清一区二区三区不卡| 色婷婷久久久综合中文字幕| 在线视频一区二区三区| 欧美色视频一区| 欧美夫妻性生活| 日韩欧美国产小视频| 久久夜色精品一区| 国产精品青草综合久久久久99| 国产精品九色蝌蚪自拍| 亚洲人吸女人奶水| 一区二区三区四区在线免费观看| 亚洲免费观看高清完整版在线 | 蜜臀精品久久久久久蜜臀| 老司机午夜精品| 国产精品1区2区| 99re热视频这里只精品| 欧美亚洲综合网| 91视频观看免费| 色哟哟一区二区在线观看| 在线影院国内精品| 欧美一区二区美女| 久久久影院官网| 亚洲视频1区2区| 亚洲国产精品久久久男人的天堂| 美女视频黄a大片欧美| 韩国理伦片一区二区三区在线播放| 成人一区二区三区中文字幕| 色婷婷av一区| 精品av综合导航| 亚洲色图色小说| 日本亚洲天堂网| 国产成人综合亚洲网站| 精品污污网站免费看| 精品久久国产老人久久综合| 亚洲欧美综合网| 免费成人小视频| 91网站在线播放| 欧美精品一区二区三区蜜桃视频| 最新久久zyz资源站| 日本中文字幕不卡| 99在线精品免费| 91精品国产综合久久福利软件 | 亚洲精品视频在线| 中文字幕中文字幕在线一区| 中文字幕欧美一| 日本不卡高清视频| 99在线热播精品免费| 日韩精品一区二区在线观看| 综合久久国产九一剧情麻豆| 日韩vs国产vs欧美| 91视频国产观看| 国产亚洲女人久久久久毛片| 性感美女极品91精品| 欧美私模裸体表演在线观看| 国产三级精品在线| 美国毛片一区二区| 色欧美乱欧美15图片| 国产午夜精品一区二区| 日欧美一区二区| 色婷婷综合久久久中文字幕| 久久久久久久久久久电影| 日韩和欧美一区二区三区| 91麻豆免费视频| 欧美激情一区二区三区| 精品一区二区三区av| 欧美日韩精品专区| 一区二区三区在线免费| 成人毛片视频在线观看| 国产三级欧美三级日产三级99 | 亚洲国产sm捆绑调教视频| 成人小视频在线| 亚洲精品一区二区在线观看| 日本三级韩国三级欧美三级| 91久久精品一区二区三区| 亚洲欧美日韩一区二区 | 91精品91久久久中77777| 国产精品久久久久久久久果冻传媒| 六月丁香综合在线视频| 日韩精品资源二区在线| 青娱乐精品视频| 91精品国产91综合久久蜜臀| 亚洲国产美女搞黄色| 欧美最猛性xxxxx直播| 一区二区三区日韩在线观看| 色婷婷国产精品| 亚洲精品国产精品乱码不99| 99re这里只有精品视频首页| 中文字幕在线不卡视频| 91蜜桃在线免费视频| 亚洲欧洲中文日韩久久av乱码| av在线不卡免费看| 亚洲精品美腿丝袜| 欧美综合一区二区| 天天操天天综合网| 91精品国产综合久久精品 | 激情文学综合网| 久久亚洲精华国产精华液| 国产精品综合在线视频| 亚洲国产精品成人综合| 97精品久久久久中文字幕| 亚洲柠檬福利资源导航| 欧洲一区二区三区在线| 日韩vs国产vs欧美| 日韩欧美国产综合一区 | 麻豆极品一区二区三区| 精品久久久久久无| 成人av先锋影音| 一区二区三区欧美日韩| 欧美日韩国产美女| 国内精品免费**视频| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 欧美大片在线观看一区| 国产精品一区二区三区四区| 亚洲婷婷在线视频| 3atv在线一区二区三区| 国产一区二区三区免费在线观看| 中文字幕免费一区| 欧美剧情片在线观看| 国产精品一区二区免费不卡 | 一区二区三区av电影| 91精品国产乱码久久蜜臀|