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

#ifndef __javax_sql_ConnectionPoolDataSource__
#define __javax_sql_ConnectionPoolDataSource__

#pragma interface

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

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

public:
  virtual ::javax::sql::PooledConnection * getPooledConnection() = 0;
  virtual ::javax::sql::PooledConnection * getPooledConnection(::java::lang::String *, ::java::lang::String *) = 0;
  virtual ::java::io::PrintWriter * getLogWriter() = 0;
  virtual void setLogWriter(::java::io::PrintWriter *) = 0;
  virtual void setLoginTimeout(jint) = 0;
  virtual jint getLoginTimeout() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_sql_ConnectionPoolDataSource__
