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

#ifndef __javax_sql_PooledConnection__
#define __javax_sql_PooledConnection__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace java
  {
    namespace sql
    {
        class Connection;
    }
  }
  namespace javax
  {
    namespace sql
    {
        class ConnectionEventListener;
        class PooledConnection;
    }
  }
}

class javax::sql::PooledConnection : public ::java::lang::Object
{

public:
  virtual ::java::sql::Connection * getConnection() = 0;
  virtual void close() = 0;
  virtual void addConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0;
  virtual void removeConnectionEventListener(::javax::sql::ConnectionEventListener *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_sql_PooledConnection__
