KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > snmp4j > asn1 > BERSerializable


1 /*_############################################################################
2   _##
3   _## SNMP4J - BERSerializable.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 package org.snmp4j.asn1;
22
23 import java.io.*;
24
25 /**
26  * The interface <code>BERSerializable</code> has to be implemented by
27  * any data type class that needs to be serialized using the Basic Encoding
28  * Rules (BER) that provides enconding rules for ASN.1 data types.
29  *
30  * @author Jochen Katz & Frank Fock
31  * @version 1.0
32  */

33 public interface BERSerializable /*extends Serializable*/ {
34
35   /**
36    * Returns the length of this <code>BERSerializable</code> object
37    * in bytes when encoded according to the Basic Encoding Rules (BER).
38    * @return
39    * the BER encoded length of this variable.
40    */

41   int getBERLength();
42
43   /**
44    * Returns the length of the payload of this <code>BERSerializable</code> object
45    * in bytes when encoded according to the Basic Encoding Rules (BER).
46    * @return
47    * the BER encoded length of this variable.
48    */

49   int getBERPayloadLength();
50
51   /**
52    * Decodes a <code>Variable</code> from an <code>InputStream</code>.
53    * @param inputStream
54    * an <code>InputStream</code> containing a BER encoded byte stream.
55    * @throws IOException
56    * if the stream could not be decoded by using BER rules.
57    */

58   void decodeBER(BERInputStream inputStream) throws IOException;
59
60   /**
61    * Encodes a <code>Variable</code> to an <code>OutputStream</code>.
62    * @param outputStream
63    * an <code>OutputStream</code>.
64    * @throws IOException
65    * if an error occurs while writing to the stream.
66    */

67   void encodeBER(OutputStream outputStream) throws IOException;
68
69 }
70
Popular Tags