コード例 #1
0
// Receive a notification from a child that its status has changed
void CCachedDirectory::UpdateChildDirectoryStatus(const CTGitPath& childDir, git_wc_status_kind childStatus)
{
	git_wc_status_kind currentStatus = git_wc_status_none;
	{
		AutoLocker lock(m_critSec);
		currentStatus = m_childDirectories[childDir];
	}
	if ((currentStatus != childStatus)||(!IsOwnStatusValid()))
	{
		{
			AutoLocker lock(m_critSec);
			m_childDirectories[childDir] = childStatus;
		}
		UpdateCurrentStatus();
	}
}
コード例 #2
0
// Receive a notification from a child that its status has changed
void CCachedDirectory::UpdateChildDirectoryStatus(const CTSVNPath& childDir, svn_wc_status_kind childStatus)
{
    CStringA winPath = CUnicodeUtils::GetUTF8 (childDir.GetWinPathString());
    svn_wc_status_kind currentStatus = svn_wc_status_none;
    {
        AutoLocker lock(m_critSec);
        auto it = m_childDirectories.find(winPath);
        if (it == m_childDirectories.end())
            return; // this is not a child, or at least not a child connected to the parent
        currentStatus = it->second;
    }
    if ((currentStatus != childStatus)||(!IsOwnStatusValid()))
    {
        SetChildStatus(winPath, childStatus);
        UpdateCurrentStatus();
    }
}