#include <mif_partmgr.h>

Definition at line 50 of file mif_partmgr.h.
Public Member Functions | |
| mif_PartMgr () | |
| virtual | ~mif_PartMgr () |
| void | SetMif (i_ManagementInterface_i *a_iMIF) |
| void | AddPart (const string &a_partName, const string &a_partUUID, const string &a_host, const string &a_fsID) |
| void | UpdatePart (const string &a_partName, const string &a_host, const string &a_fsID) |
| void | RemovePart (const string &a_partName) |
| void | EnablePart (const string &a_partName) |
| void | DisablePart (const string &a_partName) |
| mif_PartEntry | GetPart (const string &a_partName) |
| vector< mif_PartEntry > | GetAllPart () |
| void | GetAllPartFromRM () |
| void | StartAllPart () |
| void | StopAllPart () |
| void | GetClientFSIDs (const string &a_clientHost, i_StringList_t &a_list) |
| bool | IsInRecallOnlyMode (const string &a_partName) |
Private Member Functions | |
| vector< mif_PartEntry >::iterator | Find (const string &a_partName) |
| void | StartPM (vector< mif_PartEntry >::iterator a_iter) |
| void | StopPM (vector< mif_PartEntry >::iterator a_iter) |
| void | GetFSIDs (const string &a_clientHost, i_StringList_t &a_list) |
| void | SendClientFSIDs (const string &a_clientHost) |
Private Attributes | |
| vector< mif_PartEntry > | m_partList |
| cmn_Mutex | m_partList_x |
| i_ManagementInterface_i * | m_iMIF |
| log_CLASSID_m | |
| mif_PartMgr::mif_PartMgr | ( | ) |
| mif_PartMgr::~mif_PartMgr | ( | ) | [virtual] |
| vector< mif_PartEntry >::iterator mif_PartMgr::Find | ( | const string & | a_partName | ) | [private] |
Definition at line 46 of file mif_partmgr.cpp.
References ie_FATAL_ERROR, ie_NOTFOUND, ivd_Error, log_FUNC_m, m_iMIF, m_partList, and NULL.
Referenced by AddPart(), DisablePart(), EnablePart(), GetPart(), IsInRecallOnlyMode(), RemovePart(), and UpdatePart().
00046 { 00047 00048 log_FUNC_m(Find); 00049 if (m_iMIF == NULL){ 00050 throw ivd_InternalError(ie_FATAL_ERROR, "MIF pointer not set."); 00051 } 00052 00053 for (vector<mif_PartEntry>::iterator iter = m_partList.begin(); 00054 iter != m_partList.end(); 00055 ++iter) { 00056 00057 if (iter->m_partName == a_partName) { 00058 return iter; 00059 } 00060 } 00061 00062 throw ivd_Error(ie_NOTFOUND, "Cannot find partition."); 00063 }

| void mif_PartMgr::StartPM | ( | vector< mif_PartEntry >::iterator | a_iter | ) | [private] |
Definition at line 66 of file mif_partmgr.cpp.
References dbg_NORM, g_cmn, i_IVDPM, ie_MIF_PARTITION_MGR, ipc_EXEC_m, ivd_Error, log_DBG_m, log_FUNC_m, m_iMIF, cmn_SysInfo::m_serverHost, i_ManagementInterface_i::m_svc, mps_Online, mps_Stopped, ipc_Corba::ResolvePMByPartID(), and cmn_Global::si.
Referenced by AddPart(), EnablePart(), and StartAllPart().
00066 { 00067 log_FUNC_m(StartPM); 00068 00069 ipc_EXEC_m( 00070 try { 00071 bool isActive(false); 00072 00073 // check if PM already running 00074 try { 00075 ipc_EXEC_m( 00076 CORBA::Object_var obj = ipc_Corba::ResolvePMByPartID( 00077 g_cmn.si.m_serverHost, a_iter->m_partName, false); 00078 i_PartitionManager_var p = i_PartitionManager::_narrow(obj); 00079 isActive = true; 00080 ) 00081 } 00082 catch (ivd_Exception) { 00083 isActive = false; 00084 } 00085 00086 if (isActive) { 00087 throw ivd_Error(ie_MIF_PARTITION_MGR, 00088 "Can not start partition, already running"); 00089 } 00090 00091 i_StringList_t argSequence; 00092 argSequence.length(2); 00093 argSequence[0] = CORBA::string_dup("--name"); 00094 argSequence[1] = CORBA::string_dup(a_iter->m_partName.c_str()); 00095 ipc_EXEC_m( 00096 m_iMIF->m_svc->Execute(i_IVDPM, argSequence); 00097 ); 00098 log_DBG_m(dbg_NORM, "MIF: HSM-PM for partition " 00099 << a_iter->m_partName << " started."); 00100 00101 00102 CORBA::Object_var obj = ipc_Corba::ResolvePMByPartID( 00103 g_cmn.si.m_serverHost, a_iter->m_partName, true); 00104 a_iter->m_iPM = i_PartitionManager::_narrow(obj); 00105 a_iter->m_partStatus = mps_Online; 00106 } 00107 catch (...) { 00108 a_iter->m_partStatus = mps_Stopped; 00109 a_iter->m_iPM = i_PartitionManager::_nil(); 00110 } 00111 ); 00112 } // mif_PartMgr::StartPM()


| void mif_PartMgr::StopPM | ( | vector< mif_PartEntry >::iterator | a_iter | ) | [private] |
Definition at line 115 of file mif_partmgr.cpp.
References ipc_EXEC_m, and log_FUNC_m.
Referenced by DisablePart(), RemovePart(), and StopAllPart().
00115 { 00116 log_FUNC_m(StopPM); 00117 00118 try { 00119 ipc_EXEC_m( 00120 if (a_iter->m_iPM != i_PartitionManager::_nil()){ 00121 a_iter->m_iPM->Remove(); 00122 CORBA::release(a_iter->m_iPM); 00123 } 00124 ); 00125 } catch (ivd_Error& e){ 00126 // just log this error and continue 00127 log_ERR_m(e); 00128 } 00129 00130 a_iter->m_partStatus = mps_Stopped; 00131 a_iter->m_iPM = i_PartitionManager::_nil(); 00132 }

| void mif_PartMgr::GetFSIDs | ( | const string & | a_clientHost, | |
| i_StringList_t & | a_list | |||
| ) | [private] |
Definition at line 420 of file mif_partmgr.cpp.
References dbg_NORM, log_DBG_m, log_FUNC_m, m_partList, and mps_Disabled.
Referenced by GetClientFSIDs(), and SendClientFSIDs().
00420 { 00421 log_FUNC_m(GetFSIDs); 00422 00423 for (UInt32_t i=0; i < m_partList.size(); ++i) { 00424 00425 // only if partition online/enabled and host matches 00426 if (m_partList[i].m_partStatus != mps_Disabled 00427 && m_partList[i].m_partHost == a_clientHost) { 00428 00429 log_DBG_m(dbg_NORM, "Client: " << a_clientHost << 00430 " FS: " << m_partList[i].m_partFSID); 00431 00432 a_list.length(a_list.length()+1); 00433 a_list[a_list.length()-1] = 00434 CORBA::string_dup(m_partList[i].m_partFSID.c_str()); 00435 } 00436 } 00437 }

| void mif_PartMgr::SendClientFSIDs | ( | const string & | a_clientHost | ) | [private] |
Definition at line 440 of file mif_partmgr.cpp.
References dbg_NORM, GetFSIDs(), log_DBG_m, log_ERR_m, log_FUNC_m, and ipc_Corba::ResolveFSEvtMgr().
Referenced by AddPart(), DisablePart(), EnablePart(), RemovePart(), and UpdatePart().
00440 { 00441 log_FUNC_m(SendClientFSIDs); 00442 00443 i_StringList_t list; 00444 GetFSIDs(a_clientHost, list); 00445 00446 // now try to send list of FS IDs to client 00447 i_FsEvMgr_var iFSE; 00448 try { 00449 CORBA::Object_var obj = ipc_Corba::ResolveFSEvtMgr(a_clientHost.c_str(), 00450 false); 00451 iFSE = i_FsEvMgr::_narrow(obj); 00452 } 00453 catch (...) { 00454 // ignore error and check next one... 00455 log_DBG_m(dbg_NORM, "Warning: cannot resolve FSE: " << 00456 a_clientHost); 00457 iFSE = i_FsEvMgr::_nil(); 00458 } 00459 00460 if (!CORBA::is_nil(iFSE)) { 00461 try { 00462 iFSE->SetFSList(list); 00463 } 00464 catch(...) { 00465 // ignore - try to do us much as possible 00466 log_ERR_m("Could not send FS IDs to FSE: " << a_clientHost); 00467 } 00468 } 00469 else { 00470 log_ERR_m("Could not send FS IDs to FSE (down): " << a_clientHost); 00471 } 00472 }


| void mif_PartMgr::SetMif | ( | i_ManagementInterface_i * | a_iMIF | ) | [inline] |
Definition at line 74 of file mif_partmgr.h.
References m_iMIF.
Referenced by i_ManagementInterface_i::i_ManagementInterface_i().
00074 { 00075 m_iMIF = a_iMIF; 00076 }

| void mif_PartMgr::AddPart | ( | const string & | a_partName, | |
| const string & | a_partUUID, | |||
| const string & | a_host, | |||
| const string & | a_fsID | |||
| ) |
Definition at line 135 of file mif_partmgr.cpp.
References dbg_NORM, Find(), ie_MIF_PARTITION_MGR, ivd_Error, log_DBG_m, log_FUNC_m, mif_PartEntry::m_partFSID, mif_PartEntry::m_partHost, m_partList, m_partList_x, mif_PartEntry::m_partName, mif_PartEntry::m_partStatus, mif_PartEntry::m_partUUID, mps_Stopped, SendClientFSIDs(), and StartPM().
Referenced by i_ManagementInterface_i::AddPartition().
00136 { 00137 log_FUNC_m(AddPart); 00138 00139 cmn_MutexLock l(m_partList_x); 00140 00141 try { 00142 // verify that entry does not exist already 00143 Find(a_partName); 00144 } 00145 catch (...) { 00146 // not found -> add to list 00147 mif_PartEntry pe; 00148 00149 pe.m_partName = a_partName; 00150 pe.m_partUUID = a_partUUID; 00151 pe.m_partHost = a_host; 00152 pe.m_partFSID = a_fsID; 00153 pe.m_partStatus = mps_Stopped; // StartPM() will update this 00154 00155 log_DBG_m(dbg_NORM, "partName: " << pe.m_partName << endl 00156 << " partHost: " << pe.m_partHost << endl 00157 << " partFSID: " << pe.m_partFSID << endl); 00158 m_partList.push_back(pe); 00159 00160 // start Partition Manager 00161 StartPM(--m_partList.end()); 00162 00163 // notify client about new FS ID 00164 SendClientFSIDs(a_host); 00165 00166 return; 00167 } 00168 00169 // Find() succeded - partition exist 00170 throw ivd_Error(ie_MIF_PARTITION_MGR, "Cannot add partition - duplicate"); 00171 }


| void mif_PartMgr::UpdatePart | ( | const string & | a_partName, | |
| const string & | a_host, | |||
| const string & | a_fsID | |||
| ) |
Definition at line 174 of file mif_partmgr.cpp.
References dbg_NORM, Find(), ivd_BaseException::GetFriendly(), ie_MIF_PARTITION_MGR, ipc_EXEC_m, ivd_Error, log_DBG_m, log_FUNC_m, m_partList_x, mps_Online, and SendClientFSIDs().
Referenced by i_ManagementInterface_i::UpdatePartition().
00175 { 00176 log_FUNC_m(UpdatePart); 00177 00178 cmn_MutexLock l(m_partList_x); 00179 00180 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00181 00182 // check if FS ID changed: has to notify client 00183 bool changedFSID(false); 00184 if (iter->m_partFSID != a_fsID) { 00185 iter->m_partFSID = a_fsID; 00186 changedFSID = true; 00187 } 00188 00189 // check if client name changed: has to notify old client also 00190 string oldHost; 00191 if (iter->m_partHost != a_host) { 00192 iter->m_partHost = a_host; 00193 oldHost = iter->m_partHost; // save old hostname for update 00194 } 00195 00196 log_DBG_m(dbg_NORM, "partName: " << iter->m_partName << endl 00197 << " partHost: " << iter->m_partHost << endl 00198 << " partFSID: " << iter->m_partFSID << endl); 00199 00200 if (iter->m_partStatus == mps_Online) { 00201 // update partition manager configuration (re-read) 00202 try { 00203 ipc_EXEC_m( 00204 iter->m_iPM->RefreshCfg(); 00205 ); 00206 } 00207 catch (ivd_Exception &ex) { 00208 throw ivd_Error(ie_MIF_PARTITION_MGR, 00209 "Cannot reconfigure Partition Manager: " + 00210 ex.GetFriendly()); 00211 } 00212 log_DBG_m(dbg_NORM, "Partition manager " << a_partName << 00213 " refreshed configuration."); 00214 } 00215 00216 // if host changed: notify old client about removed FS ID 00217 if (!oldHost.empty()) { 00218 SendClientFSIDs(oldHost); 00219 } 00220 00221 // if host or FSID changed: notify old client about removed FS ID 00222 if (changedFSID || !oldHost.empty()) { 00223 // notify client about new FS ID 00224 SendClientFSIDs(iter->m_partHost); 00225 } 00226 } // mif_PartMgr::UpdatePart()


| void mif_PartMgr::RemovePart | ( | const string & | a_partName | ) |
Definition at line 229 of file mif_partmgr.cpp.
References dbg_LOW, Find(), log_DBG_m, log_FUNC_m, m_partList, m_partList_x, mps_Online, SendClientFSIDs(), and StopPM().
Referenced by i_ManagementInterface_i::RemovePartition().
00229 { 00230 log_FUNC_m(RemovePart); 00231 00232 cmn_MutexLock l(m_partList_x); 00233 00234 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00235 00236 if (iter->m_partStatus == mps_Online) { 00237 try { 00238 StopPM(iter); 00239 } 00240 catch (ivd_Exception &e) { 00241 log_DBG_m(dbg_LOW, "Cannot stop PM: " << iter->m_partName 00242 << " - ignored: " << e); 00243 } 00244 } 00245 00246 // remove from partition list 00247 string host(iter->m_partHost); 00248 m_partList.erase(iter); 00249 00250 // notify client about removed FS ID 00251 SendClientFSIDs(host); 00252 }


| void mif_PartMgr::EnablePart | ( | const string & | a_partName | ) |
Definition at line 255 of file mif_partmgr.cpp.
References Find(), ie_PRECONDITION, ivd_Error, log_FUNC_m, m_partList_x, mps_Online, mps_Stopped, SendClientFSIDs(), and StartPM().
Referenced by i_ManagementInterface_i::EnablePartition().
00255 { 00256 log_FUNC_m(EnablePart); 00257 00258 cmn_MutexLock l(m_partList_x); 00259 00260 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00261 00262 if (iter->m_partStatus == mps_Online){ 00263 throw ivd_Error(ie_PRECONDITION, 00264 "Partition can not be enabled, it is already running."); 00265 } else { 00266 // mark status as stopped (will start later) 00267 iter->m_partStatus = mps_Stopped; 00268 } 00269 00270 // start Partition Manager 00271 StartPM(iter); 00272 00273 // notify client about enabled FS ID 00274 SendClientFSIDs(iter->m_partHost); 00275 00276 // TODO: should we update RMDB also here? 00277 }


| void mif_PartMgr::DisablePart | ( | const string & | a_partName | ) |
Definition at line 280 of file mif_partmgr.cpp.
References dbg_LOW, Find(), log_DBG_m, log_FUNC_m, m_partList_x, mps_Disabled, SendClientFSIDs(), and StopPM().
Referenced by i_ManagementInterface_i::DisablePartition().
00280 { 00281 log_FUNC_m(DisablePart); 00282 00283 cmn_MutexLock l(m_partList_x); 00284 00285 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00286 00287 // stop Partition Manager 00288 try { 00289 StopPM(iter); 00290 } 00291 catch (ivd_Exception &e) { 00292 log_DBG_m(dbg_LOW, "Cannot stop PM: " << iter->m_partName 00293 << " - ignored: " << e); 00294 } 00295 00296 // mark status as disabled 00297 iter->m_partStatus = mps_Disabled; 00298 00299 // notify client about disabled FS ID 00300 SendClientFSIDs(iter->m_partHost); 00301 00302 // TODO: should we update RMDB also here? 00303 }


| mif_PartEntry mif_PartMgr::GetPart | ( | const string & | a_partName | ) |
Definition at line 306 of file mif_partmgr.cpp.
References Find(), log_FUNC_m, and m_partList_x.
Referenced by i_ManagementInterface_i::CheckFSCvsIVDFS(), i_ManagementInterface_i::CheckFSCvsMedia(), i_ManagementInterface_i::CopyContents(), i_ManagementInterface_i::DisablePartition(), i_ManagementInterface_i::FSCRecover(), i_ManagementInterface_i::GetPartition(), i_ManagementInterface_i::IVDFSRecover(), i_ManagementInterface_i::LimitedCheckFSCvsMedia(), i_ManagementInterface_i::ListJobs(), i_ManagementInterface_i::PartitionReorgStat(), i_ManagementInterface_i::PartitionStatus(), i_ManagementInterface_i::RemovePartition(), i_ManagementInterface_i::Reorg(), i_ManagementInterface_i::ReorgScan(), and i_ManagementInterface_i::TrigDeletion().
00306 { 00307 log_FUNC_m(GetPart); 00308 00309 cmn_MutexLock l(m_partList_x); 00310 00311 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00312 00313 return *iter; 00314 }


| vector<mif_PartEntry> mif_PartMgr::GetAllPart | ( | ) | [inline] |
Definition at line 87 of file mif_partmgr.h.
References m_partList.
Referenced by i_ManagementInterface_i::AbortJob(), i_ManagementInterface_i::DisableDebug(), i_ManagementInterface_i::EnableDebug(), i_ManagementInterface_i::JobInfo(), i_ManagementInterface_i::ListJob(), i_ManagementInterface_i::ListPartitions(), i_ManagementInterface_i::ReportAllPartitions(), i_ManagementInterface_i::SystemStatus(), and i_ManagementInterface_i::ValidatePMConfig().
00087 { 00088 return m_partList; 00089 }

| void mif_PartMgr::GetAllPartFromRM | ( | ) |
Definition at line 316 of file mif_partmgr.cpp.
References dbg_LOW, dbg_NORM, ipc_EXEC_m, log_DBG_m, log_FUNC_m, m_iMIF, mif_PartEntry::m_iPM, mif_PartEntry::m_partFSID, mif_PartEntry::m_partFSMountPoint, mif_PartEntry::m_partHost, m_partList, m_partList_x, mif_PartEntry::m_partName, mif_PartEntry::m_partStatus, mif_PartEntry::m_partUUID, i_ManagementInterface_i::m_rm, mps_Disabled, mps_Stopped, partitionName, and rmdb_PARTITION_DISABLED.
Referenced by i_ManagementInterface_i::i_ManagementInterface_i().
00316 { 00317 log_FUNC_m(GetAllPartFromRM); 00318 00319 cmn_MutexLock l(m_partList_x); 00320 00321 // we will re-read all info about partitions from RMDB & CfgDB -> clear all 00322 m_partList.clear(); 00323 00324 i_PartSeq_t_var partSeq; 00325 try { 00326 ipc_EXEC_m( 00327 partSeq = m_iMIF->m_rm->SelectAllPartition(); 00328 ); 00329 } 00330 catch (ivd_Exception) { 00331 log_DBG_m(dbg_LOW, "No partitions found?"); 00332 return; 00333 } 00334 00335 for (UInt32_t i = 0; i < partSeq->length(); i++) { 00336 00337 mif_PartEntry pe; 00338 00339 log_DBG_m(dbg_LOW, "Found PM: " << partSeq[i].partitionName << 00340 " fsID: " << partSeq[i].fsID); 00341 00342 // set default value to pe element 00343 // TODO: move this to CTOR of mif_PartEntry 00344 pe.m_partName = partSeq[i].partitionName; 00345 pe.m_iPM = i_PartitionManager::_nil(); 00346 pe.m_partStatus = mps_Stopped; 00347 00348 if ((partSeq[i].status & rmdb_PARTITION_DISABLED) 00349 == rmdb_PARTITION_DISABLED) { 00350 log_DBG_m(dbg_LOW, "Partition disabled"); 00351 pe.m_partStatus = mps_Disabled; 00352 } 00353 00354 // get client hostname and FS ID from configuration file 00355 // mif_Partition partition(m_iMIF, pe.m_partName); 00356 // partition.GetClientInfo(pe.m_partHost, pe.m_partFSID); 00357 00358 // if fsID is empty update it with proper values 1.2->2.0 upgrade 00359 if (string(partSeq[i].fsID).empty()){ 00360 ipc_EXEC_m( 00361 m_iMIF->m_rm->UpdatePartition(partSeq[i].partitionName); 00362 i_Partition_t_var pNew = m_iMIF->m_rm->SelectPartition(partSeq[i].partitionName); 00363 pe.m_partFSMountPoint = pNew->fsMountpoint; 00364 pe.m_partHost = pNew->fsHost; 00365 pe.m_partFSID = pNew->fsID; 00366 pe.m_partUUID = pNew->partitionUUIDString; 00367 ); 00368 } else { 00369 pe.m_partFSMountPoint = partSeq[i].fsMountpoint; 00370 pe.m_partHost = partSeq[i].fsHost; 00371 pe.m_partFSID = partSeq[i].fsID; 00372 pe.m_partUUID = partSeq[i].partitionUUIDString; 00373 } 00374 00375 00376 // add partition to list of partitions 00377 log_DBG_m(dbg_NORM, "partName: " << pe.m_partName << endl 00378 << " partHost: " << pe.m_partHost << endl 00379 << " partFSID: " << pe.m_partFSID << endl); 00380 m_partList.push_back(pe); 00381 } 00382 } // mif_PartMgr::GetAllPartFromRM()

| void mif_PartMgr::StartAllPart | ( | ) |
Definition at line 384 of file mif_partmgr.cpp.
References dbg_LOW, log_DBG_m, log_FUNC_m, m_partList, m_partList_x, mps_Disabled, and StartPM().
Referenced by i_ManagementInterface_i::i_ManagementInterface_i().
00384 { 00385 log_FUNC_m(StartAllPart); 00386 00387 cmn_MutexLock l(m_partList_x); 00388 00389 vector<mif_PartEntry>::iterator iter; 00390 for (iter = m_partList.begin(); iter != m_partList.end(); ++iter){ 00391 log_DBG_m(dbg_LOW, "Will start PM: " << iter->m_partName << 00392 " fsID" << iter->m_partFSID); 00393 // start Partition Manager (if not disabled) 00394 if (iter->m_partStatus != mps_Disabled) { 00395 StartPM(iter); 00396 } 00397 } 00398 }


| void mif_PartMgr::StopAllPart | ( | ) |
Definition at line 401 of file mif_partmgr.cpp.
References dbg_LOW, log_DBG_m, log_FUNC_m, m_partList, m_partList_x, mps_Online, and StopPM().
Referenced by i_ManagementInterface_i::Remove().
00401 { 00402 log_FUNC_m(StopAllPart); 00403 00404 cmn_MutexLock l(m_partList_x); 00405 00406 vector<mif_PartEntry>::iterator iter; 00407 for (iter = m_partList.begin(); iter != m_partList.end(); ++iter){ 00408 log_DBG_m(dbg_LOW, "Will stop PM: " << iter->m_partName); 00409 try { 00410 if (iter->m_partStatus == mps_Online) StopPM(iter); 00411 } 00412 catch (ivd_Exception &e) { 00413 log_DBG_m(dbg_LOW, "Cannot stop PM: " << iter->m_partName 00414 << " - ignored: " << e); 00415 } 00416 } 00417 }


| void mif_PartMgr::GetClientFSIDs | ( | const string & | a_clientHost, | |
| i_StringList_t & | a_list | |||
| ) |
Definition at line 475 of file mif_partmgr.cpp.
References GetFSIDs(), log_FUNC_m, and m_partList_x.
Referenced by i_ManagementInterface_i::GetFSList().
00476 { 00477 log_FUNC_m(GetClientFSIDs); 00478 00479 cmn_MutexLock l(m_partList_x); 00480 00481 GetFSIDs(a_clientHost, a_list); 00482 }


| bool mif_PartMgr::IsInRecallOnlyMode | ( | const string & | a_partName | ) |
Definition at line 484 of file mif_partmgr.cpp.
References Find(), ipc_EXEC_m, log_FUNC_m, and m_partList_x.
Referenced by i_ManagementInterface_i::UpdatePartition().
00484 { 00485 log_FUNC_m(IsInRecallOnlyMode); 00486 00487 cmn_MutexLock l(m_partList_x); 00488 vector<mif_PartEntry>::iterator iter = Find(a_partName); 00489 00490 ipc_EXEC_m( 00491 return iter->m_iPM->RecallOnlyMode(); 00492 ); 00493 }


vector<mif_PartEntry> mif_PartMgr::m_partList [private] |
Definition at line 66 of file mif_partmgr.h.
Referenced by AddPart(), Find(), GetAllPart(), GetAllPartFromRM(), GetFSIDs(), RemovePart(), StartAllPart(), and StopAllPart().
cmn_Mutex mif_PartMgr::m_partList_x [private] |
Definition at line 67 of file mif_partmgr.h.
Referenced by AddPart(), DisablePart(), EnablePart(), GetAllPartFromRM(), GetClientFSIDs(), GetPart(), IsInRecallOnlyMode(), RemovePart(), StartAllPart(), StopAllPart(), and UpdatePart().
i_ManagementInterface_i* mif_PartMgr::m_iMIF [private] |
Definition at line 69 of file mif_partmgr.h.
Referenced by Find(), GetAllPartFromRM(), SetMif(), and StartPM().
mif_PartMgr::log_CLASSID_m [private] |
Definition at line 71 of file mif_partmgr.h.
1.5.6