Do not add Signed-off-by if already included
[TortoiseGit.git] / src / TortoiseShell / RemoteCacheLink.h
blobc4b7956c654dc17aed660cf1c38dfbfdacf944bb
1 // TortoiseSVN - a Windows shell extension for easy version control
3 // Copyright (C) 2003-2008 - TortoiseSVN
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 #pragma once
21 struct TSVNCacheResponse;
22 class CTGitPath;
24 #include "GitStatus.h"
26 /**
27 * \ingroup TortoiseShell
28 * This class provides the link to the cache process.
30 class CRemoteCacheLink
32 public:
33 CRemoteCacheLink(void);
34 ~CRemoteCacheLink(void);
36 public:
37 bool GetStatusFromRemoteCache(const CTGitPath& Path, TSVNCacheResponse* pReturnedStatus, bool bRecursive);
38 bool ReleaseLockForPath(const CTGitPath& path);
40 private:
41 bool EnsurePipeOpen();
42 void ClosePipe();
44 bool EnsureCommandPipeOpen();
45 void CloseCommandPipe();
47 private:
48 HANDLE m_hPipe;
49 OVERLAPPED m_Overlapped;
50 HANDLE m_hEvent;
52 HANDLE m_hCommandPipe;
55 CComCriticalSection m_critSec;
56 git_wc_status2_t m_dummyStatus;
57 long m_lastTimeout;