net.kano.joscar.snaccmd.conn
Class MigrationNotice

java.lang.Object
  extended bySnacCommand
      extended byConnCommand
          extended byMigrationNotice

public class MigrationNotice
extends ConnCommand

A SNAC command sent to tell the client to "migrate" to another server.

Source of this SNAC:
AIM server
SNAC command type:
Family 0x01, command 0x12

Field Summary
 
Fields inherited from class ConnCommand
CMD_CLIENT_READY, CMD_CLIENT_VERS, CMD_ENCINFOACK, CMD_EXTRA_ACK, CMD_MIGRATE_PLS, CMD_MY_INFO_REQ, CMD_NOOP, CMD_PAUSE, CMD_PAUSE_ACK, CMD_RATE_ACK, CMD_RATE_CHG, CMD_RATE_INFO, CMD_RATE_REQ, CMD_RESUME, CMD_SERV_VERS, CMD_SERVER_READY, CMD_SERVICE_REDIR, CMD_SERVICE_REQ, CMD_SET_IDLE, CMD_SETENCINFO, CMD_SETEXTRAINFO, CMD_UPDATE, CMD_WARNED, CMD_YOUR_INFO, FAMILY_CONN, FAMILY_INFO
 
Fields inherited from class SnacCommand
SNACFLAG_DEFAULT
 
Constructor Summary
protected MigrationNotice(SnacPacket packet)
          Creates a new migration notice command from the given incoming SNAC packet.
  MigrationNotice(java.lang.String host, ByteBlock cookie, int[] families)
          Creates a new outgoing migration notice command with the given supported SNAC families, hostname, and login cookie for that host.
 
Method Summary
 ByteBlock getCookie()
          Returns the login cookie to be used upon migrating (connecting) to the new server.
 int[] getFamilies()
          Returns the SNAC families supported by the host to which the client should migrate, or null if all families on the current connection are being migrated.
 java.lang.String getHost()
          Returns the host to which the client should migrate.
 java.lang.String toString()
           
 void writeData(java.io.OutputStream out)
          Writes this command's SNAC data block to the given stream.
 
Methods inherited from class SnacCommand
getCommand, getFamily, getFlag1, getFlag2
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

MigrationNotice

protected MigrationNotice(SnacPacket packet)
Creates a new migration notice command from the given incoming SNAC packet.

Parameters:
packet - an incoming migration notice packet

MigrationNotice

public MigrationNotice(java.lang.String host,
                       ByteBlock cookie,
                       int[] families)
Creates a new outgoing migration notice command with the given supported SNAC families, hostname, and login cookie for that host. The list of SNAC families may be null to indicate that all families on the current connection are being migrated.

Parameters:
host - the host to which the client should migrate
cookie - a login cookie for the given host
families - a list of SNAC families supported by the given host, or null if all families supported by the current connection are supported
Method Detail

getHost

public final java.lang.String getHost()
Returns the host to which the client should migrate.

Returns:
the host to which the client should migrate

getCookie

public final ByteBlock getCookie()
Returns the login cookie to be used upon migrating (connecting) to the new server.

Returns:
a login cookie for the migration destination server

getFamilies

public final int[] getFamilies()
Returns the SNAC families supported by the host to which the client should migrate, or null if all families on the current connection are being migrated. If this is not null, the current connection should not be dropped, as some families are still supported.

Returns:
the migration host's supported SNAC families

writeData

public void writeData(java.io.OutputStream out)
               throws java.io.IOException
Description copied from class: SnacCommand
Writes this command's SNAC data block to the given stream. The SNAC data block is the data after the first ten bytes of a SNAC packet.

Specified by:
writeData in class SnacCommand
Parameters:
out - the stream to which to write the SNAC data
Throws:
java.io.IOException - if an I/O error occurs

toString

public java.lang.String toString()