DCL 4.0
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 317 of file SQLDriver.cpp.

Member Function Documentation

◆ clear()

void SQLDriverPool::clear ( SQLDriver * pDriver)

Definition at line 396 of file SQLDriver.cpp.

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

◆ clearAll()

void SQLDriverPool::clearAll ( )

Definition at line 365 of file SQLDriver.cpp.

366{
367 // unload all drivers
368 SQLDriver* pSQLDriver = NULL;
369 for(PointerArray::Iterator it = __drivers.begin();
370 it != __drivers.end(); it++) {
371 pSQLDriver = (SQLDriver*)(*it);
372 __DCL_ASSERT(pSQLDriver->refCount() == 0);
373
374 try {
375 pSQLDriver->close();
376 __DCL_TRACE3(__T("Close SQLDriver:%p, %ls (%ls)\n"),
377 pSQLDriver,
378 pSQLDriver->driverName().data(),
379 pSQLDriver->fileName().data()
380 );
381 }
382 catch (Exception* e) {
383 __DCL_TRACE2(__T("Wrining!! SQLDriver Close Fail! :%p, %ls\n"),
384 pSQLDriver,
385 e->toString().data()
386 );
387 e->destroy();
388 }
389
390 delete pSQLDriver;
391 }
392
393 __drivers.clear();
394}
#define __DCL_TRACE2(fmt, arg1, arg2)
Definition Object.h:377
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:67
long refCount() const
Definition SQLDriver.h:51

◆ getDriver()

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

◆ isEmpty()

bool SQLDriverPool::isEmpty ( ) const
inline

Definition at line 330 of file SQLDriver.cpp.

330{ return __drivers.isEmpty(); }

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