rm_Library Class Reference
[Resource Manager Database Library]

#include <rmdb.h>

Collaboration diagram for rm_Library:

Collaboration graph
[legend]

List of all members.


Detailed Description

Definition at line 110 of file rmdb.h.


Public Attributes

Int32_t libraryKey
rm_String libraryName
Int32_t status
rm_String host
rm_String controlDevice
Int32_t libraryType
Int32_t mediaFamily
Int32_t capabilities
Int32_t auditTime
Int32_t mediaAccessTime
Int32_t mediaXChgTime
Int32_t options
Int32_t loadNr
Int32_t unloadNr
rm_String vendorID
rm_String productID
rm_String serialNo
rm_String firmwareRev
rm_String scsiID

Private Member Functions

void Insert ()
void Update ()
void Remove (Int32_t a_libraryKey)
void Select (Int32_t a_libraryKey)
void SelectByName (rm_String a_name)
void StartSelectAll ()
void EndSelectAll ()
rm_LibraryNext ()
void Print ()
 rm_Library ()
 rm_Library (Int32_t a_key)
bool operator== (const rm_Library &lib2) const

Private Attributes

 log_CLASSID_m

Friends

class rm_Operator
class rm_Medium

Constructor & Destructor Documentation

rm_Library::rm_Library (  )  [private]

rm_Library::rm_Library ( Int32_t  a_key  )  [private]

Definition at line 438 of file librmdb.exx.

References Select().

Here is the call graph for this function:


Member Function Documentation

void rm_Library::Insert (  )  [private]

Definition at line 451 of file librmdb.exx.

References auditTime, capabilities, controlDevice, rm_String::cvalue_p, dbg_NORM, errorDesc(), firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, log_DBG_m, log_FUNC_m, MAX, mediaAccessTime, mediaFamily, mediaXChgTime, NAME, options, productID, scsiID, serialNo, SQL_CHECK_M, SQL_UNIQUEVIOLATION, status, unloadNr, and vendorID.

Referenced by rm_Operator::Add().

00451                         {
00452     log_FUNC_m(Insert);
00453 
00454     EXEC SQL
00455         SET TRANSACTION NAME readWriteTrans;
00456 
00457     Int32_t  k(0);
00458     if (libraryKey == 0) {
00459         EXEC SQL
00460             SELECT TRANSACTION readWriteTrans MAX(libraryKey)
00461                 INTO :k FROM Library;
00462         libraryKey = ++k;
00463         log_DBG_m(dbg_NORM,"New libraryKey:" << libraryKey);
00464     }
00465     else {
00466         EXEC SQL
00467             SELECT TRANSACTION readWriteTrans
00468             libraryKey INTO :k FROM LIBRARY
00469                     WHERE libraryKey = :libraryKey;
00470         if (SQLCODE == 0) {
00471             log_DBG_m(dbg_NORM,"key exists:" << libraryKey);
00472             throw ivd_DBException( SQL_UNIQUEVIOLATION ,"Library Key already exists:" );
00473         }
00474     }
00475     log_DBG_m(dbg_NORM,"Inserting record");
00476     EXEC SQL
00477         INSERT TRANSACTION readWriteTrans
00478             INTO Library VALUES(
00479                                     :libraryKey,
00480                                     :libraryName.cvalue_p,
00481                                     :status,
00482                                     :host.cvalue_p,
00483                                     :controlDevice.cvalue_p,
00484                                     :libraryType,
00485                                     :mediaFamily,
00486                                     :capabilities,
00487                                     :auditTime,
00488                                     :mediaAccessTime,
00489                                     :mediaXChgTime,
00490                                     :options,
00491                                     :loadNr,
00492                                     :unloadNr,
00493                                     :vendorID.cvalue_p,
00494                                     :productID.cvalue_p,
00495                                     :serialNo.cvalue_p,
00496                                     :firmwareRev.cvalue_p,
00497                                     :scsiID.cvalue_p
00498                                 );
00499 
00500     log_DBG_m(dbg_NORM,"Inserting record finished SQLCODE:"  << SQLCODE );
00501 
00502     string sqlErrDesc = errorDesc(SQLCODE,"Insert record into Library",libraryKey);
00503     SQL_CHECK_M( sqlErrDesc );
00504 } // rm_Library::Insert()

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::Update (  )  [private]

Definition at line 530 of file librmdb.exx.

References auditTime, capabilities, controlDevice, rm_String::cvalue_p, errorDesc(), firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, log_FUNC_m, mediaAccessTime, mediaFamily, mediaXChgTime, NAME, options, productID, scsiID, serialNo, SQL_CHECK_M, status, unloadNr, and vendorID.

Referenced by rm_Operator::Update().

00530                         {
00531 
00532     log_FUNC_m(Update);
00533 
00534     EXEC SQL
00535         SET TRANSACTION NAME readWriteTrans;
00536 
00537     EXEC SQL
00538         UPDATE TRANSACTION readWriteTrans
00539         LIBRARY SET
00540                     LIBRARYKEY =    :libraryKey,
00541                     LIBRARYNAME =   :libraryName.cvalue_p,
00542                     STATUS =        :status,
00543                     HOST =          :host.cvalue_p,
00544                     CONTROLDEVICE = :controlDevice.cvalue_p,
00545                     LIBRARYTYPE =   :libraryType,
00546                     MEDIAFAMILY =   :mediaFamily,
00547                     CAPABILITIES =  :capabilities,
00548                     AUDITTIME =     :auditTime,
00549                     MEDIAACCESSTIME = :mediaAccessTime,
00550                     MEDIAXCHGTIME = :mediaXChgTime,
00551                     OPTIONS =       :options,
00552                     LOADNR =        :loadNr,
00553                     UNLOADNR =      :unloadNr,
00554                     VENDORID =      :vendorID.cvalue_p,
00555                     PRODUCTID =     :productID.cvalue_p,
00556                     SERIALNO =      :serialNo.cvalue_p,
00557                     FIRMWAREREV =   :firmwareRev.cvalue_p,
00558                     SCSIID =        :scsiID.cvalue_p
00559              WHERE libraryKey = :libraryKey;
00560 
00561     string sqlErrDesc = errorDesc(SQLCODE,"Update record Library", libraryKey);
00562     SQL_CHECK_M( sqlErrDesc );
00563 } //  rm_Library::Update()

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::Remove ( Int32_t  a_libraryKey  )  [private]

Definition at line 509 of file librmdb.exx.

References dbg_DETAIL, errorDesc(), log_DBG_m, log_FUNC_m, NAME, and SQL_CHECK_M.

Referenced by rm_Operator::RemoveLibrary().

00509                                             {
00510 
00511     log_FUNC_m(Remove);
00512 
00513     EXEC SQL
00514         SET TRANSACTION NAME readWriteTrans;
00515 
00516     EXEC SQL
00517         DELETE TRANSACTION readWriteTrans
00518         FROM LIBRARY WHERE LIBRARYKEY = :a_libraryKey;
00519 
00520     log_DBG_m(dbg_DETAIL,"SQLCODE:" << SQLCODE);
00521 
00522     string sqlErrDesc = errorDesc(SQLCODE,"Remove Library record", a_libraryKey);
00523     SQL_CHECK_M( sqlErrDesc );
00524     log_DBG_m(dbg_DETAIL,"SQLCODE:" << SQLCODE);
00525 
00526 } //  rm_Library::Remove

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::Select ( Int32_t  a_libraryKey  )  [private]

Definition at line 569 of file librmdb.exx.

References auditTime, capabilities, controlDevice, errorDesc(), firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, log_FUNC_m, mediaAccessTime, mediaFamily, mediaXChgTime, NAME, options, productID, rmdb_MAX_CTRLDEVICE, rmdb_MAX_FIRMWAREREV, rmdb_MAX_HOSTNAME, rmdb_MAX_LIBRARYNAME, rmdb_MAX_PRODUCTID, rmdb_MAX_SCSIID, rmdb_MAX_SERIALNO, rmdb_MAX_VENDORID, scsiID, serialNo, SQL_CHECKREAD_M, SQL_NOERROR, status, unloadNr, and vendorID.

Referenced by rm_Operator::AllocateAdmin(), rm_Operator::AllocateRecall(), rm_Library(), rm_Operator::SelectDrive(), and rm_Operator::SelectLibrary().

00569                                             {
00570     log_FUNC_m(Select);
00571 
00572     EXEC SQL
00573         SET TRANSACTION NAME readTrans
00574             READ ONLY
00575             ISOLATION LEVEL READ COMMITTED;
00576 
00577     char libraryNameVal[rmdb_MAX_LIBRARYNAME];
00578     char controlDeviceVal[rmdb_MAX_CTRLDEVICE];
00579     char hostVal[rmdb_MAX_HOSTNAME];
00580     char vendorIDVal[rmdb_MAX_VENDORID];
00581     char productIDVal[rmdb_MAX_PRODUCTID];
00582     char serialNoVal[rmdb_MAX_SERIALNO];
00583     char firmwareRevVal[rmdb_MAX_FIRMWAREREV];
00584     char scsiIDVal[rmdb_MAX_SCSIID];
00585 
00586     EXEC SQL SELECT TRANSACTION readTrans * INTO
00587                         :libraryKey,
00588                         :libraryNameVal,
00589                         :status,
00590                         :hostVal,
00591                         :controlDeviceVal,
00592                         :libraryType,
00593                         :mediaFamily,
00594                         :capabilities,
00595                         :auditTime,
00596                         :mediaAccessTime,
00597                         :mediaXChgTime,
00598                         :options,
00599                         :loadNr,
00600                         :unloadNr,
00601                         :vendorIDVal,
00602                         :productIDVal,
00603                         :serialNoVal,
00604                         :firmwareRevVal,
00605                         :scsiIDVal
00606                  FROM LIBRARY WHERE LIBRARYKEY = :a_libraryKey;
00607 
00608     if (SQLCODE == SQL_NOERROR) {
00609         libraryName     = libraryNameVal;
00610         controlDevice   = controlDeviceVal;
00611         host            = hostVal;
00612         vendorID        = vendorIDVal;
00613         productID       = productIDVal;
00614         serialNo        = serialNoVal;
00615         firmwareRev     = firmwareRevVal;
00616         scsiID          = scsiIDVal;
00617     };
00618 
00619     string sqlErrDesc = errorDesc(SQLCODE,"Select record Library", a_libraryKey);
00620     SQL_CHECKREAD_M( sqlErrDesc );
00621 } //  rm_Library::Select

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::SelectByName ( rm_String  a_name  )  [private]

Definition at line 625 of file librmdb.exx.

References auditTime, capabilities, controlDevice, rm_String::cvalue_p, errorDesc(), firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, log_FUNC_m, mediaAccessTime, mediaFamily, mediaXChgTime, NAME, options, productID, rmdb_MAX_CTRLDEVICE, rmdb_MAX_FIRMWAREREV, rmdb_MAX_HOSTNAME, rmdb_MAX_LIBRARYNAME, rmdb_MAX_PRODUCTID, rmdb_MAX_SCSIID, rmdb_MAX_SERIALNO, rmdb_MAX_VENDORID, scsiID, serialNo, SQL_CHECKREAD_M, SQL_NOERROR, status, unloadNr, and vendorID.

Referenced by rm_Operator::Add(), rm_Operator::InventoryUpdate(), rm_Operator::MediumLoaded(), rm_Operator::MediumUnLoaded(), rm_Operator::RemoveLibrary(), rm_Operator::RemoveSlot(), rm_Operator::SelectLibrary(), rm_Operator::SelectSlot(), and rm_Operator::Update().

00625                                               {
00626     log_FUNC_m(SelectByName);
00627 
00628     EXEC SQL
00629         SET TRANSACTION NAME readTrans
00630             READ ONLY
00631             ISOLATION LEVEL READ COMMITTED;
00632 
00633     char libraryNameVal[rmdb_MAX_LIBRARYNAME];
00634     char controlDeviceVal[rmdb_MAX_CTRLDEVICE];
00635     char hostVal[rmdb_MAX_HOSTNAME];
00636     char vendorIDVal[rmdb_MAX_VENDORID];
00637     char productIDVal[rmdb_MAX_PRODUCTID];
00638     char serialNoVal[rmdb_MAX_SERIALNO];
00639     char firmwareRevVal[rmdb_MAX_FIRMWAREREV];
00640     char scsiIDVal[rmdb_MAX_SCSIID];
00641 
00642     EXEC SQL SELECT TRANSACTION readTrans * INTO
00643                         :libraryKey,
00644                         :libraryNameVal,
00645                         :status,
00646                         :hostVal,
00647                         :controlDeviceVal,
00648                         :libraryType,
00649                         :mediaFamily,
00650                         :capabilities,
00651                         :auditTime,
00652                         :mediaAccessTime,
00653                         :mediaXChgTime,
00654                         :options,
00655                         :loadNr,
00656                         :unloadNr,
00657                         :vendorIDVal,
00658                         :productIDVal,
00659                         :serialNoVal,
00660                         :firmwareRevVal,
00661                         :scsiIDVal
00662                  FROM LIBRARY WHERE LIBRARYNAME = :a_name.cvalue_p;
00663 
00664     if (SQLCODE == SQL_NOERROR) {
00665         libraryName     = libraryNameVal;
00666         controlDevice   = controlDeviceVal;
00667         host            = hostVal;
00668         vendorID        = vendorIDVal;
00669         productID       = productIDVal;
00670         serialNo        = serialNoVal;
00671         firmwareRev     = firmwareRevVal;
00672         scsiID          = scsiIDVal;
00673     };
00674     string sqlErrDesc = errorDesc(SQLCODE, "Selecting Library record by Name " , a_name);
00675     SQL_CHECKREAD_M( sqlErrDesc );
00676 }

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::StartSelectAll (  )  [private]

Definition at line 679 of file librmdb.exx.

References dbg_LOW, errorDesc(), cmn_Mutex::Lock(), log_DBG_m, log_ERR_m, log_FUNC_m, NAME, and cmn_Mutex::Unlock().

Referenced by rm_Operator::SelectAllLibraries().

00679                                {
00680     log_FUNC_m(StartSelectAll);
00681 
00682     g_libraryCursor_x.Lock();
00683     EXEC SQL
00684         SET TRANSACTION NAME readTrans
00685             READ ONLY
00686             ISOLATION LEVEL READ COMMITTED;
00687 
00688     EXEC SQL
00689         OPEN TRANSACTION readTrans SELECT_ALL_LIB;
00690 
00691     if ( SQLCODE != 0 ) {
00692         string sqlErrDesc = errorDesc(SQLCODE, "Opening SELECT_ALL_LIB Cursor failed");
00693         log_DBG_m(dbg_LOW, sqlErrDesc);
00694         log_ERR_m(sqlErrDesc);
00695         g_libraryCursor_x.Unlock();
00696         throw ivd_DBException( SQLCODE ,sqlErrDesc, true);
00697     }
00698 }

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::EndSelectAll (  )  [private]

Definition at line 700 of file librmdb.exx.

References errorDesc(), log_FUNC_m, SQL_CHECKREAD_M, and cmn_Mutex::Unlock().

00700                              {
00701     log_FUNC_m(EndSelectAll);
00702 
00703     EXEC SQL
00704         CLOSE SELECT_ALL_LIB;
00705 
00706     g_libraryCursor_x.Unlock();
00707     string sqlErrDesc = errorDesc(SQLCODE,"EXEC SQL CLOSE SELECT_ALL_LIB");
00708     SQL_CHECKREAD_M(sqlErrDesc);
00709 }

Here is the call graph for this function:

rm_Library & rm_Library::Next (  )  [private]

Definition at line 711 of file librmdb.exx.

References auditTime, capabilities, controlDevice, errorDesc(), firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, log_FUNC_m, mediaAccessTime, mediaFamily, mediaXChgTime, options, productID, rmdb_MAX_CTRLDEVICE, rmdb_MAX_FIRMWAREREV, rmdb_MAX_HOSTNAME, rmdb_MAX_LIBRARYNAME, rmdb_MAX_PRODUCTID, rmdb_MAX_SCSIID, rmdb_MAX_SERIALNO, rmdb_MAX_VENDORID, scsiID, serialNo, SQL_CHECKREAD_M, SQL_NOERROR, status, unloadNr, cmn_Mutex::Unlock(), and vendorID.

Referenced by rm_Operator::SelectAllLibraries().

00711                              {
00712     log_FUNC_m(Next);
00713 
00714     char libraryNameVal[rmdb_MAX_LIBRARYNAME];
00715     char controlDeviceVal[rmdb_MAX_CTRLDEVICE];
00716     char hostVal[rmdb_MAX_HOSTNAME];
00717     char vendorIDVal[rmdb_MAX_VENDORID];
00718     char productIDVal[rmdb_MAX_PRODUCTID];
00719     char serialNoVal[rmdb_MAX_SERIALNO];
00720     char firmwareRevVal[rmdb_MAX_FIRMWAREREV];
00721     char scsiIDVal[rmdb_MAX_SCSIID];
00722 
00723     EXEC SQL
00724         FETCH SELECT_ALL_LIB
00725             INTO
00726                 :libraryKey,
00727                 :libraryNameVal,
00728                 :status,
00729                 :hostVal,
00730                 :controlDeviceVal,
00731                 :libraryType,
00732                 :mediaFamily,
00733                 :capabilities,
00734                 :auditTime,
00735                 :mediaAccessTime,
00736                 :mediaXChgTime,
00737                 :options,
00738                 :loadNr,
00739                 :unloadNr,
00740                 :vendorIDVal,
00741                 :productIDVal,
00742                 :serialNoVal,
00743                 :firmwareRevVal,
00744                 :scsiIDVal;
00745 
00746     if (SQLCODE == SQL_NOERROR) {
00747         libraryName = libraryNameVal;
00748         host        = hostVal;
00749         controlDevice = controlDeviceVal;
00750         vendorID    = vendorIDVal;
00751         productID   = productIDVal;
00752         serialNo    = serialNoVal;
00753         firmwareRev     = firmwareRevVal;
00754         scsiID          = scsiIDVal;
00755     }
00756     else {
00757         int fetchCode = SQLCODE;
00758         EXEC SQL
00759             CLOSE SELECT_ALL_LIB;
00760 
00761         g_libraryCursor_x.Unlock();
00762         SQLCODE = fetchCode;
00763         string sqlErrDesc = errorDesc(fetchCode,"EXEC SQL Fetch SELECT_ALL_LIB");
00764         SQL_CHECKREAD_M(sqlErrDesc);
00765 
00766     };
00767     return *this;
00768 }

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_Library::Print (  )  [private]

Definition at line 773 of file librmdb.exx.

References auditTime, capabilities, controlDevice, firmwareRev, host, libraryKey, libraryName, libraryType, loadNr, mediaAccessTime, mediaFamily, mediaXChgTime, options, productID, scsiID, serialNo, status, unloadNr, and vendorID.

00773                        {
00774     cout << "libraryKey :" <<     libraryKey<< "<-" << endl;
00775     cout << "libraryName :" <<     libraryName<< "<-" << endl;
00776     cout << "status :" <<     status<< "<-" << endl;
00777     cout << "host :" <<     host<< "<-" << endl;
00778     cout << "controlDevice :" <<     controlDevice<< "<-" << endl;
00779     cout << "libraryType :" <<     libraryType<< "<-" << endl;
00780     cout << "mediaFamily :" <<     mediaFamily<< "<-" << endl;
00781     cout << "capabilities :" <<     capabilities<< "<-" << endl;
00782     cout << "auditTime :" <<     auditTime<< "<-" << endl;
00783     cout << "mediaAccessTime :" <<     mediaAccessTime<< "<-" << endl;
00784     cout << "mediaXChgTime :" <<     mediaXChgTime<< "<-" << endl;
00785     cout << "options :" <<     options<< "<-" << endl;
00786     cout << "loadNr :" <<     loadNr<< "<-" << endl;
00787     cout << "unloadNr :" <<     unloadNr<< "<-" << endl;
00788     cout << "vendorID :" <<     vendorID<< "<-" << endl;
00789     cout << "productID :" <<     productID<< "<-" << endl;
00790     cout << "serialNo :" <<     serialNo<< "<-" << endl;
00791     cout << "firmwareRev :" <<     firmwareRev << "<-" << endl;
00792     cout << "scsiID :" <<     scsiID << "<-" << endl;
00793 
00794 } //  rm_Library::Select

bool rm_Library::operator== ( const rm_Library lib2  )  const [inline, private]

Definition at line 177 of file rmdb.h.

References capabilities, libraryKey, libraryName, mediaFamily, productID, serialNo, and vendorID.

00177                                                   {
00178         return (    (libraryKey   == lib2.libraryKey)   &&
00179                     (mediaFamily  == lib2.mediaFamily)  &&
00180                     (capabilities == lib2.capabilities) &&
00181                     (libraryName  == lib2.libraryName)  &&
00182                     (vendorID     == lib2.vendorID)     &&
00183                     (productID    == lib2.productID)    &&
00184                     (serialNo     == lib2.serialNo)
00185                );
00186     };


Friends And Related Function Documentation

friend class rm_Operator [friend]

Definition at line 112 of file rmdb.h.

friend class rm_Medium [friend]

Definition at line 113 of file rmdb.h.


Member Data Documentation

Definition at line 186 of file rmdb.h.


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

Generated on Mon Feb 27 19:46:49 2012 for OPENARCHIVE by  doxygen 1.5.6