1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 package uk.ac.rdg.resc.jstyx.messages;
30
31 import uk.ac.rdg.resc.jstyx.StyxUtils;
32
33 /***
34 * Message sent to establish a connection
35 *
36 * @author Jon Blower
37 * $Revision: 146 $
38 * $Date: 2005-03-15 09:01:48 +0000 (Tue, 15 Mar 2005) $
39 * $Log$
40 * Revision 1.4 2005/03/15 09:01:48 jonblower
41 * Message type now stored as short, not int
42 *
43 * Revision 1.3 2005/03/11 14:02:15 jonblower
44 * Merged MINA-Test_20059309 into main line of development
45 *
46 * Revision 1.2.2.1 2005/03/10 11:50:59 jonblower
47 * Changed to fit with MINA framework
48 *
49 * Revision 1.1 2005/03/09 16:58:42 jonblower
50 * Changes to MINA-related classes
51 *
52 * Revision 1.2 2005/02/24 07:44:43 jonblower
53 * Added getFriendlyString()
54 *
55 * Revision 1.1.1.1 2005/02/16 18:58:28 jonblower
56 * Initial import
57 *
58 */
59 public class TattachMessage extends StyxMessage
60 {
61
62 private long fid;
63 private long afid;
64 private String uname;
65 private String aname;
66
67 /***
68 * Creates a new TattachMessage.
69 * @param length The total length of the message (including all header info)
70 * @param type The type of the message (a number between 100 and 127)
71 * @param tag The tag that identifies this message
72 */
73 public TattachMessage(int length, short type, int tag)
74 {
75 super(length, type, tag);
76 this.name = "Tattach";
77 }
78
79 public TattachMessage(long fid, long afid, String uname, String aname)
80 {
81 this(0, (short)104, 0);
82 this.fid = fid;
83 this.afid = afid;
84 this.uname = uname;
85 this.aname = aname;
86
87 int unameLen = StyxUtils.strToUTF8(uname).length;
88 int anameLen = StyxUtils.strToUTF8(aname).length;
89
90 this.length = StyxUtils.HEADER_LENGTH + 4 + 4 + 2 + unameLen + 2 + anameLen;
91 }
92
93 public TattachMessage(long fid, String uname)
94 {
95 this(fid, StyxUtils.NOFID, uname, "");
96 }
97
98 protected final void decodeBody(StyxBuffer buf)
99 {
100 this.fid = buf.getUInt();
101 this.afid = buf.getUInt();
102 this.uname = buf.getString();
103 this.aname = buf.getString();
104 }
105
106 protected final void encodeBody(StyxBuffer buf)
107 {
108 buf.putUInt(this.fid).putUInt(this.afid).putString(this.uname).putString(this.aname);
109 }
110
111 protected String getElements()
112 {
113 return ", " + this.fid + ", " + this.afid + ", " + this.uname +
114 ", " + this.aname;
115 }
116
117 public long getFid()
118 {
119 return fid;
120 }
121
122 public long getAfid()
123 {
124 return afid;
125 }
126
127 public String getUname()
128 {
129 return uname;
130 }
131
132 public String getAname()
133 {
134 return aname;
135 }
136
137 public String toFriendlyString()
138 {
139 return "fid: " + this.fid + ", auth fid: " + this.afid +
140 ", user: " + this.uname + ", aname: " + this.aname;
141 }
142 }