void QMainMenuWidget::showEvent(QShowEvent *evt) { m_mapCMVerInfo.clear(); RequestInformation(); QWidget::showEvent(evt); }
void QMainMenuWidget::onRequestFinish() { if( m_mapCMVerInfo.size() < 2 ) { RequestInformation(); } }
bool ProfilerCommunication::AllocateBuffer(LONG bufferSize, ULONG &bufferId) { CScopedLock<CMutex> lock(m_mutexCommunication); if (!hostCommunicationActive) return false; bool response = false; RequestInformation( [=]() { m_pMSG->allocateBufferRequest.type = MSG_AllocateMemoryBuffer; m_pMSG->allocateBufferRequest.lBufferSize = bufferSize; }, [=, &response, &bufferId]()->BOOL { response = m_pMSG->allocateBufferResponse.bResponse == TRUE; bufferId = m_pMSG->allocateBufferResponse.ulBufferId; ::ZeroMemory(m_pMSG, MAX_MSG_SIZE); return FALSE; } , COMM_WAIT_SHORT , _T("AllocateBuffer")); return response; }
bool ProfilerCommunication::TrackMethod(mdToken functionToken, WCHAR* pModulePath, WCHAR* pAssemblyName, ULONG &uniqueId) { CScopedLock<CMutex> lock(m_mutexCommunication); if (!hostCommunicationActive) return false; bool response = false; RequestInformation( [=]() { m_pMSG->trackMethodRequest.type = MSG_TrackMethod; m_pMSG->trackMethodRequest.functionToken = functionToken; wcscpy_s(m_pMSG->trackMethodRequest.szModulePath, pModulePath); wcscpy_s(m_pMSG->trackMethodRequest.szAssemblyName, pAssemblyName); }, [=, &response, &uniqueId]()->BOOL { response = m_pMSG->trackMethodResponse.bResponse == TRUE; uniqueId = m_pMSG->trackMethodResponse.ulUniqueId; ::ZeroMemory(m_pMSG, MAX_MSG_SIZE); return FALSE; } , COMM_WAIT_SHORT , _T("TrackMethod")); return response; }
bool ProfilerCommunication::GetBranchPoints(mdToken functionToken, WCHAR* pModulePath, WCHAR* pAssemblyName, std::vector<BranchPoint> &points) { if (!hostCommunicationActive) return false; points.clear(); RequestInformation( [=] { m_pMSG->getBranchPointsRequest.type = MSG_GetBranchPoints; m_pMSG->getBranchPointsRequest.functionToken = functionToken; wcscpy_s(m_pMSG->getBranchPointsRequest.szModulePath, pModulePath); wcscpy_s(m_pMSG->getBranchPointsRequest.szAssemblyName, pAssemblyName); }, [=, &points]()->BOOL { for (int i=0; i < m_pMSG->getBranchPointsResponse.count;i++) points.push_back(m_pMSG->getBranchPointsResponse.points[i]); BOOL hasMore = m_pMSG->getBranchPointsResponse.hasMore; ::ZeroMemory(m_pMSG, MAX_MSG_SIZE); return hasMore; } , COMM_WAIT_SHORT , _T("GetBranchPoints")); return (points.size() != 0); }
bool ProfilerCommunication::TrackAssembly(WCHAR* pModulePath, WCHAR* pAssemblyName) { CScopedLock<CMutex> lock(m_mutexCommunication); if (!hostCommunicationActive) return false; bool response = false; RequestInformation( [=]() { m_pMSG->trackAssemblyRequest.type = MSG_TrackAssembly; wcscpy_s(m_pMSG->trackAssemblyRequest.szModulePath, pModulePath); wcscpy_s(m_pMSG->trackAssemblyRequest.szAssemblyName, pAssemblyName); }, [=, &response]()->BOOL { response = m_pMSG->trackAssemblyResponse.bResponse == TRUE; ::ZeroMemory(m_pMSG, MAX_MSG_SIZE); return FALSE; } , COMM_WAIT_LONG , _T("TrackAssembly")); return response; }