com.limegroup.gnutella.messages.vendor
Class MessagesSupportedVendorMessage

java.lang.Object
  extended bycom.limegroup.gnutella.messages.Message
      extended bycom.limegroup.gnutella.messages.vendor.VendorMessage
          extended bycom.limegroup.gnutella.messages.vendor.MessagesSupportedVendorMessage
All Implemented Interfaces:
java.lang.Comparable, java.io.Serializable

public final class MessagesSupportedVendorMessage
extends VendorMessage

The message that lets other know what messages you support. Everytime you add a subclass of VendorMessage you should modify this class (assuming your message is delivered over TCP).

See Also:
Serialized Form

Field Summary
static int VERSION
           
 
Fields inherited from class com.limegroup.gnutella.messages.vendor.VendorMessage
F_BEAR_VENDOR_ID, F_GTKG_VENDOR_ID, F_HOPS_FLOW, F_LIME_ACK, F_LIME_VENDOR_ID, F_MESSAGES_SUPPORTED, F_NULL_VENDOR_ID, F_PUSH_PROXY_ACK, F_PUSH_PROXY_REQ, F_REPLY_NUMBER, F_TCP_CONNECT_BACK, F_UDP_CONNECT_BACK
 
Fields inherited from class com.limegroup.gnutella.messages.Message
F_PING, F_PING_REPLY, F_PUSH, F_QUERY, F_QUERY_REPLY, F_ROUTE_TABLE_UPDATE, F_VENDOR_MESSAGE, F_VENDOR_MESSAGE_STABLE, N_MULTICAST, N_TCP, N_UDP, N_UNKNOWN, RECORD_STATS, SOFT_MAX
 
Method Summary
 boolean equals(java.lang.Object other)
           
 int hashCode()
           
static MessagesSupportedVendorMessage instance()
           
 void recordDrop()
          Overridden purely for stats handling.
 int supportsHopsFlow()
           
 int supportsLeafGuidance()
           
 int supportsMessage(byte[] vendorID, int selector)
           
 int supportsPushProxy()
           
 int supportsTCPConnectBack()
           
 int supportsUDPConnectBack()
           
protected  void writePayload(java.io.OutputStream out)
          Overridden purely for stats handling.
 
Methods inherited from class com.limegroup.gnutella.messages.vendor.VendorMessage
deriveVendorMessage, getPayload, getVersion, stripExtendedPayload
 
Methods inherited from class com.limegroup.gnutella.messages.Message
compareTo, getCreationTime, getFunc, getGUID, getHops, getLength, getNetwork, getPriority, getTotalLength, getTTL, hop, isMulticast, isTCP, isUDP, isUnknownNetwork, makeGuid, read, read, read, read, read, readNullTerminatedBytes, repOk, setGUID, setHops, setPriority, setTTL, toString, updateLength, write, writeGemExtension, writeGemExtension, writeGemExtensions
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

VERSION

public static final int VERSION
See Also:
Constant Field Values
Method Detail

instance

public static MessagesSupportedVendorMessage instance()
                                               throws BadPacketException
Returns:
A MessagesSupportedVendorMessage with the set of messages this client supports.
Throws:
BadPacketException

supportsMessage

public int supportsMessage(byte[] vendorID,
                           int selector)
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

supportsTCPConnectBack

public int supportsTCPConnectBack()
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

supportsUDPConnectBack

public int supportsUDPConnectBack()
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

supportsHopsFlow

public int supportsHopsFlow()
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

supportsPushProxy

public int supportsPushProxy()
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

supportsLeafGuidance

public int supportsLeafGuidance()
Returns:
-1 if the message isn't supported, else it returns the version of the message supported.

equals

public boolean equals(java.lang.Object other)
Overrides:
equals in class VendorMessage
Returns:
true if the two VMPs have identical signatures - no more, no less. Does not take version into account, but if different versions have different payloads, they'll differ.

hashCode

public int hashCode()
Overrides:
hashCode in class VendorMessage

writePayload

protected void writePayload(java.io.OutputStream out)
                     throws java.io.IOException
Overridden purely for stats handling.

Overrides:
writePayload in class VendorMessage
Throws:
java.io.IOException

recordDrop

public void recordDrop()
Overridden purely for stats handling.

Overrides:
recordDrop in class VendorMessage