--- parser3/src/include/pa_sql_connection.h 2001/10/29 17:34:24 1.16 +++ parser3/src/include/pa_sql_connection.h 2003/01/27 16:19:11 1.30.2.2 @@ -1,16 +1,15 @@ /** @file Parser: sql fconnection decl. - Copyright (c) 2001 ArtLebedev Group (http://www.artlebedev.com) - Author: Alexander Petrosyan (http://design.ru/paf) - - $Id: pa_sql_connection.h,v 1.16 2001/10/29 17:34:24 paf Exp $ + Copyright (c) 2001, 2003 ArtLebedev Group (http://www.artlebedev.com) + Author: Alexandr Petrosian (http://paf.design.ru) */ #ifndef PA_SQL_CONNECTION_H #define PA_SQL_CONNECTION_H -#include "pa_config_includes.h" +static const char* IDENT_SQL_CONNECTION_H="$Date: 2003/01/27 16:19:11 $"; + #include "pa_pool.h" #include "pa_sql_driver.h" #include "pa_sql_driver_manager.h" @@ -18,65 +17,56 @@ // defines /// @see SQL_Driver_services_impl::_throw -#define SQL_CONNECTION_FUNC_GUARDED(actions) \ - if(!fservices || !setjmp(fservices->mark)) { \ - actions; \ - } else \ - fservices->propagate_exception(); +#ifdef PA_WITH_SJLJ_EXCEPTIONS + #define SQL_CONNECTION_SERVICED_FUNC_GUARDED(actions) actions +#else + #define SQL_CONNECTION_SERVICED_FUNC_GUARDED(actions) \ + if(!fservices || !setjmp(fservices->mark)) { \ + actions; \ + } else \ + fservices->propagate_exception(); +#endif /// SQL connection. handy wrapper around low level SQL_Driver -class SQL_Connection : public Pooled { +class SQL_Connection: public PA_Object { public: - SQL_Connection(Pool& pool, const String& aurl, SQL_Driver& adriver) : Pooled(pool), + SQL_Connection(ConstStringPtr aurl, SQL_Driver& adriver): furl(aurl), fdriver(adriver), fconnection(0), - time_stamp(0) { + time_used(0), + marked_to_rollback(false) { } - const String& url() { return furl; } + ConstStringPtr get_url() { return furl; } void set_services(SQL_Driver_services *aservices) { - time_stamp=time(0); // they started to use at this time fservices=aservices; } bool expired(time_t older_dies) { - return time_stampclose_connection(furl, *this); + return /*!freferences && */time_used