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

#ifndef __gnu_javax_net_ssl_provider_AbstractHandshake$1__
#define __gnu_javax_net_ssl_provider_AbstractHandshake$1__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace net
      {
        namespace ssl
        {
          namespace provider
          {
              class AbstractHandshake$1;
              class AbstractHandshake$CertVerifier;
          }
        }
      }
    }
  }
}

class gnu::javax::net::ssl::provider::AbstractHandshake$1 : public ::java::lang::Object
{

public: // actually package-private
  AbstractHandshake$1(::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier *);
public:
  virtual ::java::lang::ClassLoader * AbstractHandshake$1$run();
  virtual ::java::lang::Object * run();
public: // actually package-private
  ::gnu::javax::net::ssl::provider::AbstractHandshake$CertVerifier * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$1;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_net_ssl_provider_AbstractHandshake$1__
