1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.mina.protocol;
20
21 import org.apache.mina.common.ByteBuffer;
22
23 /***
24 * Encodes higher-level message objects into binary or protocol-specific data.
25 * MINA invokes {@link #encode(ProtocolSession, Object, ProtocolEncoderOutput)}
26 * method with message which is popped from the session write queue, and then
27 * the encoder implementation puts encoded {@link ByteBuffer}s into
28 * {@link ProtocolEncoderOutput} by calling
29 * {@link ProtocolEncoderOutput#write(ByteBuffer)}.
30 * <p>
31 * Please refer to
32 * <a href="../../../../../xref-examples/org/apache/mina/examples/reverser/TextLineEncoder.html"><code>TextLineEncoder</code></a>
33 * example.
34 *
35 * @author Trustin Lee (trustin@apache.org)
36 * @version $Rev: 210062 $, $Date: 2005-07-11 12:52:38 +0900 $
37 */
38 public interface ProtocolEncoder
39 {
40
41 /***
42 * Encodes higher-level message objects into binary or protocol-specific data.
43 * MINA invokes {@link #encode(ProtocolSession, Object, ProtocolEncoderOutput)}
44 * method with message which is popped from the session write queue, and then
45 * the encoder implementation puts encoded {@link ByteBuffer}s into
46 * {@link ProtocolEncoderOutput}.
47 *
48 * @throws ProtocolViolationException if the message violated protocol
49 * specification
50 */
51 void encode( ProtocolSession session, Object message,
52 ProtocolEncoderOutput out ) throws ProtocolViolationException;
53 }