
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __gnu_java_security_ber_BERReader__
#define __gnu_java_security_ber_BERReader__

#pragma interface

#include <gnu/java/security/der/DERReader.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace security
      {
        namespace ber
        {
            class BERReader;
        }
        namespace der
        {
            class DERValue;
        }
      }
    }
  }
}

class gnu::java::security::ber::BERReader : public ::gnu::java::security::der::DERReader
{

public:
  BERReader(JArray< jbyte > *);
  BERReader(JArray< jbyte > *, jint, jint);
  BERReader(::java::io::InputStream *);
  virtual ::gnu::java::security::der::DERValue * read();
  virtual jint peek();
  static ::java::lang::Class class$;
};

#endif // __gnu_java_security_ber_BERReader__
