1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package net.sf.beep4j.integration;
17
18 import java.nio.ByteBuffer;
19
20 import net.sf.beep4j.Message;
21 import net.sf.beep4j.MessageBuilder;
22 import net.sf.beep4j.Reply;
23 import net.sf.beep4j.ext.ChannelHandlerAdapter;
24
25 public class OneToManyEchoProfileHandler extends ChannelHandlerAdapter {
26
27 public static final String PROFILE = "http://www.iserver.ch/profiles/echo-2";
28
29 private final int blockSize;
30
31 public OneToManyEchoProfileHandler(int blockSize) {
32 this.blockSize = blockSize;
33 }
34
35 public void messageReceived(Message message, Reply handler) {
36 ByteBuffer buffer = message.getContentBuffer();
37 int remaining = buffer.remaining();
38
39 while (remaining > 0) {
40 MessageBuilder builder = handler.createMessageBuilder();
41 int size = Math.min(blockSize, remaining);
42 buffer.limit(buffer.position() + size);
43 builder.getContentBuffer(size).put(buffer);
44 handler.sendANS(builder.getMessage());
45 remaining -= size;
46 }
47
48 handler.sendNUL();
49 }
50
51 }