hsm_ListPos Class Reference
[Classes for managing object list]

#include <hsm_ListPos.h>

Inheritance diagram for hsm_ListPos:

Inheritance graph
[legend]

List of all members.


Detailed Description

Definition at line 36 of file hsm_ListPos.h.


Public Member Functions

 hsm_ListPos ()
 ~hsm_ListPos ()
bool operator== (const hsm_ListPos &a_listPos) const
void operator= (const hsm_ListPos &a_listPos)
hsm_List_e GetList () const
hsm_FHtimed_li GetDirtyPos () const
hsm_FH_p_li GetMigCanPos () const
hsm_FH_p_li GetRecallFromADPPos () const
Int32_t GetJobIdx () const
Int32_t GetJobElemIdx () const
hsm_FHtimed_li GetDirListPos () const
hdb_circList_e GetRelCandCircList () const
ivd_RecordIDX_t GetRelCandIdx () const
void SetList (hsm_List_e a_fList)
void SetDirtyPos (hsm_FHtimed_li a_dirtyPos)
void SetMigCanPos (hsm_FH_p_li a_migCanPos)
void SetRecallFromADPPos (hsm_FH_p_li a_recallFromADPPos)
void SetJobIdx (Int32_t a_jobIdx)
void SetJobElemIdx (Int32_t a_jobElemIdx)
void SetDirLIstPos (hsm_FHtimed_li a_dirListPos)
void SetCircList (hdb_circList_e a_circ_List, ivd_RecordIDX_t a_relCandIdx)
void RemoveFromList (hsm_FileHeader *a_fh_p)
void ObjChgGoToDirty (hsm_FileHeader *a_fh_p)

Public Attributes

 log_CLASSID_m

Protected Attributes

hsm_List_e m_list
 in which list is an object
bool m_packedInDF
 sEt in method MigrationIsDone
hsm_FHtimed_li m_dirtyPos
 dirty list is timedList if obj is inside dirty list that has set this dirtyPos iterator
hsm_FH_p_li m_migCanPos
 Migration candidate is a list if obj is inside migCand list then m_migCanPos iterator point to its position.
hsm_FH_p_li m_recallFromADPPos
 Position in Recall ADP list.
Int32_t m_jobIdx
 when obj is on job lists then this indeces are used 0 mean first index, thus -1 mean that is not in job list
Int32_t m_jobElemIdx
hsm_FHtimed_li m_dirListPos
 position in directory wait list
hdb_circList_e m_relCandCircList
 position in release candidate lists
ivd_RecordIDX_t m_relCandIdx

Constructor & Destructor Documentation

hsm_ListPos::hsm_ListPos (  ) 

Definition at line 43 of file hsm_ListPos.cpp.

00044         :
00045         m_list(eNoList),
00046         m_packedInDF(false),
00047         m_dirtyPos(NULL),
00048         m_migCanPos(NULL),
00049         m_jobIdx(-1),
00050         m_jobElemIdx(-1),
00051         m_dirListPos(NULL),
00052         m_relCandCircList(clNoList),
00053         m_relCandIdx(0)
00054 {
00055     // empty
00056 }
//============================================================================//

hsm_ListPos::~hsm_ListPos (  ) 

Definition at line 60 of file hsm_ListPos.cpp.

00061 {
00062 
00063 }


Member Function Documentation

bool hsm_ListPos::operator== ( const hsm_ListPos a_listPos  )  const

Definition at line 67 of file hsm_ListPos.cpp.

References cmn_Num2Str(), eDirtyList, eJobList, eMigCndList, eNoList, ePreJobList, eRelCndList, ie_NOTYPE, log_FUNC_m, m_dirtyPos, m_jobElemIdx, m_jobIdx, m_list, m_migCanPos, m_relCandCircList, and m_relCandIdx.

00067                                                                 {
00068     log_FUNC_m(operator==);
00069     if (a_listPos.m_list == m_list) {
00070         switch (m_list) {
00071         case eDirtyList:
00072             return a_listPos.m_dirtyPos  == m_dirtyPos;
00073             break;
00074 
00075         case eMigCndList:
00076             return a_listPos.m_migCanPos == m_migCanPos;
00077             break;
00078 
00079         case ePreJobList:
00080         case eJobList:
00081             return     (a_listPos.m_jobIdx     == m_jobIdx)
00082                     && (a_listPos.m_jobElemIdx == m_jobElemIdx);
00083             break;
00084 
00085         case eRelCndList :
00086             return     (a_listPos.m_relCandCircList == m_relCandCircList)
00087                     && (a_listPos.m_relCandIdx      == m_relCandIdx);
00088             break;
00089 
00090         case eNoList :
00091             return true;
00092             break;
00093 
00094         default :
00095             throw ivd_InternalError(ie_NOTYPE,
00096                 "Wrong list type in FH hsm_List_e = " + cmn_Num2Str(m_list) , true);
00097             break;
00098         }
00099     }
00100     else {
00101         return false;
00102     }
00103 }

Here is the call graph for this function:

void hsm_ListPos::operator= ( const hsm_ListPos a_listPos  ) 

Definition at line 107 of file hsm_ListPos.cpp.

References cmn_Num2Str(), eDirtyList, eJobList, eMigCndList, eNoList, ePreJobList, eRelCndList, ie_NOTYPE, log_FUNC_m, m_dirtyPos, m_jobElemIdx, m_jobIdx, m_list, m_migCanPos, m_packedInDF, m_relCandCircList, and m_relCandIdx.

00107                                                          {
00108     log_FUNC_m(operator=);
00109 
00110     m_list       = a_listPos.m_list;
00111     m_packedInDF = a_listPos.m_packedInDF;
00112     switch (m_list) {
00113     case eDirtyList:
00114         m_dirtyPos   = a_listPos.m_dirtyPos;
00115         break;
00116 
00117     case eMigCndList:
00118         m_migCanPos  = a_listPos.m_migCanPos;
00119         break;
00120 
00121     case ePreJobList:
00122     case eJobList:
00123         m_jobIdx     = a_listPos.m_jobIdx;
00124         m_jobElemIdx = a_listPos.m_jobElemIdx;
00125         break;
00126 
00127     case eRelCndList :
00128         m_relCandCircList = a_listPos.m_relCandCircList;
00129         m_relCandIdx      = a_listPos.m_relCandIdx;
00130         break;
00131 
00132     case eNoList :
00133         break;
00134 
00135     default :
00136         throw ivd_InternalError(ie_NOTYPE,
00137             "Wrong list type in FH hsm_List_e = " + cmn_Num2Str(m_list) , true);
00138         break;
00139     }
00140 }

Here is the call graph for this function:

hsm_List_e hsm_ListPos::GetList ( void   )  const [inline]

Reimplemented in hsm_FileHeader.

Definition at line 81 of file hsm_ListPos.h.

References m_list.

00081 { return m_list;};

hsm_FHtimed_li hsm_ListPos::GetDirtyPos (  )  const [inline]

Definition at line 83 of file hsm_ListPos.h.

References m_dirtyPos.

00083 { return m_dirtyPos;};

hsm_FH_p_li hsm_ListPos::GetMigCanPos (  )  const [inline]

Definition at line 84 of file hsm_ListPos.h.

References m_migCanPos.

Referenced by hsm_FHmigc::Remove().

00084 { return m_migCanPos;};

Here is the caller graph for this function:

hsm_FH_p_li hsm_ListPos::GetRecallFromADPPos (  )  const [inline]

Definition at line 85 of file hsm_ListPos.h.

References m_recallFromADPPos.

Referenced by hsm_FHADPRecall::Remove().

00085 { return m_recallFromADPPos; };

Here is the caller graph for this function:

Int32_t hsm_ListPos::GetJobIdx (  )  const [inline]

Definition at line 86 of file hsm_ListPos.h.

References m_jobIdx.

Referenced by i_HSM_i::CompleteMigration(), and i_HSM_i::DoMigrationJob().

00086 { return m_jobIdx;};

Here is the caller graph for this function:

Int32_t hsm_ListPos::GetJobElemIdx (  )  const [inline]

Definition at line 87 of file hsm_ListPos.h.

References m_jobElemIdx.

Referenced by i_HSM_i::CompleteMigration(), i_HSM_i::DoMigrationJob(), hsm_JobElemVecMgr::JobToSequence(), and i_HSM_i::PackFile().

00087 { return m_jobElemIdx;};

Here is the caller graph for this function:

hsm_FHtimed_li hsm_ListPos::GetDirListPos (  )  const [inline]

Definition at line 88 of file hsm_ListPos.h.

References m_dirListPos.

00088 { return m_dirListPos;};

hdb_circList_e hsm_ListPos::GetRelCandCircList (  )  const [inline]

Definition at line 90 of file hsm_ListPos.h.

References m_relCandCircList.

Referenced by hsm_FHrelc::Release().

00090 { return  m_relCandCircList;};

Here is the caller graph for this function:

ivd_RecordIDX_t hsm_ListPos::GetRelCandIdx (  )  const [inline]

Definition at line 91 of file hsm_ListPos.h.

References m_relCandIdx.

Referenced by hsm_ReleaseCandRec::Release().

00091 { return  m_relCandIdx;};

Here is the caller graph for this function:

void hsm_ListPos::SetList ( hsm_List_e  a_fList  )  [inline]

Reimplemented in hsm_FileHeader.

Definition at line 94 of file hsm_ListPos.h.

References m_list.

00094 {m_list       = a_fList;};

void hsm_ListPos::SetDirtyPos ( hsm_FHtimed_li  a_dirtyPos  )  [inline]

Definition at line 96 of file hsm_ListPos.h.

References m_dirtyPos.

00096 {m_dirtyPos   = a_dirtyPos;};

void hsm_ListPos::SetMigCanPos ( hsm_FH_p_li  a_migCanPos  )  [inline]

Definition at line 97 of file hsm_ListPos.h.

References m_migCanPos.

00097 {m_migCanPos  = a_migCanPos;};

void hsm_ListPos::SetRecallFromADPPos ( hsm_FH_p_li  a_recallFromADPPos  )  [inline]

Definition at line 98 of file hsm_ListPos.h.

References m_recallFromADPPos.

Referenced by hsm_FHADPRecall::Append().

00098 { m_recallFromADPPos = a_recallFromADPPos; };

Here is the caller graph for this function:

void hsm_ListPos::SetJobIdx ( Int32_t  a_jobIdx  )  [inline]

Definition at line 99 of file hsm_ListPos.h.

References m_jobIdx.

00099 {m_jobIdx     = a_jobIdx;};

void hsm_ListPos::SetJobElemIdx ( Int32_t  a_jobElemIdx  )  [inline]

Definition at line 100 of file hsm_ListPos.h.

References m_jobElemIdx.

00100 {m_jobElemIdx = a_jobElemIdx;};

void hsm_ListPos::SetDirLIstPos ( hsm_FHtimed_li  a_dirListPos  )  [inline]

Definition at line 101 of file hsm_ListPos.h.

References m_dirListPos.

00101 {m_dirListPos = a_dirListPos;};

void hsm_ListPos::SetCircList ( hdb_circList_e  a_circ_List,
ivd_RecordIDX_t  a_relCandIdx 
)

Definition at line 208 of file hsm_ListPos.cpp.

References dbg_DETAIL, log_DBG_m, log_FUNC_m, m_relCandCircList, and m_relCandIdx.

Referenced by hsm_FHrelc::Append(), and hsm_CheckFile2hsmdbRec().

00208                                                                                        {
00209     log_FUNC_m(SetCircList);
00210     m_relCandCircList = a_circ_List;
00211     m_relCandIdx      = a_relCandIdx;
00212     log_DBG_m (dbg_DETAIL, "m_relCandCircList: " << m_relCandCircList
00213                         << ", m_relCandIdx: " << m_relCandIdx);
00214 }

Here is the caller graph for this function:

void hsm_ListPos::RemoveFromList ( hsm_FileHeader a_fh_p  ) 

Definition at line 144 of file hsm_ListPos.cpp.

References cmn_Num2Str(), eDirtyList, eJobList, eMigCndList, eNoList, ePreJobList, eRelCndList, g_hsm_dirtyList_p, g_hsm_migcList_p, g_hsm_preJobList_p, ie_NOTYPE, log_FUNC_m, m_dirtyPos, m_jobElemIdx, m_jobIdx, m_list, m_migCanPos, hsm_JobListMgr::ReleaseElement(), hsm_FHmigc::Remove(), and hsm_TimedList::Remove().

Referenced by hsm_FileHeader::Event(), hsm_FileHeader::MigCanToPreJob(), ObjChgGoToDirty(), and hsm_FileHeader::ToMigCand().

00144                                                        {
00145     log_FUNC_m(RemoveFromList);
00146 
00147     switch (m_list) {
00148     case eDirtyList:
00149         g_hsm_dirtyList_p->Remove(m_dirtyPos);
00150         m_dirtyPos = hsm_FHtimed_li();
00151         break;
00152 
00153     case eMigCndList:
00154         g_hsm_migcList_p->Remove(a_fh_p);
00155         m_migCanPos = hsm_FH_p_li();
00156         break;
00157 
00158     case ePreJobList:
00159     case eJobList:
00160         g_hsm_preJobList_p->ReleaseElement(m_jobIdx, m_jobElemIdx);
00161         m_jobIdx = m_jobElemIdx = -1;
00162         break;
00163 
00164     case eRelCndList : // it is removed in event method
00165         break;
00166     case eNoList :
00167         break;
00168     default :
00169         throw ivd_InternalError(ie_NOTYPE,
00170             "Wrong list type in FH hsm_List_e = " + cmn_Num2Str(m_list) , true);
00171         break;
00172     }
00173 }

Here is the call graph for this function:

Here is the caller graph for this function:

void hsm_ListPos::ObjChgGoToDirty ( hsm_FileHeader a_fh_p  ) 

Definition at line 176 of file hsm_ListPos.cpp.

References hsm_TimedList::Append(), cmn_Num2Str(), eDirtyList, eJobList, eMigCndList, eNoList, ePreJobList, eRelCndList, g_hsm_dirtyList_p, ie_NOTYPE, log_FUNC_m, m_dirtyPos, m_list, m_packedInDF, RemoveFromList(), and hsm_TimedList::SpliceToEnd().

Referenced by hsm_FileHeader::CompleteMigIsDone(), hsm_FileHeader::InodeChgGoToDirty(), hsm_FileHeader::NameOwnChgGoToDirty(), and hsm_FileHeader::ToMigCand().

00176                                                         {
00177     log_FUNC_m(ObjChgGoToDirty);
00178 
00179     m_packedInDF = false;
00180 
00181     switch (m_list) {
00182     case    eNoList :
00183         m_dirtyPos = g_hsm_dirtyList_p->Append(a_fh_p);
00184         m_list     = eDirtyList;
00185         break;
00186 
00187     case eDirtyList :
00188         g_hsm_dirtyList_p->SpliceToEnd(m_dirtyPos);
00189         break;
00190 
00191     case eRelCndList :
00192     case ePreJobList :
00193     case eJobList:
00194     case eMigCndList :
00195         m_dirtyPos = g_hsm_dirtyList_p->Append(a_fh_p);
00196         RemoveFromList(a_fh_p);// remove after insert because of reference counter
00197         m_list     = eDirtyList;
00198         break;
00199 
00200     default :
00201         throw ivd_InternalError(ie_NOTYPE,
00202             "Wrong list type in FH hsm_List_e = " + cmn_Num2Str(m_list) , true);
00203         break;
00204     }
00205 }

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Reimplemented in hsm_FileHeader.

Definition at line 42 of file hsm_ListPos.h.

in which list is an object

Reimplemented in hsm_FileHeader.

Definition at line 46 of file hsm_ListPos.h.

Referenced by GetList(), ObjChgGoToDirty(), operator=(), operator==(), RemoveFromList(), and SetList().

bool hsm_ListPos::m_packedInDF [protected]

sEt in method MigrationIsDone

Definition at line 50 of file hsm_ListPos.h.

Referenced by hsm_FileHeader::MigrationIsDone(), ObjChgGoToDirty(), and operator=().

dirty list is timedList if obj is inside dirty list that has set this dirtyPos iterator

Definition at line 55 of file hsm_ListPos.h.

Referenced by GetDirtyPos(), ObjChgGoToDirty(), operator=(), operator==(), RemoveFromList(), and SetDirtyPos().

Migration candidate is a list if obj is inside migCand list then m_migCanPos iterator point to its position.

Definition at line 60 of file hsm_ListPos.h.

Referenced by GetMigCanPos(), operator=(), operator==(), RemoveFromList(), SetMigCanPos(), and hsm_FileHeader::ToMigCand().

Position in Recall ADP list.

Definition at line 64 of file hsm_ListPos.h.

Referenced by GetRecallFromADPPos(), and SetRecallFromADPPos().

when obj is on job lists then this indeces are used 0 mean first index, thus -1 mean that is not in job list

Reimplemented in hsm_FileHeader.

Definition at line 68 of file hsm_ListPos.h.

Referenced by GetJobIdx(), operator=(), operator==(), RemoveFromList(), and SetJobIdx().


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

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