⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 btevent.java

📁 一个p2p仿真软件
💻 JAVA
字号:
/*
 * @(#)BTEvent.java	ver 1.2  6/20/2005
 *
 * Copyright 2005 Weishuai Yang (wyang@cs.binghamton.edu). 
 * All rights reserved.
 * 
 */

package gps.protocol.BT;

import java.util.ArrayList;

import gps.event.SimEvent;
import gps.event.SimEventHandler;
import gps.protocol.BT.param.BTGetRequest;
import gps.protocol.BT.param.BTPeerMessage;
/**
 * BT Event
 * 
 * @author  Weishuai Yang
 * @version 1.2,  6/20/2005
 */
public class BTEvent extends SimEvent {
	
	//Simulation User Level Event, instructed in event file
    
	/**
	 * publish a document
	 */
	public static final int USER_PUBLISH = 100;
	
	/**
	 * download a specific document from a server
	 */
	public static final int USER_DOWNLOAD=101;
	
	/**
	 * random download from a server
	 */
	public static final int USER_RANDOM_DOWNLOAD=102;


	//High level BT event

	/**
	 * server receives a get, handled by tracker
	 */
	public static final int TRACKER_GET_REQUEST = 151;

	/**
	 * peer receives a peer message
	 */
	public static final int PEER_MESSAGE = 152;
	
	/**
	 * reply from server, handled by session
	 */
	public static final int SESSION_TRACKER_RESPONSE = 153;
	

	//Low level BT event
	/**
	 * scheduled announcement to tracker
	 */
	public static final int SESSION_ANNOUNCEMENT = 201;
	
	/**
	 * download block finish
	 */
	public static final int CONNECTION_DOWNLOAD_BLOCK_FINISH=202;
	
	/**
	 * rechoking
	 */
	public static final int RECHOKING=203;
	
	/**
	 * check alive
	 */
	public static final int CONNECTION_TIMEOUT=204;


	/**
	 * connection keep alive
	 */
	public static final int CONNECTION_KEEP_ALIVE=205;
	
	/**
	 * can make next request
	 */
	public static final int REQUEST_TIMEOUT=206;
	
	
	
	
	/**
	 * dummy constructor
	 */
	public BTEvent() { }
	
	/**
	 * constructs a BTEvent object
	 * @param timeStamp the moment this event is to be triggered
	 * @param type event type
	 * @param handler event handler object
	 * @param obj sender
	 */
	public BTEvent(double timeStamp, int type, SimEventHandler handler, Object obj) {
	    super(timeStamp, type, handler, obj);
	}
	
	/**
	 * constructs a BTEvent object
	 * @param timeStamp the moment this event is to be triggered
	 * @param type event type
	 * @param handlerList list of event handler objects
	 * @param obj sender
	 */
	public BTEvent(double timeStamp, int type, ArrayList handlerList, Object obj){
		super(timeStamp, type, handlerList, obj);
	}

	
	/**
	 * gets string description for type
	 *
	 * @return event type in string format 
	 */
	public String typeString(int type){
		
		switch(type){
			
			case USER_PUBLISH: return "USER_PUBLISH";
			case USER_DOWNLOAD: return "USER_DOWNLOAD";
			case USER_RANDOM_DOWNLOAD: return "USER_RANDOM_DOWNLOAD";
			
			case TRACKER_GET_REQUEST: 
				if(mAddParam==null)
				    return "TRACKER_GET_REQUEST";
				else{
					BTGetRequest btgr=(BTGetRequest)mAddParam;
					return "TRACKER_GET_REQUEST."+btgr.eventToString();
				}
			case SESSION_TRACKER_RESPONSE: return "SESSION_TRACKER_RESPONSE";
			case PEER_MESSAGE: 
				if(mAddParam==null)
					return "PEER_MESSAGE";
				else{
					BTPeerMessage btpm=(BTPeerMessage)mAddParam;
					return "PEER_MESSAGE."+btpm.messageToString();
				}

			case SESSION_ANNOUNCEMENT: return "SESSION_ANNOUNCEMENT";
			
			case CONNECTION_DOWNLOAD_BLOCK_FINISH: return "CONNECTION_DOWNLOAD_BLOCK_FINISH";
			
			case RECHOKING: return "RECHOKING";

			case CONNECTION_TIMEOUT: return "CONNECTION_TIMEOUT";
			
			case CONNECTION_KEEP_ALIVE: return "CONNECTION_KEEP_ALIVE";
			
			case REQUEST_TIMEOUT: return "REQUEST_TIMEOUT";
			
			
		}
		return super.typeString(type);
	}
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -