Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: org/bluej/core/SDPPacket.java


1   package  org.bluej.core;
2   
3   public  class  SDPPacket {
4     static  final  long    PSM  = 0x0001;
5     int    transid;
6     int    len;
7     byte[]  data;
8   
9     public  SDPPacket(int maxLen) {
10      transid = 0;
11      data = new byte[maxLen];
12    }
13    public  SDPPacket(int initTransId, int maxLen) {
14      this(maxLen);
15      transid = initTransId;
16    }
17  
18    public  void    write(L2CAPConn conn) throws BlueJException {
19      // write the final length
20      data[3] = (byte)(0xff&((len-5)>>8));
21      data[4] = (byte)(0xff&(len-5));
22      if (conn.getPSM() != PSM)
23        throw new BlueJException(
24              "writing SDP packet on non SDP connection");
25      conn.write(data, len);
26    }
27  
28    public  int    getTransId() { return transid; }
29    public  int    getLength() { return len; }
30  
31    public  void  reset(int pdu) {
32      len = 0;
33      addByte(pdu);
34      addShort(++transid);
35      addShort(0);      // placeholder
36    }
37    public  void  addByte(int byteVal) {
38      len = Utils.layoutBytes(1, byteVal, data, len);
39    }
40    public  void  addShort(int shortVal) {
41      len = Utils.layoutBytes(2, shortVal, data, len);
42    }
43    public  void  addLong(long longVal) {
44      len = Utils.layoutBytes(4, longVal, data, len);
45    }
46    public  void  addData(byte[] newData, int start, int newLen) {
47      for (int i = 0; i < newLen; i++)
48        data[len+i] = newData[start+i];
49      len += newLen;
50    }
51    public  void  addData(byte[] newData) {
52      addData(newData, 0, newData.length);
53    }
54    public  void  addDataElement(DataElement elem) {
55      len = Utils.layoutDataElement(elem, data, len);
56    }
57    public  String  dump() {
58      return Utils.bytesToString(data, 0, len, " ");
59    }
60  }