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

#ifndef __javax_security_sasl_SaslServerFactory__
#define __javax_security_sasl_SaslServerFactory__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace security
    {
      namespace auth
      {
        namespace callback
        {
            class CallbackHandler;
        }
      }
      namespace sasl
      {
          class SaslServer;
          class SaslServerFactory;
      }
    }
  }
}

class javax::security::sasl::SaslServerFactory : public ::java::lang::Object
{

public:
  virtual ::javax::security::sasl::SaslServer * createSaslServer(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::Map *, ::javax::security::auth::callback::CallbackHandler *) = 0;
  virtual JArray< ::java::lang::String * > * getMechanismNames(::java::util::Map *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_security_sasl_SaslServerFactory__
