1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.jboss.netty.handler.codec.spdy;
17
18 import org.jboss.netty.buffer.ChannelBuffer;
19 import org.jboss.netty.buffer.ChannelBuffers;
20 import org.jboss.netty.util.internal.StringUtil;
21
22
23
24
25 public class DefaultSpdyDataFrame implements SpdyDataFrame {
26
27 private int streamId;
28 private boolean last;
29 private boolean compressed;
30 private ChannelBuffer data = ChannelBuffers.EMPTY_BUFFER;
31
32
33
34
35
36
37 public DefaultSpdyDataFrame(int streamId) {
38 setStreamId(streamId);
39 }
40
41 public int getStreamID() {
42 return getStreamId();
43 }
44
45 public int getStreamId() {
46 return streamId;
47 }
48
49 public void setStreamID(int streamId) {
50 setStreamId(streamId);
51 }
52
53 public void setStreamId(int streamId) {
54 if (streamId <= 0) {
55 throw new IllegalArgumentException(
56 "Stream-ID must be positive: " + streamId);
57 }
58 this.streamId = streamId;
59 }
60
61 public boolean isLast() {
62 return last;
63 }
64
65 public void setLast(boolean last) {
66 this.last = last;
67 }
68
69 public boolean isCompressed() {
70 return compressed;
71 }
72
73 public void setCompressed(boolean compressed) {
74 this.compressed = compressed;
75 }
76
77 public ChannelBuffer getData() {
78 return data;
79 }
80
81 public void setData(ChannelBuffer data) {
82 if (data == null) {
83 data = ChannelBuffers.EMPTY_BUFFER;
84 }
85 if (data.readableBytes() > SpdyCodecUtil.SPDY_MAX_LENGTH) {
86 throw new IllegalArgumentException("data payload cannot exceed "
87 + SpdyCodecUtil.SPDY_MAX_LENGTH + " bytes");
88 }
89 this.data = data;
90 }
91
92 @Override
93 public String toString() {
94 StringBuilder buf = new StringBuilder();
95 buf.append(getClass().getSimpleName());
96 buf.append("(last: ");
97 buf.append(isLast());
98 buf.append("; compressed: ");
99 buf.append(isCompressed());
100 buf.append(')');
101 buf.append(StringUtil.NEWLINE);
102 buf.append("--> Stream-ID = ");
103 buf.append(streamId);
104 buf.append(StringUtil.NEWLINE);
105 buf.append("--> Size = ");
106 buf.append(data.readableBytes());
107 return buf.toString();
108 }
109 }