DCL 3.7.4
Loading...
Searching...
No Matches
SQLDriverPool Class Reference
Inheritance diagram for SQLDriverPool:
Object

Public Member Functions

SQLDrivergetDriver (const String &_name) __DCL_THROWS1(SQLDriverException *)
void clearAll ()
void clear (SQLDriver *pDriver) __DCL_THROWS1(SQLDriverException *)
bool isEmpty () const
Public Member Functions inherited from Object
virtual String toString () const
virtual void destroy ()
String className () const
bool isInstanceOf (const std::type_info &typeinfo) const
virtual const std::type_info & typeInfo () const

Additional Inherited Members

Protected Member Functions inherited from Object
virtual ~Object ()
 Object ()

Detailed Description

Definition at line 313 of file SQLDriver.cpp.

Member Function Documentation

◆ clear()

void SQLDriverPool::clear ( SQLDriver * pDriver)

Definition at line 392 of file SQLDriver.cpp.

394{
395 PointerArray::Iterator it = __drivers.find(driver);
396 __DCL_ASSERT(__drivers.end() != it);
397 __drivers.erase(it);
398
399 Exception* e = NULL;
400 try {
401 driver->close();
402 __DCL_TRACE3(__T("Close SQLDriver:%p, %ls (%ls)\n"),
403 driver,
404 driver->driverName().data(),
405 driver->fileName().data()
406 );
407 }
408 catch (Exception* _e) {
409 e = _e;
410 }
411
412 delete driver;
413
414 if (e != NULL) {
415 throw e;
416 }
417}
#define NULL
Definition Config.h:312
#define __DCL_TRACE3(fmt, arg1, arg2, arg3)
Definition Object.h:401
#define __DCL_ASSERT(expr)
Definition Object.h:394
#define __T(str)
Definition Object.h:60

◆ clearAll()

void SQLDriverPool::clearAll ( )

Definition at line 361 of file SQLDriver.cpp.

362{
363 // unload all drivers
364 SQLDriver* driver = NULL;
365 for(PointerArray::Iterator it = __drivers.begin();
366 it != __drivers.end(); it++) {
367 driver = (SQLDriver*)(*it);
368 __DCL_ASSERT(driver->refCount() == 0);
369
370 try {
371 driver->close();
372 __DCL_TRACE3(__T("Close SQLDriver:%p, %ls (%ls)\n"),
373 driver,
374 driver->driverName().data(),
375 driver->fileName().data()
376 );
377 }
378 catch (Exception* e) {
379 __DCL_TRACE2(__T("Wrining!! SQLDriver Close Fail! :%p, %ls\n"),
380 driver,
381 e->toString().data()
382 );
383 e->destroy();
384 }
385
386 delete driver;
387 }
388
389 __drivers.clear();
390}
#define __DCL_TRACE2(fmt, arg1, arg2)
Definition Object.h:400
virtual String toString() const
Definition Exception.cpp:40
virtual void destroy()
Definition Exception.cpp:74
void close() __DCL_THROWS1(SQLDriverException *)
const String & driverName() const
Definition SQLDriver.h:72
long refCount() const
Definition SQLDriver.h:56

◆ getDriver()

SQLDriver * SQLDriverPool::getDriver ( const String & _name)

◆ isEmpty()

bool SQLDriverPool::isEmpty ( ) const
inline

Definition at line 326 of file SQLDriver.cpp.

326{ return __drivers.isEmpty(); }

The documentation for this class was generated from the following file: