org.snmp4j.asn1
Class BEROutputStream

java.lang.Object
  extended by java.io.OutputStream
      extended by org.snmp4j.asn1.BEROutputStream
All Implemented Interfaces:
java.io.Closeable, java.io.Flushable

public class BEROutputStream
extends java.io.OutputStream

The BEROutputStream class wraps a ByteBuffer to support BER encoding. The backing buffer can be accessed directly to optimize performance and memory usage.

Version:
1.0
Author:
Frank Fock

Constructor Summary
BEROutputStream()
          Creates a BER output stream without a backing buffer set.
BEROutputStream(java.nio.ByteBuffer buffer)
          Create a BEROutputStream that uses the supplied buffer as backing buffer.
 
Method Summary
 void close()
           
 void flush()
           
 java.nio.ByteBuffer getBuffer()
          Gets the backing buffer.
 java.nio.ByteBuffer rewind()
          Rewinds backing buffer and returns it.
 void setBuffer(java.nio.ByteBuffer buffer)
          Sets the backing buffer to the supplied one and sets the offset used by rewind() to the buffers current position.
 void setFilledBuffer(java.nio.ByteBuffer buffer)
          Sets the backing buffer and sets the current position of the stream to the buffers limit (end).
 void write(byte[] b)
           
 void write(byte[] b, int off, int len)
           
 void write(int b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BEROutputStream

public BEROutputStream()
Creates a BER output stream without a backing buffer set. In order to be able to write anything to the stream, setBuffer(ByteBuffer buffer) has to be called before. Otherwise a NullPointerException will be thrown when calling one of the write operations.


BEROutputStream

public BEROutputStream(java.nio.ByteBuffer buffer)
Create a BEROutputStream that uses the supplied buffer as backing buffer.

Parameters:
buffer - a ByteBuffer whose limit and capacity must be greater or equal that the length of the encoded BER stream.
Method Detail

write

public void write(int b)
           throws java.io.IOException
Specified by:
write in class java.io.OutputStream
Throws:
java.io.IOException

write

public void write(byte[] b)
           throws java.io.IOException
Overrides:
write in class java.io.OutputStream
Throws:
java.io.IOException

write

public void write(byte[] b,
                  int off,
                  int len)
           throws java.io.IOException
Overrides:
write in class java.io.OutputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.OutputStream
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Specified by:
flush in interface java.io.Flushable
Overrides:
flush in class java.io.OutputStream
Throws:
java.io.IOException

rewind

public java.nio.ByteBuffer rewind()
Rewinds backing buffer and returns it. In contrast to the backing buffer's rewind method, this method sets the position of the buffer to the first byte of this output stream rather than to the first byte of the underlying byte array!

Returns:
the ByteBuffer backing this output stream with its current position set to the begin of the output stream.

getBuffer

public java.nio.ByteBuffer getBuffer()
Gets the backing buffer.

Returns:
the ByteBuffer backing this output stream.

setBuffer

public void setBuffer(java.nio.ByteBuffer buffer)
Sets the backing buffer to the supplied one and sets the offset used by rewind() to the buffers current position.

Parameters:
buffer - a ByteBuffer whose limit and capacity must be greater or equal that the length of the encoded BER stream.

setFilledBuffer

public void setFilledBuffer(java.nio.ByteBuffer buffer)
Sets the backing buffer and sets the current position of the stream to the buffers limit (end).

Parameters:
buffer - a ByteBuffer whose limit and capacity must be greater or equal that the length of the encoded BER stream.

Copyright 2005-2010 Frank Fock (SNMP4J.org)

Copyright © 2011 SNMP4J.org. All Rights Reserved.