KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > transport > MessageLengthDecoder


1 /*_############################################################################
2   _##
3   _## SNMP4J - MessageLengthDecoder.java
4   _##
5   _## Copyright 2003-2007 Frank Fock and Jochen Katz (SNMP4J.org)
6   _##
7   _## Licensed under the Apache License, Version 2.0 (the "License");
8   _## you may not use this file except in compliance with the License.
9   _## You may obtain a copy of the License at
10   _##
11   _## http://www.apache.org/licenses/LICENSE-2.0
12   _##
13   _## Unless required by applicable law or agreed to in writing, software
14   _## distributed under the License is distributed on an "AS IS" BASIS,
15   _## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   _## See the License for the specific language governing permissions and
17   _## limitations under the License.
18   _##
19   _##########################################################################*/

20
21
22 package org.snmp4j.transport;
23
24 import java.nio.ByteBuffer JavaDoc;
25 import java.io.IOException JavaDoc;
26
27 /**
28  * The <code>MessageLengthDecoder</code> needs to be implemented for connection
29  * oriented transport mappings, because those transport mappings have no message
30  * boundaries. To determine the message length, the message header is decoded
31  * in a protocol specific way.
32  *
33  * @author Frank Fock
34  * @version 1.7
35  * @since 1.7
36  */

37 public interface MessageLengthDecoder {
38
39   /**
40    * Returns the minimum length of the header to be decoded. Typically this
41    * is a constant value.
42    * @return
43    * the minimum length in bytes.
44    */

45   int getMinHeaderLength();
46
47   /**
48    * Returns the total message length to read (including header) and
49    * the actual header length.
50    * @param buf
51    * a ByteBuffer with a minimum of {@link #getMinHeaderLength()}.
52    * @return
53    * the total message length in bytes and the actual header length in bytes.
54    * @throws IOException
55    * if the header cannot be decoded.
56    */

57   MessageLength getMessageLength(ByteBuffer JavaDoc buf) throws IOException JavaDoc;
58
59 }
60
Popular Tags