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

#ifndef __gnu_javax_crypto_sasl_anonymous_AnonymousClient__
#define __gnu_javax_crypto_sasl_anonymous_AnonymousClient__

#pragma interface

#include <gnu/javax/crypto/sasl/ClientMechanism.h>
#include <gcj/array.h>

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace crypto
      {
        namespace sasl
        {
          namespace anonymous
          {
              class AnonymousClient;
          }
        }
      }
    }
  }
}

class gnu::javax::crypto::sasl::anonymous::AnonymousClient : public ::gnu::javax::crypto::sasl::ClientMechanism
{

public:
  AnonymousClient();
public: // actually protected
  virtual void initMechanism();
  virtual void resetMechanism();
public:
  virtual jboolean hasInitialResponse();
  virtual JArray< jbyte > * evaluateChallenge(JArray< jbyte > *);
private:
  JArray< jbyte > * response();
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_crypto_sasl_anonymous_AnonymousClient__
