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

#ifndef __gnu_javax_net_ssl_Session__
#define __gnu_javax_net_ssl_Session__

#pragma interface

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

extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace net
      {
        namespace ssl
        {
            class Session;
            class Session$ID;
        }
      }
    }
  }
  namespace java
  {
    namespace security
    {
        class Principal;
        class SecureRandom;
      namespace cert
      {
          class Certificate;
      }
    }
  }
  namespace javax
  {
    namespace crypto
    {
        class SealedObject;
    }
    namespace net
    {
      namespace ssl
      {
          class SSLSessionContext;
      }
    }
    namespace security
    {
      namespace cert
      {
          class X509Certificate;
      }
    }
  }
}

class gnu::javax::net::ssl::Session : public ::java::lang::Object
{

public: // actually protected
  Session();
public:
  virtual void access();
  virtual jint getApplicationBufferSize();
  virtual ::java::lang::String * getCipherSuite();
  virtual jlong getCreationTime();
  virtual JArray< jbyte > * getId();
  virtual ::gnu::javax::net::ssl::Session$ID * id();
  virtual jlong getLastAccessedTime();
  virtual JArray< ::java::security::cert::Certificate * > * getLocalCertificates();
  virtual ::java::security::Principal * getLocalPrincipal();
  virtual jint getPacketBufferSize();
  virtual JArray< ::java::security::cert::Certificate * > * getPeerCertificates();
  virtual JArray< ::javax::security::cert::X509Certificate * > * getPeerCertificateChain();
  virtual ::java::lang::String * getPeerHost();
  virtual jint getPeerPort();
  virtual ::java::security::Principal * getPeerPrincipal();
  virtual ::javax::net::ssl::SSLSessionContext * getSessionContext();
  virtual JArray< ::java::lang::String * > * getValueNames();
  virtual ::java::lang::Object * getValue(::java::lang::String *);
  virtual void invalidate();
  virtual jboolean isValid();
  virtual void putValue(::java::lang::String *, ::java::lang::Object *);
  virtual void removeValue(::java::lang::String *);
  virtual jboolean isTruncatedMac();
  virtual void prepare(JArray< jchar > *) = 0;
  virtual void repair(JArray< jchar > *) = 0;
  virtual ::javax::crypto::SealedObject * privateData() = 0;
  virtual void setPrivateData(::javax::crypto::SealedObject *) = 0;
  virtual ::java::lang::String * getProtocol() = 0;
public: // actually protected
  jlong __attribute__((aligned(__alignof__( ::java::lang::Object)))) creationTime;
  jlong lastAccessedTime;
  jint applicationBufferSize;
  ::gnu::javax::net::ssl::Session$ID * sessionId;
  JArray< ::java::security::cert::Certificate * > * localCerts;
  JArray< ::java::security::cert::Certificate * > * peerCerts;
  JArray< ::javax::security::cert::X509Certificate * > * peerCertChain;
  ::java::lang::String * peerHost;
  jint peerPort;
  jboolean peerVerified;
  ::java::util::HashMap * values;
  jboolean valid;
  jboolean truncatedMac;
  ::java::security::SecureRandom * random;
  ::javax::net::ssl::SSLSessionContext * context;
public:
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_net_ssl_Session__