File: filetransferlist_8h_source.html

package info (click to toggle)
arc-gui-clients 0.4.6-7
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye
  • size: 25,484 kB
  • sloc: cpp: 11,077; python: 181; perl: 171; pascal: 165; ansic: 12; makefile: 7
file content (176 lines) | stat: -rw-r--r-- 15,888 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>ARC Graphical Clients: /home/jonas/Development/arc-gui-clients/src/arcstorage-ui/filetransferlist.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
    </ul>
  </div>
<h1>/home/jonas/Development/arc-gui-clients/src/arcstorage-ui/filetransferlist.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="preprocessor">#ifndef FILETRANSFERLIST_H</span>
<a name="l00002"></a>00002 <span class="preprocessor"></span><span class="preprocessor">#define FILETRANSFERLIST_H</span>
<a name="l00003"></a>00003 <span class="preprocessor"></span>
<a name="l00004"></a>00004 <span class="preprocessor">#include &lt;QMutex&gt;</span>
<a name="l00005"></a>00005 <span class="preprocessor">#include &lt;QList&gt;</span>
<a name="l00006"></a>00006 <span class="preprocessor">#include &lt;QHash&gt;</span>
<a name="l00007"></a>00007 <span class="preprocessor">#include &lt;QThread&gt;</span>
<a name="l00008"></a>00008 
<a name="l00009"></a>00009 <span class="preprocessor">#include &quot;filetransfer.h&quot;</span>
<a name="l00010"></a>00010 
<a name="l00012"></a><a class="code" href="classFileTransferProcessingThread.html">00012</a> <span class="keyword">class </span><a class="code" href="classFileTransferProcessingThread.html" title="Thread class for driving the FileTransferList.">FileTransferProcessingThread</a> : <span class="keyword">public</span> QThread
<a name="l00013"></a>00013 {
<a name="l00014"></a>00014     Q_OBJECT
<a name="l00015"></a>00015 <span class="keyword">private</span>:
<a name="l00016"></a>00016     <span class="keywordtype">bool</span> m_terminate;
<a name="l00017"></a>00017     <span class="keywordtype">bool</span> m_pause;
<a name="l00018"></a>00018 <span class="keyword">public</span>:
<a name="l00020"></a>00020     <a class="code" href="classFileTransferProcessingThread.html#a48a7607f659e223fd5e9dfe05712d0b4" title="Create a file transfer processing thread.">FileTransferProcessingThread</a>();
<a name="l00021"></a>00021 
<a name="l00023"></a>00023     <span class="keywordtype">void</span> <a class="code" href="classFileTransferProcessingThread.html#ae19e65172990cee455f9f206bfedb879" title="Shutdown file transfer processing.">shutdown</a>();
<a name="l00024"></a>00024 
<a name="l00026"></a>00026     <span class="keywordtype">void</span> <a class="code" href="classFileTransferProcessingThread.html#ab43b0307f39d5b7d49ddb45bed9c8e8a" title="Pause file transfer processing.">pause</a>();
<a name="l00027"></a>00027 
<a name="l00029"></a>00029     <span class="keywordtype">void</span> <a class="code" href="classFileTransferProcessingThread.html#a9d8197dfda062b8ffc5dd686c5686612" title="Resume file transfer processing processing.">resume</a>();
<a name="l00030"></a>00030 
<a name="l00031"></a>00031 <span class="keyword">private</span>:
<a name="l00032"></a>00032     <span class="keywordtype">void</span> run();
<a name="l00033"></a>00033 };
<a name="l00034"></a>00034 
<a name="l00036"></a><a class="code" href="classFileTransferList.html">00036</a> <span class="keyword">class </span><a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a> : <span class="keyword">public</span> QObject
<a name="l00037"></a>00037 {
<a name="l00038"></a>00038     Q_OBJECT
<a name="l00039"></a>00039 <span class="keyword">private</span>:
<a name="l00040"></a>00040     QList&lt;FileTransfer*&gt; m_transferList;
<a name="l00041"></a>00041     QList&lt;FileTransfer*&gt; m_activeTransferList;
<a name="l00042"></a>00042     QHash&lt;QString, FileTransfer*&gt; m_transferDict;
<a name="l00043"></a>00043     QHash&lt;QString, FileTransfer*&gt; m_activeTransferDict;
<a name="l00044"></a>00044     <a class="code" href="classFileTransferProcessingThread.html" title="Thread class for driving the FileTransferList.">FileTransferProcessingThread</a>* m_fileProcessingThread;
<a name="l00045"></a>00045     QMutex m_accessMutex;
<a name="l00046"></a>00046     <span class="keywordtype">int</span> m_maxTransfers;
<a name="l00047"></a>00047 <span class="keyword">public</span>:
<a name="l00049"></a><a class="code" href="classFileTransferList.html#a46a19ec5aa8cef69d7fa43de260efe6f">00049</a>     <span class="keyword">static</span> <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>* <a class="code" href="classFileTransferList.html#a46a19ec5aa8cef69d7fa43de260efe6f" title="Returns the global FileTransferList instance.">instance</a>()
<a name="l00050"></a>00050     {
<a name="l00051"></a>00051         <span class="keyword">static</span> QMutex mutex;
<a name="l00052"></a>00052         <span class="keywordflow">if</span> (!m_instance)
<a name="l00053"></a>00053         {
<a name="l00054"></a>00054             mutex.lock();
<a name="l00055"></a>00055 
<a name="l00056"></a>00056             <span class="keywordflow">if</span> (!m_instance)
<a name="l00057"></a>00057                 m_instance = <span class="keyword">new</span> <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>;
<a name="l00058"></a>00058 
<a name="l00059"></a>00059             mutex.unlock();
<a name="l00060"></a>00060         }
<a name="l00061"></a>00061 
<a name="l00062"></a>00062         <span class="keywordflow">return</span> m_instance;
<a name="l00063"></a>00063     }
<a name="l00064"></a>00064 
<a name="l00066"></a><a class="code" href="classFileTransferList.html#a4d134827268a8652edb1272899ed6177">00066</a>     <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a4d134827268a8652edb1272899ed6177" title="Shuts down the global FileTransferList instance.">drop</a>()
<a name="l00067"></a>00067     {
<a name="l00068"></a>00068         <span class="keyword">static</span> QMutex mutex;
<a name="l00069"></a>00069         mutex.lock();
<a name="l00070"></a>00070         <span class="keyword">delete</span> m_instance;
<a name="l00071"></a>00071         m_instance = 0;
<a name="l00072"></a>00072         mutex.unlock();
<a name="l00073"></a>00073     }
<a name="l00074"></a>00074 
<a name="l00076"></a>00076 
<a name="l00080"></a>00080     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a92ad0c960ff3a7d3a37a28bcd8dd0bbb" title="Drives the file transfer processing.">processTransfers</a>();
<a name="l00081"></a>00081 
<a name="l00083"></a>00083     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a13ab77c4af630e6563f0039f2e24a771" title="Sets the file processing thread used.">setProcessingThread</a>(<a class="code" href="classFileTransferProcessingThread.html" title="Thread class for driving the FileTransferList.">FileTransferProcessingThread</a>* processingThread);
<a name="l00084"></a>00084 
<a name="l00086"></a>00086     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a06757dd68340af3857b3d80fbe647266" title="Adds a FileTransfer object to the list.">addTransfer</a>(<a class="code" href="classFileTransfer.html" title="Represents a single data transfer from one url to another.">FileTransfer</a>* fileTransfer);
<a name="l00087"></a>00087 
<a name="l00089"></a>00089     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#ae6d85b1fcf8745ee7845a215c3231bb0" title="Remove a FileTransfer object from the list.">removeTransfer</a>(<a class="code" href="classFileTransfer.html" title="Represents a single data transfer from one url to another.">FileTransfer</a>* fileTransfer);
<a name="l00090"></a>00090 
<a name="l00092"></a>00092 
<a name="l00096"></a>00096     <a class="code" href="classFileTransfer.html" title="Represents a single data transfer from one url to another.">FileTransfer</a>* <a class="code" href="classFileTransferList.html#a1e3efea6feca070a33cfa06c562db4ee" title="Return a FileTransfer object from the list.">getTransfer</a>(<span class="keywordtype">int</span> i);
<a name="l00097"></a>00097 
<a name="l00099"></a>00099     <span class="keywordtype">int</span> <a class="code" href="classFileTransferList.html#a1ad8accb2800e44c09c16fa99a588e50" title="Returns the size of the transfer list.">getTransferCount</a>();
<a name="l00100"></a>00100 
<a name="l00102"></a>00102 
<a name="l00107"></a>00107     <a class="code" href="classFileTransfer.html" title="Represents a single data transfer from one url to another.">FileTransfer</a>* <a class="code" href="classFileTransferList.html#a1e3efea6feca070a33cfa06c562db4ee" title="Return a FileTransfer object from the list.">getTransfer</a>(QString <span class="keywordtype">id</span>);
<a name="l00108"></a>00108 
<a name="l00110"></a>00110 
<a name="l00114"></a>00114     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a0d72c3c65be6dcbaea683e3019f930e8" title="Cancels all idle transfers.">cancelAllTransfers</a>();
<a name="l00115"></a>00115 
<a name="l00117"></a>00117 
<a name="l00124"></a>00124     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a6a920922327d51ffa0bab686ad8bdf70" title="Updates the file transfer statistics of a FileTransfer object.">updateStatus</a>(QString <span class="keywordtype">id</span>, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> transferred, <span class="keywordtype">unsigned</span> <span class="keywordtype">long</span> totalSize);
<a name="l00125"></a>00125 
<a name="l00127"></a>00127 
<a name="l00131"></a>00131     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a38b007b915766aa77e9e29e05ea8bd6a" title="Pauses all file transfer processing.">pauseProcessing</a>();
<a name="l00132"></a>00132 
<a name="l00134"></a>00134 
<a name="l00137"></a>00137     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a2651f7a2fffd03a606441118cda14159" title="Resumes file transfer processing.">resumeProcessing</a>();
<a name="l00138"></a>00138 
<a name="l00139"></a>00139 <span class="keyword">private</span>:
<a name="l00141"></a>00141     <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>();
<a name="l00142"></a>00142 
<a name="l00143"></a>00143     <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>(<span class="keyword">const</span> <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a> &amp;); <span class="comment">// hide copy constructor</span>
<a name="l00144"></a>00144     <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>&amp; operator=(<span class="keyword">const</span> <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a> &amp;); <span class="comment">// hide assign op</span>
<a name="l00145"></a>00145     <span class="comment">// we leave just the declarations, so the compiler will warn us</span>
<a name="l00146"></a>00146     <span class="comment">// if we try to use those two functions by accident</span>
<a name="l00147"></a>00147 
<a name="l00148"></a>00148     <span class="keyword">static</span> <a class="code" href="classFileTransferList.html" title="Maintains a global file transfer processing list.">FileTransferList</a>* m_instance;
<a name="l00149"></a>00149 
<a name="l00150"></a>00150 Q_SIGNALS:
<a name="l00152"></a>00152     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#afbdd0388fac6b596890d99ec5f464044" title="This signal is sent when there is updates in file processing.">onUpdateStatus</a>(QString <span class="keywordtype">id</span>);
<a name="l00153"></a>00153 
<a name="l00155"></a>00155     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#a17e783d79b2e1da1ddd6b0e9fa96ef3a" title="This signal is sent when a file transfer is added to the list.">onAddTransfer</a>(QString <span class="keywordtype">id</span>);
<a name="l00156"></a>00156 
<a name="l00158"></a>00158     <span class="keywordtype">void</span> <a class="code" href="classFileTransferList.html#af811955a9169c82feb92cfec90b75b45" title="This signal is sent when a file transfer is removed from the list.">onRemoveTransfer</a>(QString <span class="keywordtype">id</span>);
<a name="l00159"></a>00159 };
<a name="l00160"></a>00160 
<a name="l00161"></a>00161 <span class="preprocessor">#endif // FILETRANSFERLIST_H</span>
</pre></div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Variables</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 19 Feb 2013 for ARC Graphical Clients by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>