de.tud.dvs1.mmpgp2p
Class MmpgP2PCommand

java.lang.Object
  extended by de.tud.dvs1.mmpgp2p.MmpgP2PCommand
All Implemented Interfaces:
java.lang.Comparable

public class MmpgP2PCommand
extends java.lang.Object
implements java.lang.Comparable

Ein einzelner Befehl.

Wird ein Befehl innerhalb eines Streams übermittelt, dann wird er folgendermaßen übertragen:
"MAGIC\r\n" // String "COMMAND\r\n" // String "SESSION // Session ID des erzeugenden // long // int // Object[]

commandnr < 1024 sind Systemkommandos und dürfen nicht von einer Implementierung verwendet werden.


Field Summary
static int ACC
           
 java.lang.Object[] args
           
static int AVATARS
           
static int CHANGEREGION
           
 int command
           
protected  long createtime
           
static int DEL_AVATARS
           
static int DEL_GAMEWORLD
           
static int DEL_OBJECTS
           
static int END_GAME
           
static int ERROR
           
static int FALSE
           
static int GAMEWORLD
           
static int GZIP
           
static int INVALID
           
static int LOGOUT
           
static int MERGE
           
static int NEWREGION
           
static int NOP
           
static int OBJECTS
           
static int OBJECTS_EXISTING
           
static int PAUSE
           
static int PLAY
           
static int REQUEST_MERGE
           
static int RULESET
           
protected  int sender
           
static int SHUTDOWN
           
static int SPLIT
           
static int START_GAME
           
protected  long transmittime
           
static int TRUE
           
static int UPD_AVATARS
           
static int UPD_GAMEWORLD
           
static int UPD_OBJECTS
           
static int UPDATETICKET
           
 
Constructor Summary
MmpgP2PCommand()
          Erzeuge ein NOP-Kommando
MmpgP2PCommand(int c, java.lang.Object[] args)
          Erzeuge ein Kommando
MmpgP2PCommand(java.io.ObjectInputStream in, boolean includingHeader)
          Erzeuge ein Kommando aus einem InputStream
 
Method Summary
 int compareTo(java.lang.Object o)
          Vergleiche dieses Objekt anhand des Erzeugungszeitpunktes mit anderen.
static MmpgP2PCommand getSystemCommand(int c, java.lang.Object arg)
           
static MmpgP2PCommand getSystemCommand(int c, java.lang.Object[] args)
          System-Commandos (ID < 1024) dürfen nur vom System verwendet werden!
 void parseInput(java.io.ObjectInputStream in, boolean includingHeader)
          Diese Methode rekonstruiert einen Befehl aus einem Stream.
 void sendCommand(java.io.ObjectOutputStream out, boolean flush)
          Sende diesen Befehl über einen Stream.
 void sendCommand(java.io.OutputStream outstream, boolean flush)
          Sende diesen Befehl über einen Stream.
 void setSender(int s)
          Setze die Session-ID des Senders dieses Commands
 java.lang.String toString()
           
 java.lang.String toString(boolean detail)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INVALID

public static final int INVALID
See Also:
Constant Field Values

NOP

public static final int NOP
See Also:
Constant Field Values

ACC

public static final int ACC
See Also:
Constant Field Values

ERROR

public static final int ERROR
See Also:
Constant Field Values

FALSE

public static final int FALSE
See Also:
Constant Field Values

TRUE

public static final int TRUE
See Also:
Constant Field Values

START_GAME

public static final int START_GAME
See Also:
Constant Field Values

END_GAME

public static final int END_GAME
See Also:
Constant Field Values

PLAY

public static final int PLAY
See Also:
Constant Field Values

PAUSE

public static final int PAUSE
See Also:
Constant Field Values

LOGOUT

public static final int LOGOUT
See Also:
Constant Field Values

SHUTDOWN

public static final int SHUTDOWN
See Also:
Constant Field Values

CHANGEREGION

public static final int CHANGEREGION
See Also:
Constant Field Values

NEWREGION

public static final int NEWREGION
See Also:
Constant Field Values

UPDATETICKET

public static final int UPDATETICKET
See Also:
Constant Field Values

AVATARS

public static final int AVATARS
See Also:
Constant Field Values

GAMEWORLD

public static final int GAMEWORLD
See Also:
Constant Field Values

RULESET

public static final int RULESET
See Also:
Constant Field Values

OBJECTS

public static final int OBJECTS
See Also:
Constant Field Values

OBJECTS_EXISTING

public static final int OBJECTS_EXISTING
See Also:
Constant Field Values

UPD_AVATARS

public static final int UPD_AVATARS
See Also:
Constant Field Values

UPD_GAMEWORLD

public static final int UPD_GAMEWORLD
See Also:
Constant Field Values

UPD_OBJECTS

public static final int UPD_OBJECTS
See Also:
Constant Field Values

DEL_AVATARS

public static final int DEL_AVATARS
See Also:
Constant Field Values

DEL_GAMEWORLD

public static final int DEL_GAMEWORLD
See Also:
Constant Field Values

DEL_OBJECTS

public static final int DEL_OBJECTS
See Also:
Constant Field Values

SPLIT

public static final int SPLIT
See Also:
Constant Field Values

MERGE

public static final int MERGE
See Also:
Constant Field Values

REQUEST_MERGE

public static final int REQUEST_MERGE
See Also:
Constant Field Values

GZIP

public static final int GZIP
See Also:
Constant Field Values

createtime

protected long createtime

transmittime

protected long transmittime

sender

protected int sender

command

public int command

args

public java.lang.Object[] args
Constructor Detail

MmpgP2PCommand

public MmpgP2PCommand(java.io.ObjectInputStream in,
                      boolean includingHeader)
               throws MmpgP2PException
Erzeuge ein Kommando aus einem InputStream

Throws:
MmpgP2PException

MmpgP2PCommand

public MmpgP2PCommand(int c,
                      java.lang.Object[] args)
               throws MmpgP2PException
Erzeuge ein Kommando

Parameters:
c - Die ID des Commandos. c < 1024 sind Systemkommandos und dürfen nicht von einer Implementierung verwendet werden.
args - Ein Array von Argumenten zu diesem Commando
Throws:
MmpgP2PException

MmpgP2PCommand

public MmpgP2PCommand()
Erzeuge ein NOP-Kommando

Method Detail

getSystemCommand

public static MmpgP2PCommand getSystemCommand(int c,
                                              java.lang.Object arg)
                                       throws MmpgP2PException
Throws:
MmpgP2PException

getSystemCommand

public static MmpgP2PCommand getSystemCommand(int c,
                                              java.lang.Object[] args)
                                       throws MmpgP2PException
System-Commandos (ID < 1024) dürfen nur vom System verwendet werden!

Throws:
MmpgP2PException

compareTo

public int compareTo(java.lang.Object o)
Vergleiche dieses Objekt anhand des Erzeugungszeitpunktes mit anderen. Sinnvolle Werte regeben sich natürlich nur, wenn das zu verleichende Objekt auch ein MmpgP2PCommand ist.

Specified by:
compareTo in interface java.lang.Comparable
Parameters:
o - Das Objekt, mit dem Verglichen wird
Returns:
0 bei gleichem Zeitpunkt, -1 falls das vergleichende Objekt später erzeugt wurde und 1, falls es früher erzeugt wurde.

setSender

public void setSender(int s)
Setze die Session-ID des Senders dieses Commands


parseInput

public void parseInput(java.io.ObjectInputStream in,
                       boolean includingHeader)
                throws java.io.IOException,
                       java.lang.ClassNotFoundException
Diese Methode rekonstruiert einen Befehl aus einem Stream.

Parameters:
in - Der Stream, aus dem ein Kommando rekonstruiert wird.
Throws:
java.io.IOException
java.lang.ClassNotFoundException

sendCommand

public void sendCommand(java.io.OutputStream outstream,
                        boolean flush)
                 throws java.io.IOException
Sende diesen Befehl über einen Stream.

Parameters:
outstream - Der OutputStream, über den das Befehl übertragen werden soll.
flush - gibt an, ob der OutputStream nach dem übermitteln der Daten geflusht werden soll
Throws:
java.io.IOException

sendCommand

public void sendCommand(java.io.ObjectOutputStream out,
                        boolean flush)
                 throws java.io.IOException
Sende diesen Befehl über einen Stream.

Parameters:
outstream - Der OutputStream, über den das Befehl übertragen werden soll.
flush - gibt an, ob der OutputStream nach dem übermitteln der Daten geflusht werden soll
Throws:
java.io.IOException

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toString

public java.lang.String toString(boolean detail)