rm_DiskSubsys Class Reference
[Resource Manager Database Library]

#include <rmdb.h>

Collaboration diagram for rm_DiskSubsys:

Collaboration graph
[legend]

List of all members.


Detailed Description

Definition at line 324 of file rmdb.h.


Public Attributes

Int32_t diskSubsysKey
rm_String diskSubsysName
rm_String host
Int32_t diskSubsysType
Int32_t status

Private Member Functions

void Insert ()
void Update ()
void Remove (Int32_t a_diskSubsysKey)
void Select (Int32_t a_diskSubsysKey)
void SelectByName (rm_String a_name)
void StartSelectAll ()
void EndSelectAll ()
rm_DiskSubsysNext ()
 rm_DiskSubsys ()
 rm_DiskSubsys (Int32_t a_diskSubsysKey)
bool operator== (const rm_DiskSubsys &dss2) const

Private Attributes

 log_CLASSID_m

Friends

class rm_Operator

Constructor & Destructor Documentation

rm_DiskSubsys::rm_DiskSubsys (  )  [private]

Definition at line 1928 of file librmdb.exx.

rm_DiskSubsys::rm_DiskSubsys ( Int32_t  a_diskSubsysKey  )  [private]

Definition at line 1933 of file librmdb.exx.

References Select().

01934     :   diskSubsysName(rmdb_MAX_DSSNAME),
01935         host(rmdb_MAX_HOSTNAME)   {
01936     Select(a_diskSubsysKey);
01937 }

Here is the call graph for this function:


Member Function Documentation

void rm_DiskSubsys::Insert (  )  [private]

Definition at line 1940 of file librmdb.exx.

References rm_String::cvalue_p, dbg_NORM, diskSubsysKey, diskSubsysName, diskSubsysType, errorDesc(), host, log_DBG_m, log_FUNC_m, MAX, NAME, SQL_CHECK_M, SQL_NOERROR, SQL_UNIQUEVIOLATION, and status.

Referenced by rm_Operator::Add().

01940                            {
01941 
01942     log_FUNC_m(Insert);
01943 
01944     EXEC SQL
01945         SET TRANSACTION NAME readWriteTrans;
01946 
01947     Int32_t k(0);
01948     if (diskSubsysKey == 0) {
01949         EXEC SQL
01950             SELECT TRANSACTION readWriteTrans
01951             MAX(DISKSUBSYSKEY) INTO :k FROM DISKSUBSYS;
01952 
01953         diskSubsysKey = k + 1;
01954         log_DBG_m(dbg_NORM,"new key");
01955     }
01956     else {
01957         EXEC SQL
01958             SELECT TRANSACTION readWriteTrans
01959             DISKSUBSYSKEY INTO :k FROM DISKSUBSYS
01960             WHERE DISKSUBSYSKEY = :diskSubsysKey;
01961 
01962         if (SQLCODE == SQL_NOERROR) {
01963             log_DBG_m(dbg_NORM,"key exists");
01964             throw ivd_DBException( SQL_UNIQUEVIOLATION ,"DiskSubsys Key already exists");
01965         }
01966     }
01967 
01968     EXEC SQL
01969         INSERT TRANSACTION readWriteTrans
01970         INTO DiskSubsys VALUES(
01971                               :diskSubsysKey,
01972                               :diskSubsysName.cvalue_p,
01973                               :host.cvalue_p,
01974                               :diskSubsysType,
01975                               :status
01976                              );
01977     string sqlErrDesc = errorDesc(SQLCODE,"Insert record into DSS",diskSubsysKey);
01978     SQL_CHECK_M( sqlErrDesc );
01979 
01980 }//  rm_DiskSubsys::Insert()

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_DiskSubsys::Update (  )  [private]

Definition at line 2002 of file librmdb.exx.

References rm_String::cvalue_p, diskSubsysKey, diskSubsysName, diskSubsysType, errorDesc(), host, log_FUNC_m, NAME, SQL_CHECK_M, and status.

Referenced by rm_Operator::Update().

02002                            {
02003     log_FUNC_m(Update);
02004 
02005     EXEC SQL
02006         SET TRANSACTION NAME readWriteTrans;
02007 
02008     EXEC SQL
02009         UPDATE TRANSACTION readWriteTrans
02010         DISKSUBSYS SET
02011                 DISKSUBSYSNAME = :diskSubsysName.cvalue_p,
02012                 HOST =           :host.cvalue_p,
02013                 DISKSUBSYSTYPE = :diskSubsysType,
02014                 STATUS =         :status
02015         WHERE DISKSUBSYSKEY = :diskSubsysKey;
02016 
02017     string sqlErrDesc = errorDesc(SQLCODE,"Update DSS record", diskSubsysKey);
02018     SQL_CHECK_M( sqlErrDesc );
02019 }//  rm_DiskSubsys::Update()

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_DiskSubsys::Remove ( Int32_t  a_diskSubsysKey  )  [private]

Definition at line 1984 of file librmdb.exx.

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

Referenced by rm_Operator::RemoveDSS().

01984                                                   {
01985     log_FUNC_m(Remove);
01986 
01987     EXEC SQL
01988         SET TRANSACTION NAME readWriteTrans;
01989 
01990     EXEC SQL
01991         DELETE TRANSACTION readWriteTrans
01992         FROM DISKSUBSYS
01993         WHERE DISKSUBSYSKEY = :a_diskSubsysKey;
01994 
01995     string sqlErrDesc = errorDesc(SQLCODE,"Remove DSS record",a_diskSubsysKey);
01996     SQL_CHECK_M( sqlErrDesc );
01997 }//  rm_DiskSubsys::Remove

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_DiskSubsys::Select ( Int32_t  a_diskSubsysKey  )  [private]

Definition at line 2024 of file librmdb.exx.

References diskSubsysKey, diskSubsysName, diskSubsysType, errorDesc(), host, log_FUNC_m, NAME, rmdb_MAX_DSSNAME, rmdb_MAX_HOSTNAME, SQL_CHECKREAD_M, SQL_NOERROR, and status.

Referenced by rm_DiskSubsys().

02024                                                   {
02025     log_FUNC_m(Select);
02026 
02027     EXEC SQL
02028         SET TRANSACTION NAME readTrans
02029             READ ONLY
02030             ISOLATION LEVEL READ COMMITTED;
02031 
02032     char diskSubsysNameVal[rmdb_MAX_DSSNAME];
02033     char hostVal[rmdb_MAX_HOSTNAME];
02034 
02035     EXEC SQL
02036         SELECT TRANSACTION readTrans
02037         * INTO
02038             :diskSubsysKey,
02039             :diskSubsysNameVal,
02040             :hostVal,
02041             :diskSubsysType,
02042             :status
02043         FROM DISKSUBSYS WHERE DISKSUBSYSKEY = :a_diskSubsysKey;
02044 
02045     if (SQLCODE == SQL_NOERROR) {
02046         diskSubsysName = diskSubsysNameVal;
02047         host = hostVal;
02048     };
02049 
02050     string sqlErrDesc = errorDesc(SQLCODE,"Select DSS record", diskSubsysKey);
02051     SQL_CHECKREAD_M( sqlErrDesc );
02052 
02053 }//  rm_DiskSubsys::Select

Here is the call graph for this function:

Here is the caller graph for this function:

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

Definition at line 2057 of file librmdb.exx.

References rm_String::cvalue_p, diskSubsysKey, diskSubsysName, diskSubsysType, errorDesc(), host, log_FUNC_m, NAME, rmdb_MAX_DSSNAME, rmdb_MAX_HOSTNAME, SQL_CHECKREAD_M, SQL_NOERROR, and status.

Referenced by rm_Operator::Add(), rm_Operator::RemoveDSS(), and rm_Operator::Update().

02057                                                  {
02058     log_FUNC_m(SelectByName);
02059 
02060     EXEC SQL
02061         SET TRANSACTION NAME readTrans
02062             READ ONLY
02063             ISOLATION LEVEL READ COMMITTED;
02064 
02065     char diskSubsysNameVal[rmdb_MAX_DSSNAME];
02066     char hostVal[rmdb_MAX_HOSTNAME];
02067 
02068     EXEC SQL
02069         SELECT TRANSACTION readTrans
02070         * INTO
02071             :diskSubsysKey,
02072             :diskSubsysNameVal,
02073             :hostVal,
02074             :diskSubsysType,
02075             :status
02076         FROM DISKSUBSYS
02077         WHERE DISKSUBSYSNAME = :a_name.cvalue_p;
02078 
02079     if (SQLCODE == SQL_NOERROR) {
02080         diskSubsysName = diskSubsysNameVal;
02081         host = hostVal;
02082     };
02083 
02084     string sqlErrDesc = errorDesc(SQLCODE, "Selecting DiskSubsys record by Name");
02085     SQL_CHECKREAD_M( sqlErrDesc );
02086 }

Here is the call graph for this function:

Here is the caller graph for this function:

void rm_DiskSubsys::StartSelectAll (  )  [private]

Definition at line 2089 of file librmdb.exx.

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

02089                                   {
02090     log_FUNC_m(StartSelectAll);
02091 
02092     g_dssCursor_x.Lock();
02093     EXEC SQL
02094         SET TRANSACTION NAME readTrans
02095             READ ONLY
02096             ISOLATION LEVEL READ COMMITTED;
02097     EXEC SQL
02098         OPEN TRANSACTION readTrans SELECT_ALL_DSS;
02099 
02100     if ( SQLCODE != SQL_NOERROR ) {
02101         string sqlErrDesc = errorDesc(SQLCODE, "Opening SELECT_ALL_DSS Cursor failed");
02102         log_ERR_m(sqlErrDesc);
02103         g_dssCursor_x.Unlock();
02104         throw ivd_DBException( SQLCODE ,sqlErrDesc, true);
02105     }
02106 }

Here is the call graph for this function:

void rm_DiskSubsys::EndSelectAll (  )  [private]

Definition at line 2108 of file librmdb.exx.

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

02108                                 {
02109     log_FUNC_m(EndSelectAll);
02110 
02111     EXEC SQL
02112         CLOSE SELECT_ALL_DSS;
02113 
02114     g_dssCursor_x.Unlock();
02115 
02116     string sqlErrDesc = errorDesc(SQLCODE,"CLOSE SELECT_ALL_DSS");
02117     SQL_CHECKREAD_M(sqlErrDesc);
02118 }

Here is the call graph for this function:

rm_DiskSubsys & rm_DiskSubsys::Next (  )  [private]

Definition at line 2120 of file librmdb.exx.

References diskSubsysKey, diskSubsysName, diskSubsysType, errorDesc(), host, log_FUNC_m, rmdb_MAX_DSSNAME, rmdb_MAX_HOSTNAME, SQL_CHECKREAD_M, SQL_NOERROR, status, and cmn_Mutex::Unlock().

02120                                    {
02121     log_FUNC_m(Next);
02122 
02123     char diskSubsysNameVal[rmdb_MAX_DSSNAME];
02124     char hostVal[rmdb_MAX_HOSTNAME];
02125     EXEC SQL
02126         FETCH SELECT_ALL_DSS
02127             INTO
02128                 :diskSubsysKey,
02129                 :diskSubsysNameVal,
02130                 :hostVal,
02131                 :diskSubsysType,
02132                 :status;
02133 
02134     if (SQLCODE == SQL_NOERROR) {
02135         diskSubsysName = diskSubsysNameVal;
02136         host = hostVal;
02137     }
02138     else {
02139         int fetchCode = SQLCODE;
02140         EXEC SQL
02141             CLOSE SELECT_ALL_DSS;
02142         g_dssCursor_x.Unlock();
02143         SQLCODE = fetchCode;
02144         string sqlErrDesc = errorDesc(fetchCode,"CLOSE SELECT_ALL_DSS");
02145         SQL_CHECKREAD_M(sqlErrDesc);
02146 
02147     };
02148     return *this;
02149 }

Here is the call graph for this function:

bool rm_DiskSubsys::operator== ( const rm_DiskSubsys dss2  )  const [inline, private]

Definition at line 349 of file rmdb.h.

References diskSubsysKey, diskSubsysName, diskSubsysType, and host.

00349                                                      {
00350         return (    ( diskSubsysKey == dss2.diskSubsysKey)      &&
00351                     ( diskSubsysType == dss2.diskSubsysType)    &&
00352                     ( host == dss2.host)                        &&
00353                     ( diskSubsysName == dss2.diskSubsysName)    );
00354     };


Friends And Related Function Documentation

friend class rm_Operator [friend]

Definition at line 326 of file rmdb.h.


Member Data Documentation

Definition at line 354 of file rmdb.h.


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

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