/* 9P Protocol JAVA
 * P9P/msg/Twrite9P.java
 * Autor: Jaime Garzon (2006) jgarzon@gmail.com
 *
 * Esta clase es una implementacion del mensaje
 * Twrite, usado en el protocolo 9P de Plan9P, descrito
 * en la seccion 5 del manual de Plan 9: "Plan 9 File Protocol"
 *
 * Los metodos Write y Read, permiten escribir el valor
 * en un Buffer o leerlo de un array de bytes, respectivamente.
 * El metodo debug() es usado para depuracion de los mensajes.
*/

package P9P.msg;
import P9P.type.*;
import java.io.*;

public class Twrite9P extends tmsg9P {

   public int9P fid = new int9P();
   public long9P offset = new long9P();
   public int9P count = new int9P();
   public data9P data = new data9P();

   public void write(ByteArrayOutputStream buf) {
      type.write(buf);
      tag.write(buf);
      fid.write(buf);
      offset.write(buf);
      count.write(buf);
      data.write(buf);
   }

   public void read (byte[] msg, int i) {
      type.read(msg,i);
      tag.read(msg,i+=1);
      fid.read(msg,i+=2);
      offset.read(msg,i+=4);
      count.read(msg,i+=8);
      data.read(msg,i,(int)count.value);
   }

   public String toString() {
      return tagDb()+"Twrite fid:"+fid+"offset:"+offset+
         "count:"+count;
   }
}