|
LimeWire Consolidated API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectcom.limegroup.gnutella.MessageRouterImpl
public abstract class MessageRouterImpl
One of the three classes that make up the core of the backend. This class' job is to direct the routing of messages and to count those message as they pass through. To do so, it aggregates a ConnectionManager that maintains a list of connections.
| Nested Class Summary | |
|---|---|
class |
MessageRouterImpl.MulticastPingReplyHandler
|
class |
MessageRouterImpl.MulticastPingRequestHandler
|
class |
MessageRouterImpl.MulticastQueryReplyHandler
|
class |
MessageRouterImpl.MulticastQueryRequestHandler
|
class |
MessageRouterImpl.UDPQueryReplyHandler
This class handles UDP query replies and forwards them to the OOBHandler if they are not replies to multicast or unicast
queries. |
class |
MessageRouterImpl.VendorMessageHandler
|
| Fields inherited from interface com.limegroup.gnutella.MessageRouter |
|---|
CLEAR_TIME |
| Constructor Summary | |
|---|---|
protected |
MessageRouterImpl(NetworkManager networkManager,
QueryRequestFactory queryRequestFactory,
QueryHandlerFactory queryHandlerFactory,
OnDemandUnicaster onDemandUnicaster,
HeadPongFactory headPongFactory,
PingReplyFactory pingReplyFactory,
ConnectionManager connectionManager,
ReplyHandler forMeReplyHandler,
QueryUnicaster queryUnicaster,
FileManager fileManager,
ContentManager contentManager,
DHTManager dhtManager,
UploadManager uploadManager,
DownloadManager downloadManager,
UDPService udpService,
SearchResultHandler searchResultHandler,
SocketsManager socketsManager,
HostCatcher hostCatcher,
QueryReplyFactory queryReplyFactory,
StaticMessages staticMessages,
com.google.inject.Provider<MessageDispatcher> messageDispatcher,
MulticastService multicastService,
QueryDispatcher queryDispatcher,
com.google.inject.Provider<ActivityCallback> activityCallback,
ConnectionServices connectionServices,
ApplicationServices applicationServices,
ScheduledExecutorService backgroundExecutor,
com.google.inject.Provider<PongCacher> pongCacher,
com.google.inject.Provider<SimppManager> simppManager,
com.google.inject.Provider<UpdateHandler> updateHandler,
GuidMapManager guidMapManager,
UDPReplyHandlerCache udpReplyHandlerCache,
com.google.inject.Provider<InspectionRequestHandler> inspectionRequestHandlerFactory,
com.google.inject.Provider<UDPCrawlerPingHandler> udpCrawlerPingHandlerFactory,
PingRequestFactory pingRequestFactory,
MessageHandlerBinder messageHandlerBinder,
com.google.inject.Provider<OOBHandler> oobHandlerFactory,
com.google.inject.Provider<MACCalculatorRepositoryManager> MACCalculatorRepositoryManager,
com.google.inject.Provider<LimeACKHandler> limeACKHandler,
OutgoingQueryReplyFactory outgoingQueryReplyFactory,
QRPUpdater qrpUpdater,
URNFilter urnFilter)
Creates a MessageRouter. |
| Method Summary | |
|---|---|
boolean |
addBypassedSource(QueryReply reply,
ReplyHandler handler)
Adds the sender of the reply message to an internal cache under the guid of the message if the sender can receive unsolicited UDP. |
boolean |
addBypassedSource(ReplyNumberVendorMessage reply,
ReplyHandler handler)
Adds the sender of the reply message to an internal cache under the guid of the message if the sender can receive unsolicited UDP. |
void |
addMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Adds the new handler as a handler in addition to other handlers. |
void |
addMulticastMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Adds the new handler as a handler in addition to other handlers for multicast messages. |
void |
addUDPMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Adds the new handler as a handler in addition to other handlers for UDP messages. |
void |
broadcastPingRequest(PingRequest ping)
Broadcasts the ping request to all initialized connections, setting up the proper reply routing. |
void |
downloadFinished(GUID guid)
Call this to inform us that a download is finished or whatever. |
void |
forwardInspectionRequestToLeaves(InspectionRequest ir)
Forwards an inspection request to leaf connections that support it. |
void |
forwardQueryRequestToLeaves(QueryRequest query,
ReplyHandler handler)
Forwards the query request to any leaf connections. |
MessageHandler |
getMessageHandler(Class<? extends Message> clazz)
Returns a MessageHandler for the specified Message Class or null if no such MessageHandler exists. |
MessageHandler |
getMulticastMessageHandler(Class<? extends Message> clazz)
Returns a MessageHandler for the specified Message Class or null if no such MessageHandler exists. |
int |
getNumOOBToRequest(ReplyNumberVendorMessage reply)
Returns the number of results to request from source of reply. |
long |
getOOBExpireTime()
Time after which an OOB session should be expired. |
String |
getPingRouteTableDump()
|
ReplyHandler |
getPushHandler(byte[] guid)
Returns the appropriate handler from the _pushRouteTable. |
String |
getPushRouteTableDump()
|
Set<GUESSEndpoint> |
getQueryLocs(GUID guid)
|
QueryRouteTable |
getQueryRouteTable()
Accessor for the most recently calculated QueryRouteTable for this node. |
String |
getQueryRouteTableDump()
|
String |
getServiceName()
|
MessageHandler |
getUDPMessageHandler(Class<? extends Message> clazz)
Returns a MessageHandler for the specified Message Class or null if no such MessageHandler exists. |
void |
handleMessage(Message msg,
ReplyHandler receivingConnection)
The handler for all message types. |
void |
handleMulticastMessage(Message msg,
InetSocketAddress addr)
The handler for Multicast messages. |
protected void |
handlePingReply(PingReply reply,
ReplyHandler handler)
The default handler for PingRequests. |
protected void |
handlePushProxyRequest(PushProxyRequest ppReq,
RoutedConnection source)
1) confirm that the connection is Ultrapeer to Leaf, then send your listening port in a PushProxyAcknowledgement. |
void |
handleQueryReply(QueryReply queryReply,
ReplyHandler handler)
The default handler for QueryReplies. |
void |
handleQueryRequest(QueryRequest request,
ReplyHandler handler,
ResultCounter counter,
boolean locallyEvaluate)
The default handler for QueryRequests. |
protected void |
handleQueryStatus(QueryStatusResponse resp,
RoutedConnection leaf)
This method should be invoked when this node receives a QueryStatusResponse message from the wire. |
protected void |
handleTCPConnectBackRedirect(TCPConnectBackRedirect tcp,
Connection source)
Basically, just get the correct parameters, create a Socket, and send a "/n/n". |
protected void |
handleTCPConnectBackRequest(TCPConnectBackVendorMessage tcp,
Connection source)
Forwards the request to neighboring Ultrapeers as a TCPConnectBackRedirect message. |
protected void |
handleUDPConnectBackRedirect(UDPConnectBackRedirect udp,
Connection source)
Sends a ping to the person requesting the connectback request. |
protected void |
handleUDPConnectBackRequest(UDPConnectBackVendorMessage udp,
Connection source)
Forwards the UDPConnectBack to neighboring peers as a UDPConnectBackRedirect request. |
void |
handleUDPMessage(Message msg,
InetSocketAddress addr)
The handler for all message types. |
protected void |
handleUDPPingReply(PingReply reply,
ReplyHandler handler,
InetAddress address,
int port)
|
protected void |
handleUDPPingRequest(PingRequest pingRequest,
ReplyHandler handler,
InetSocketAddress addr)
Responds to a UDP ping or query key request. |
protected boolean |
hasValidQueryKey(InetAddress ip,
int port,
QueryRequest qr)
Returns true if the Query has a valid AddressSecurityToken. |
void |
initialize()
|
boolean |
isHostUnicastQueried(GUID guid,
IpPort host)
Determines if we've sent a unicast OOB query to the given host using the given query GUID. |
boolean |
isQueryAlive(GUID guid)
|
protected void |
multicastQueryRequest(QueryRequest query)
Send the query to the multicast group. |
protected void |
originateMulticastQuery(QueryRequest query)
Originates a multicast query from this host. |
void |
originateQueryGUID(byte[] guid)
Routes a query GUID to yourself. |
void |
queryKilled(GUID guid)
Call this to inform us that a query has been killed by a user or whatever. |
void |
registerMessageListener(byte[] guid,
MessageListener ml)
Adds the specified MessageListener for messages with this GUID. |
protected abstract void |
respondToPingRequest(PingRequest request,
ReplyHandler handler)
Respond to the ping request. |
protected abstract boolean |
respondToQueryRequest(QueryRequest queryRequest,
byte[] clientGUID,
ReplyHandler handler)
Respond to the query request. |
protected abstract void |
respondToUDPPingRequest(PingRequest request,
InetSocketAddress addr,
ReplyHandler handler)
Responds to a ping received over UDP -- implementations handle this differently from pings received over TCP, as it is assumed that the requester only wants pongs from other nodes that also support UDP messaging. |
Iterable<QueryReply> |
responsesToQueryReplies(Response[] responses,
QueryRequest queryRequest)
Converts the passed responses to QueryReplies. |
Iterable<QueryReply> |
responsesToQueryReplies(Response[] responses,
QueryRequest queryRequest,
int REPLY_LIMIT,
SecurityToken securityToken)
Converts the passed responses to QueryReplies. |
protected void |
sendAcknowledgement(InetSocketAddress addr,
byte[] guid)
Sends an ack back to the GUESS client node. |
void |
sendDynamicQuery(QueryRequest query)
Generates a new dynamic query. |
boolean |
sendInitialQuery(QueryRequest query,
RoutedConnection mc)
Used to send the first request to a specific ultrapeer when dynamic querying. |
void |
sendMulticastPushRequest(PushRequest push)
Sends a push request to the multicast network. |
protected void |
sendPingReply(PingReply pong,
ReplyHandler handler)
Uses the ping route table to send a PingReply to the appropriate connection. |
void |
sendPingRequest(PingRequest request,
RoutedConnection connection)
Sends the ping request to the designated connection, setting up the proper reply routing. |
void |
sendPushRequest(PushRequest push)
Uses the push route table to send a push request to the appropriate connection. |
protected void |
sendQueryKeyPong(PingRequest pr,
InetSocketAddress addr)
Generates an AddressSecurityToken for the source (described by addr) and sends it in an AddressSecurityToken pong |
protected void |
sendQueryReply(QueryReply queryReply)
Uses the query route table to send a QueryReply to the appropriate connection. |
void |
sendQueryRequest(QueryRequest request,
RoutedConnection connection)
Sends the query request to the designated connection, setting up the proper reply routing. |
void |
setMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Installs a MessageHandler for "regular" Messages. |
void |
setMulticastMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Installs a MessageHandler for Multicast Messages. |
void |
setUDPMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
Installs a MessageHandler for UDP Messages. |
void |
start()
|
void |
stop()
|
protected void |
unicastQueryRequest(QueryRequest query,
ReplyHandler conn)
Adds the QueryRequest to the unicaster module. |
void |
unregisterMessageListener(byte[] guid,
MessageListener ml)
Unregisters this MessageListener from listening to the GUID. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected byte[] _clientGUID
protected final NetworkManager networkManager
protected final QueryRequestFactory queryRequestFactory
protected final QueryHandlerFactory queryHandlerFactory
protected final OnDemandUnicaster onDemandUnicaster
protected final HeadPongFactory headPongFactory
protected final PingReplyFactory pingReplyFactory
protected final ConnectionManager connectionManager
protected final ReplyHandler forMeReplyHandler
protected final QueryUnicaster queryUnicaster
protected final FileManager fileManager
protected final ContentManager contentManager
protected final DHTManager dhtManager
protected final UploadManager uploadManager
protected final DownloadManager downloadManager
protected final UDPService udpService
protected final SearchResultHandler searchResultHandler
protected final SocketsManager socketsManager
protected final HostCatcher hostCatcher
protected final QueryReplyFactory queryReplyFactory
protected final StaticMessages staticMessages
protected final com.google.inject.Provider<MessageDispatcher> messageDispatcher
protected final MulticastService multicastService
protected final QueryDispatcher queryDispatcher
protected final com.google.inject.Provider<ActivityCallback> activityCallback
protected final ConnectionServices connectionServices
protected final ScheduledExecutorService backgroundExecutor
protected final com.google.inject.Provider<PongCacher> pongCacher
protected final com.google.inject.Provider<SimppManager> simppManager
protected final com.google.inject.Provider<UpdateHandler> updateHandler
protected final UDPReplyHandlerCache udpReplyHandlerCache
protected final GuidMap multicastGuidMap
protected final com.google.inject.Provider<LimeACKHandler> limeAckHandler
protected final QRPUpdater qrpUpdater
| Constructor Detail |
|---|
@Inject
protected MessageRouterImpl(NetworkManager networkManager,
QueryRequestFactory queryRequestFactory,
QueryHandlerFactory queryHandlerFactory,
OnDemandUnicaster onDemandUnicaster,
HeadPongFactory headPongFactory,
PingReplyFactory pingReplyFactory,
ConnectionManager connectionManager,
ReplyHandler forMeReplyHandler,
QueryUnicaster queryUnicaster,
FileManager fileManager,
ContentManager contentManager,
DHTManager dhtManager,
UploadManager uploadManager,
DownloadManager downloadManager,
UDPService udpService,
SearchResultHandler searchResultHandler,
SocketsManager socketsManager,
HostCatcher hostCatcher,
QueryReplyFactory queryReplyFactory,
StaticMessages staticMessages,
com.google.inject.Provider<MessageDispatcher> messageDispatcher,
MulticastService multicastService,
QueryDispatcher queryDispatcher,
com.google.inject.Provider<ActivityCallback> activityCallback,
ConnectionServices connectionServices,
ApplicationServices applicationServices,
ScheduledExecutorService backgroundExecutor,
com.google.inject.Provider<PongCacher> pongCacher,
com.google.inject.Provider<SimppManager> simppManager,
com.google.inject.Provider<UpdateHandler> updateHandler,
GuidMapManager guidMapManager,
UDPReplyHandlerCache udpReplyHandlerCache,
com.google.inject.Provider<InspectionRequestHandler> inspectionRequestHandlerFactory,
com.google.inject.Provider<UDPCrawlerPingHandler> udpCrawlerPingHandlerFactory,
PingRequestFactory pingRequestFactory,
MessageHandlerBinder messageHandlerBinder,
com.google.inject.Provider<OOBHandler> oobHandlerFactory,
com.google.inject.Provider<MACCalculatorRepositoryManager> MACCalculatorRepositoryManager,
com.google.inject.Provider<LimeACKHandler> limeACKHandler,
OutgoingQueryReplyFactory outgoingQueryReplyFactory,
QRPUpdater qrpUpdater,
URNFilter urnFilter)
| Method Detail |
|---|
public void setMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
setMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Message
public void addMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
addMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Messagepublic MessageHandler getMessageHandler(Class<? extends Message> clazz)
MessageRouter
getMessageHandler in interface MessageRouter
public void setUDPMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
setUDPMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Message
public void addUDPMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
addUDPMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Messagepublic MessageHandler getUDPMessageHandler(Class<? extends Message> clazz)
MessageRouter
getUDPMessageHandler in interface MessageRouter
public void setMulticastMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
setMulticastMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Message
public void addMulticastMessageHandler(Class<? extends Message> clazz,
MessageHandler handler)
MessageRouter
addMulticastMessageHandler in interface MessageRouterclazz - The Class of the Messagehandler - The Handler of the Messagepublic MessageHandler getMulticastMessageHandler(Class<? extends Message> clazz)
MessageRouter
getMulticastMessageHandler in interface MessageRouterpublic void initialize()
initialize in interface Servicepublic String getServiceName()
getServiceName in interface Servicepublic void start()
start in interface Servicepublic void stop()
stop in interface Servicepublic void originateQueryGUID(byte[] guid)
MessageRouter
originateQueryGUID in interface MessageRouter
public void queryKilled(GUID guid)
throws IllegalArgumentException
MessageRouter
queryKilled in interface MessageRouterIllegalArgumentException - if the guid is null
public void downloadFinished(GUID guid)
throws IllegalArgumentException
MessageRouter
downloadFinished in interface MessageRouterIllegalArgumentException - if the guid is nullpublic Set<GUESSEndpoint> getQueryLocs(GUID guid)
getQueryLocs in interface MessageRouterguid - the guid of the query you want endpoints for.public String getPingRouteTableDump()
getPingRouteTableDump in interface MessageRouterpublic String getQueryRouteTableDump()
getQueryRouteTableDump in interface MessageRouterpublic String getPushRouteTableDump()
getPushRouteTableDump in interface MessageRouter
public void handleMessage(Message msg,
ReplyHandler receivingConnection)
MessageRouter
handleMessage in interface MessageRouterreceivingConnection - the ReplyHandler over which
the message was received
public void handleUDPMessage(Message msg,
InetSocketAddress addr)
MessageRouter
handleUDPMessage in interface MessageRoutermsg - the Message receivedaddr - the InetSocketAddress containing the IP and
port of the client node
public void handleMulticastMessage(Message msg,
InetSocketAddress addr)
MessageRouter
handleMulticastMessage in interface MessageRoutermsg - the Message recieved.addr - the InetSocketAddress containing the IP and
port of the client node.
protected boolean hasValidQueryKey(InetAddress ip,
int port,
QueryRequest qr)
protected void sendAcknowledgement(InetSocketAddress addr,
byte[] guid)
protected void handleUDPPingRequest(PingRequest pingRequest,
ReplyHandler handler,
InetSocketAddress addr)
protected void sendQueryKeyPong(PingRequest pr,
InetSocketAddress addr)
protected void handleUDPPingReply(PingReply reply,
ReplyHandler handler,
InetAddress address,
int port)
public void handleQueryRequest(QueryRequest request,
ReplyHandler handler,
ResultCounter counter,
boolean locallyEvaluate)
locallyEvaluate - false if you don't want to send the query to
leaves and yourself, true otherwise....
public boolean addBypassedSource(ReplyNumberVendorMessage reply,
ReplyHandler handler)
addBypassedSource in interface MessageRouter#getQueryLocs(GUID)} for retrieval
public boolean addBypassedSource(QueryReply reply,
ReplyHandler handler)
addBypassedSource in interface MessageRouter#getQueryLocs(GUID)} for retrievalpublic int getNumOOBToRequest(ReplyNumberVendorMessage reply)
MessageRouterreply.
getNumOOBToRequest in interface MessageRouterpublic boolean isQueryAlive(GUID guid)
isQueryAlive in interface MessageRouter
public boolean isHostUnicastQueried(GUID guid,
IpPort host)
MessageRouter
isHostUnicastQueried in interface MessageRouter
protected void handleUDPConnectBackRequest(UDPConnectBackVendorMessage udp,
Connection source)
protected void handleUDPConnectBackRedirect(UDPConnectBackRedirect udp,
Connection source)
protected void handleTCPConnectBackRequest(TCPConnectBackVendorMessage tcp,
Connection source)
protected void handleTCPConnectBackRedirect(TCPConnectBackRedirect tcp,
Connection source)
protected void handlePushProxyRequest(PushProxyRequest ppReq,
RoutedConnection source)
protected void handleQueryStatus(QueryStatusResponse resp,
RoutedConnection leaf)
public void sendPingRequest(PingRequest request,
RoutedConnection connection)
MessageRouter
sendPingRequest in interface MessageRouter
public void sendQueryRequest(QueryRequest request,
RoutedConnection connection)
MessageRouter
sendQueryRequest in interface MessageRouterpublic void broadcastPingRequest(PingRequest ping)
MessageRouter
broadcastPingRequest in interface MessageRouterpublic void sendDynamicQuery(QueryRequest query)
MessageRouter
sendDynamicQuery in interface MessageRouterquery - the QueryRequest instance that generates
queries for this dynamic queryprotected void originateMulticastQuery(QueryRequest query)
query -
public final void forwardQueryRequestToLeaves(QueryRequest query,
ReplyHandler handler)
MessageRouter
forwardQueryRequestToLeaves in interface MessageRouterhandler - the ReplyHandler that responds to the
request appropriately
protected void unicastQueryRequest(QueryRequest query,
ReplyHandler conn)
protected void multicastQueryRequest(QueryRequest query)
public boolean sendInitialQuery(QueryRequest query,
RoutedConnection mc)
MessageRouter
sendInitialQuery in interface MessageRoutermc - The RoutedConnection to send the query along
protected abstract void respondToPingRequest(PingRequest request,
ReplyHandler handler)
protected abstract void respondToUDPPingRequest(PingRequest request,
InetSocketAddress addr,
ReplyHandler handler)
request - the PingRequest to serviceaddr - the InetSocketAddress containing the pinghandler - the ReplyHandler instance from which the
ping was received and to which pongs should be sent
protected abstract boolean respondToQueryRequest(QueryRequest queryRequest,
byte[] clientGUID,
ReplyHandler handler)
protected void handlePingReply(PingReply reply,
ReplyHandler handler)
In all cases, the ping reply is recorded into the host catcher.
Override as desired, but you probably want to call super.handlePingReply if you do.
public void handleQueryReply(QueryReply queryReply,
ReplyHandler handler)
MessageRouterOverride as desired, but you probably want to call super.handleQueryReply if you do. This is public for testing purposes.
handleQueryReply in interface MessageRouterpublic ReplyHandler getPushHandler(byte[] guid)
getPushHandler in interface MessageRouterguid - the client guid
protected void sendPingReply(PingReply pong,
ReplyHandler handler)
protected void sendQueryReply(QueryReply queryReply)
throws IOException
IOException - if no appropriate route exists.
public void sendPushRequest(PushRequest push)
throws IOException
MessageRouter
sendPushRequest in interface MessageRouterIOException - if no appropriate route exists.public void sendMulticastPushRequest(PushRequest push)
MessageRouter
sendMulticastPushRequest in interface MessageRouter
public Iterable<QueryReply> responsesToQueryReplies(Response[] responses,
QueryRequest queryRequest)
MessageRouterNOTE: This method doesnt have any side effect, and does not modify the state of this object
responsesToQueryReplies in interface MessageRouterresponses - The responses to be convertedqueryRequest - The query request corresponding to which we are
generating query replies.
public Iterable<QueryReply> responsesToQueryReplies(Response[] responses,
QueryRequest queryRequest,
int REPLY_LIMIT,
SecurityToken securityToken)
NOTE: This method doesnt have any side effect, and does not modify the state of this object
responsesToQueryReplies in interface MessageRouterresponses - The responses to be convertedqueryRequest - The query request corresponding to which we are
generating query replies.REPLY_LIMIT - the maximum number of responses to have in each reply.security - token might be null
public QueryRouteTable getQueryRouteTable()
MessageRouter
getQueryRouteTable in interface MessageRouter
public void registerMessageListener(byte[] guid,
MessageListener ml)
MessageRouter
registerMessageListener in interface MessageRouter
public void unregisterMessageListener(byte[] guid,
MessageListener ml)
MessageRouter
unregisterMessageListener in interface MessageRouterpublic void forwardInspectionRequestToLeaves(InspectionRequest ir)
MessageRouter
forwardInspectionRequestToLeaves in interface MessageRouterpublic long getOOBExpireTime()
MessageRouter
getOOBExpireTime in interface MessageRouter
|
LimeWire Consolidated API | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||