Wednesday, January 9, 2008

LimeWire Message Processing

class MessageRouter
{

/**
* Links the MessageRouter up with the other back end pieces
*/
public void initialize() {
_manager = RouterService.getConnectionManager();
_callback = RouterService.getCallback();
_fileManager = RouterService.getFileManager();

_bypassedResultsCache = new BypassedResultsCache(_callback, RouterService.getDownloadManager());

QRP_PROPAGATOR.start();

// schedule a runner to clear unused out-of-band replies
RouterService.schedule(new Expirer(), CLEAR_TIME, CLEAR_TIME);
// schedule a runner to clear guys we've connected back to
RouterService.schedule(new ConnectBackExpirer(), 10 * CLEAR_TIME,
10 * CLEAR_TIME);
// schedule a runner to send hops-flow messages
RouterService.schedule(new HopsFlowManager(), HOPS_FLOW_INTERVAL*10,
HOPS_FLOW_INTERVAL);
RouterService.schedule(new UDPReplyCleaner(), UDP_REPLY_CACHE_TIME, UDP_REPLY_CACHE_TIME);

// runner to clean up OOB sessions
OOBHandler oobHandler = new OOBHandler(this);
RouterService.schedule(oobHandler, CLEAR_TIME, CLEAR_TIME);

// handler for inspection requests
InspectionRequestHandler inspectionHandler = new InspectionRequestHandler(this);

setMessageHandler(PingRequest.class, new PingRequestHandler());
setMessageHandler(PingReply.class, new PingReplyHandler());
setMessageHandler(QueryRequest.class, new QueryRequestHandler());
setMessageHandler(QueryReply.class, new QueryReplyHandler());
setMessageHandler(PushRequest.class, new PushRequestHandler());
setMessageHandler(ResetTableMessage.class, new ResetTableHandler());
setMessageHandler(PatchTableMessage.class, new PatchTableHandler());
setMessageHandler(TCPConnectBackVendorMessage.class, new TCPConnectBackHandler());
setMessageHandler(UDPConnectBackVendorMessage.class, new UDPConnectBackHandler());
setMessageHandler(TCPConnectBackRedirect.class, new TCPConnectBackRedirectHandler());
setMessageHandler(UDPConnectBackRedirect.class, new UDPConnectBackRedirectHandler());
setMessageHandler(PushProxyRequest.class, new PushProxyRequestHandler());
setMessageHandler(QueryStatusResponse.class, new QueryStatusResponseHandler());
setMessageHandler(HeadPing.class, new HeadPingHandler());
setMessageHandler(SimppRequestVM.class, new SimppRequestVMHandler());
setMessageHandler(SimppVM.class, new SimppVMHandler());
setMessageHandler(UpdateRequest.class, new UpdateRequestHandler());
setMessageHandler(UpdateResponse.class, new UpdateResponseHandler());
setMessageHandler(HeadPong.class, new HeadPongHandler());
setMessageHandler(DHTContactsMessage.class, new DHTContactsMessageHandler());
setMessageHandler(VendorMessage.class, new VendorMessageHandler());
setMessageHandler(InspectionRequest.class, inspectionHandler);

setUDPMessageHandler(QueryRequest.class, new UDPQueryRequestHandler());
setUDPMessageHandler(QueryReply.class, new UDPQueryReplyHandler(oobHandler));
setUDPMessageHandler(PingRequest.class, new UDPPingRequestHandler());
setUDPMessageHandler(PingReply.class, new UDPPingReplyHandler());
setUDPMessageHandler(PushRequest.class, new UDPPushRequestHandler());
setUDPMessageHandler(LimeACKVendorMessage.class, new UDPLimeACKVendorMessageHandler());
setUDPMessageHandler(ReplyNumberVendorMessage.class, oobHandler);
setUDPMessageHandler(UDPCrawlerPing.class, new UDPCrawlerPingHandler());
setUDPMessageHandler(HeadPing.class, new UDPHeadPingHandler());
setUDPMessageHandler(UpdateRequest.class, new UDPUpdateRequestHandler());
setUDPMessageHandler(ContentResponse.class, new UDPContentResponseHandler());
setUDPMessageHandler(InspectionRequest.class, inspectionHandler);
setUDPMessageHandler(AdvancedStatsToggle.class, new AdvancedToggleHandler());

setMulticastMessageHandler(QueryRequest.class, new MulticastQueryRequestHandler());
//setMulticastMessageHandler(QueryReply.class, new MulticastQueryReplyHandler());
setMulticastMessageHandler(PingRequest.class, new MulticastPingRequestHandler());
//setMulticastMessageHandler(PingReply.class, new MulticastPingReplyHandler());
setMulticastMessageHandler(PushRequest.class, new MulticastPushRequestHandler());
}
}

No comments: