📄 btevent.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 + -