com.aelitis.azureus.core.peermanager.messaging.bittorrent.ltep
Class LTHandshake

java.lang.Object
  extended by com.aelitis.azureus.core.peermanager.messaging.bittorrent.ltep.LTHandshake
All Implemented Interfaces:
LTMessage, Message

public class LTHandshake
extends Object
implements LTMessage

Copyright (C) Azureus Software, Inc, All Rights Reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.


Field Summary
 
Fields inherited from interface com.aelitis.azureus.core.peermanager.messaging.bittorrent.ltep.LTMessage
ID_DISABLED_EXT, ID_DISABLED_EXT_BYTES, ID_LT_HANDSHAKE, ID_LT_HANDSHAKE_BYTES, ID_UT_METADATA, ID_UT_METADATA_BYTES, ID_UT_PEX, ID_UT_PEX_BYTES, ID_UT_UPLOAD_ONLY, ID_UT_UPLOAD_ONLY_BYTES, LT_FEATURE_ID, SUBID_DISABLED_EXT, SUBID_LT_HANDSHAKE, SUBID_UT_METADATA, SUBID_UT_PEX, SUBID_UT_UPLOAD_ONLY
 
Fields inherited from interface com.aelitis.azureus.core.peermanager.messaging.Message
TYPE_DATA_PAYLOAD, TYPE_PROTOCOL_PAYLOAD
 
Constructor Summary
LTHandshake(Map data_dict, byte version)
           
 
Method Summary
 void addDefaultExtensionMappings(boolean enable_pex, boolean enable_md, boolean enable_uo)
           
 void addOptionalExtensionMapping(String id, long subid)
           
 Message deserialize(DirectByteBuffer data, byte version)
          Create a new instance of this message by decoding the given byte serialization.
 void destroy()
          Destroy the message; i.e.
 byte[] getBencodedData()
           
 String getBencodedString()
           
 String getClientName()
           
 DirectByteBuffer[] getData()
          Get message payload data.
 Map getDataMap()
           
 String getDescription()
          Get textual description of this particular message.
 Map getExtensionMapping()
           
 String getFeatureID()
          Get the main feature set name this message belongs to.
 int getFeatureSubID()
          Get the static message sub-id for the feature.
 String getID()
          Get message id.
 byte[] getIDBytes()
           
 InetAddress getIPv6()
           
 int getMetadataSize()
           
 int getTCPListeningPort()
           
 int getType()
          Get message type.
 byte getVersion()
           
 Boolean isCryptoRequested()
           
 boolean isUploadOnly()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LTHandshake

public LTHandshake(Map data_dict,
                   byte version)
Method Detail

deserialize

public Message deserialize(DirectByteBuffer data,
                           byte version)
                    throws MessageException
Description copied from interface: Message
Create a new instance of this message by decoding the given byte serialization.

Specified by:
deserialize in interface Message
Parameters:
data - to deserialize
Returns:
decoded message instance
Throws:
MessageException - if the decoding process fails NOTE: Does not auto-return given direct buffer on thrown exception.

getData

public DirectByteBuffer[] getData()
Description copied from interface: Message
Get message payload data.

Specified by:
getData in interface Message
Returns:
message data buffers

destroy

public void destroy()
Description copied from interface: Message
Destroy the message; i.e. perform cleanup actions.

Specified by:
destroy in interface Message

getDescription

public String getDescription()
Description copied from interface: Message
Get textual description of this particular message.

Specified by:
getDescription in interface Message
Returns:
description

getBencodedString

public String getBencodedString()

getBencodedData

public byte[] getBencodedData()

getDataMap

public Map getDataMap()

getClientName

public String getClientName()

isUploadOnly

public boolean isUploadOnly()

getIPv6

public InetAddress getIPv6()

getTCPListeningPort

public int getTCPListeningPort()

isCryptoRequested

public Boolean isCryptoRequested()

getExtensionMapping

public Map getExtensionMapping()

getMetadataSize

public int getMetadataSize()

addDefaultExtensionMappings

public void addDefaultExtensionMappings(boolean enable_pex,
                                        boolean enable_md,
                                        boolean enable_uo)

addOptionalExtensionMapping

public void addOptionalExtensionMapping(String id,
                                        long subid)

getFeatureID

public String getFeatureID()
Description copied from interface: Message
Get the main feature set name this message belongs to.

Specified by:
getFeatureID in interface Message
Returns:
feature id

getFeatureSubID

public int getFeatureSubID()
Description copied from interface: Message
Get the static message sub-id for the feature.

Specified by:
getFeatureSubID in interface Message
Returns:
sub id

getID

public String getID()
Description copied from interface: Message
Get message id.

Specified by:
getID in interface Message
Returns:
id

getIDBytes

public byte[] getIDBytes()
Specified by:
getIDBytes in interface Message

getType

public int getType()
Description copied from interface: Message
Get message type.

Specified by:
getType in interface Message
Returns:
type

getVersion

public byte getVersion()
Specified by:
getVersion in interface Message