1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.eclipse.jetty.websocket.jsr356.messages;
20
21 import java.io.IOException;
22 import java.nio.ByteBuffer;
23
24 import javax.websocket.OnMessage;
25
26 import org.eclipse.jetty.websocket.common.message.MessageAppender;
27 import org.eclipse.jetty.websocket.common.util.Utf8PartialBuilder;
28 import org.eclipse.jetty.websocket.jsr356.endpoints.JsrAnnotatedEventDriver;
29
30
31
32
33 public class TextPartialOnMessage implements MessageAppender
34 {
35 private final JsrAnnotatedEventDriver driver;
36 private final Utf8PartialBuilder utf8Partial;
37 private boolean finished;
38
39 public TextPartialOnMessage(JsrAnnotatedEventDriver driver)
40 {
41 this.driver = driver;
42 this.finished = false;
43 this.utf8Partial = new Utf8PartialBuilder();
44 }
45
46 @Override
47 public void appendFrame(ByteBuffer payload, boolean isLast) throws IOException
48 {
49 if (finished)
50 {
51 throw new IOException("Cannot append to finished buffer");
52 }
53
54 String text = utf8Partial.toPartialString(payload);
55 driver.onPartialTextMessage(text,isLast);
56 }
57
58 @Override
59 public void messageComplete()
60 {
61 finished = true;
62 }
63 }