1 module hunt.http.codec.websocket.frame.ReadOnlyDelegatedFrame;
2 
3 import hunt.http.WebSocketFrame;
4 import hunt.io.ByteBuffer;
5 
6 /**
7  * Immutable, Read-only, WebSocketFrame implementation.
8  */
9 class ReadOnlyDelegatedFrame : WebSocketFrame {
10     private WebSocketFrame frame;
11 
12     this(WebSocketFrame frame) {
13         this.frame = frame;
14     }
15 
16     override
17     byte[] getMask() {
18         return frame.getMask();
19     }
20 
21     override
22     byte getOpCode() {
23         return frame.getOpCode();
24     }
25 
26     override
27     ByteBuffer getPayload() {
28         if (!frame.hasPayload()) {
29             return null;
30         }
31         return frame.getPayload();
32     }
33 
34     override
35     int getPayloadLength() {
36         return frame.getPayloadLength();
37     }
38 
39     override
40     WebSocketFrameType getType() {
41         return frame.getType();
42     }
43 
44     override
45     bool hasPayload() {
46         return frame.hasPayload();
47     }
48 
49     override
50     bool isFin() {
51         return frame.isFin();
52     }
53 
54     override
55     bool isMasked() {
56         return frame.isMasked();
57     }
58 
59     override
60     bool isRsv1() {
61         return frame.isRsv1();
62     }
63 
64     override
65     bool isRsv2() {
66         return frame.isRsv2();
67     }
68 
69     override
70     bool isRsv3() {
71         return frame.isRsv3();
72     }
73 }