OSDN Git Service

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