//--------------------------------------------------------------------------- #pragma hdrstop #include "CDSVmsObjectF.h" //--------------------------------------------------------------------------- #pragma package(smart_init) //--------------------------------------------------------------------------- TVmsObj::TVmsObj(AnsiString AVMSID) { VMSID = AVMSID; USE = false; MEMDEL = false; FLogList = NULL; FLogFile = NULL; RowIdx = -1; } //--------------------------------------------------------------------------- TVmsObj::~TVmsObj() { } //--------------------------------------------------------------------------- void TVmsObj::ClearFormList() { try { FormLists.Lock(); try { FormLists.RemoveAll(); } catch(Exception &e) { } } __finally { FormLists.UnLock(); } } //--------------------------------------------------------------------------- TVmsForm *TVmsObj::FindVmsForm(int AScenarioSeq, AnsiString AFormId) { FOR_STL(TVmsForm*, pForm, FormLists) { if (pForm->ScenarioSeq == AScenarioSeq && pForm->FormId == AFormId) { return pForm; } } return NULL; } //--------------------------------------------------------------------------- //--------------------------------------------------------------------------- TVmsManager *VmsManager = NULL; //--------------------------------------------------------------------------- TVmsManager::TVmsManager() { FLock = false; } //--------------------------------------------------------------------------- TVmsManager::~TVmsManager() { FLists.RemoveAll(); } //--------------------------------------------------------------------------- void TVmsManager::Lock() { FLists.Lock(); FLock = true; } //--------------------------------------------------------------------------- void TVmsManager::UnLock() { if (FLock) { FLists.UnLock(); } FLock = false; } //--------------------------------------------------------------------------- int TVmsManager::GetVmsCount() { int nCount = 0; try { //FLists.Lock(); nCount = FLists.Size(); } __finally { //FLists.UnLock(); } return nCount; } //--------------------------------------------------------------------------- TVmsObj *TVmsManager::FindVms(AnsiString AIPADDRESS) { TVmsObj *pFindObj = NULL; try { FLists.Lock(); FOR_STL(TVmsObj*, pObj, VmsManager->FLists) { if (!pObj->IPADDRESS.AnsiCompare(AIPADDRESS)) { pFindObj = pObj; break; } } } __finally { FLists.UnLock(); } return pFindObj; } //---------------------------------------------------------------------------