File: libwnck-Resource-Usage-of-X-Clients.html

package info (click to toggle)
libwnck 2.22.3-1
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 6,312 kB
  • ctags: 2,113
  • sloc: ansic: 19,216; sh: 9,069; xml: 5,005; makefile: 192
file content (280 lines) | stat: -rw-r--r-- 13,352 bytes parent folder | download
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Resource Usage of X Clients</title>
<meta name="generator" content="DocBook XSL Stylesheets V1.73.2">
<link rel="start" href="index.html" title="Libwnck Reference Manual">
<link rel="up" href="utils.html" title="Part IV. Libwnck Utilities">
<link rel="prev" href="utils.html" title="Part IV. Libwnck Utilities">
<link rel="next" href="libwnck-Miscellaneous-Functions.html" title="Miscellaneous Functions">
<meta name="generator" content="GTK-Doc V1.10 (XML mode)">
<link rel="stylesheet" href="style.css" type="text/css">
<link rel="part" href="intro.html" title="Part I. Libwnck Overview">
<link rel="part" href="core.html" title="Part II. Libwnck Core Window Management Support">
<link rel="part" href="widgets.html" title="Part III. Libwnck Widgets">
<link rel="part" href="utils.html" title="Part IV. Libwnck Utilities">
<link rel="part" href="indexes.html" title="Part V. Index of symbols">
<link rel="index" href="ix01.html" title="Index of all symbols">
<link rel="index" href="ix02.html" title="Index of deprecated symbols">
<link rel="index" href="ix03.html" title="Index of new symbols in 2.2">
<link rel="index" href="ix04.html" title="Index of new symbols in 2.4">
<link rel="index" href="ix05.html" title="Index of new symbols in 2.6">
<link rel="index" href="ix06.html" title="Index of new symbols in 2.8">
<link rel="index" href="ix07.html" title="Index of new symbols in 2.10">
<link rel="index" href="ix08.html" title="Index of new symbols in 2.12">
<link rel="index" href="ix09.html" title="Index of new symbols in 2.14">
<link rel="index" href="ix10.html" title="Index of new symbols in 2.16">
<link rel="index" href="ix11.html" title="Index of new symbols in 2.20">
<link rel="index" href="ix12.html" title="Index of new symbols in 2.22">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2">
<tr valign="middle">
<td><a accesskey="p" href="utils.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td>
<td><a accesskey="u" href="utils.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td>
<td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td>
<th width="100%" align="center">Libwnck Reference Manual</th>
<td><a accesskey="n" href="libwnck-Miscellaneous-Functions.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td>
</tr>
<tr><td colspan="5" class="shortcuts"><nobr><a href="#libwnck-Resource-Usage-of-X-Clients.synopsis" class="shortcut">Top</a>
                   | 
                  <a href="#libwnck-Resource-Usage-of-X-Clients.description" class="shortcut">Description</a></nobr></td></tr>
</table>
<div class="refentry" lang="en">
<a name="libwnck-Resource-Usage-of-X-Clients"></a><div class="titlepage"></div>
<div class="refnamediv"><table width="100%"><tr>
<td valign="top">
<h2><span class="refentrytitle"><a name="libwnck-Resource-Usage-of-X-Clients.top_of_page"></a>Resource Usage of X Clients</span></h2>
<p>Resource Usage of X Clients — reading resource usage of X clients.</p>
</td>
<td valign="top" align="right"></td>
</tr></table></div>
<div class="refsect1" lang="en">
<a name="libwnck-Resource-Usage-of-X-Clients.stability-level"></a><h2>Stability Level</h2>
Unstable, unless otherwise indicated
</div>
<div class="refsynopsisdiv">
<a name="libwnck-Resource-Usage-of-X-Clients.synopsis"></a><h2>Synopsis</h2>
<pre class="synopsis">

#include &lt;libwnck/libwnck.h&gt;

                    <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage">WnckResourceUsage</a>;
void                <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#wnck-xid-read-resource-usage" title="wnck_xid_read_resource_usage ()">wnck_xid_read_resource_usage</a>        (GdkDisplay *gdk_display,
                                                         gulong xid,
                                                         <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage">WnckResourceUsage</a> *usage);
void                <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#wnck-pid-read-resource-usage" title="wnck_pid_read_resource_usage ()">wnck_pid_read_resource_usage</a>        (GdkDisplay *gdk_display,
                                                         gulong pid,
                                                         <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage">WnckResourceUsage</a> *usage);
</pre>
</div>
<div class="refsect1" lang="en">
<a name="libwnck-Resource-Usage-of-X-Clients.description"></a><h2>Description</h2>
<p>
libwnck provides an easy-to-use interface to the XRes X server extension to
read resource usage of X clients, which can be defined either by the X
window ID of one of their windows or by the process ID of their process.</p>
<p>

</p>
</div>
<div class="refsect1" lang="en">
<a name="libwnck-Resource-Usage-of-X-Clients.details"></a><h2>Details</h2>
<div class="refsect2" lang="en">
<a name="WnckResourceUsage"></a><h3>WnckResourceUsage</h3>
<pre class="programlisting">typedef struct {
  gulong        total_bytes_estimate;
  
  gulong        pixmap_bytes;

  unsigned int n_pixmaps;
  unsigned int n_windows;
  unsigned int n_gcs;
  unsigned int n_pictures;
  unsigned int n_glyphsets;
  unsigned int n_fonts;
  unsigned int n_colormap_entries;
  unsigned int n_passive_grabs;
  unsigned int n_cursors;
  unsigned int n_other;
} WnckResourceUsage;
</pre>
<p>
The <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage"><span class="type">WnckResourceUsage</span></a> struct contains information about the total resource
usage of an X client, and the number of resources allocated for each
resource type.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term">gulong <em class="structfield"><code>total_bytes_estimate</code></em>;</span></p></td>
<td> estimation of the total number of bytes allocated in
the X server.
</td>
</tr>
<tr>
<td><p><span class="term">gulong <em class="structfield"><code>pixmap_bytes</code></em>;</span></p></td>
<td> number of bytes allocated in the X server for resources of
type Pixmap.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_pixmaps</code></em>;</span></p></td>
<td> number of Pixmap resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_windows</code></em>;</span></p></td>
<td> number of Window resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_gcs</code></em>;</span></p></td>
<td> number of GContext resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_pictures</code></em>;</span></p></td>
<td> number of Picture resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_glyphsets</code></em>;</span></p></td>
<td> number of Glyphset resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_fonts</code></em>;</span></p></td>
<td> number of Font resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_colormap_entries</code></em>;</span></p></td>
<td> number of Colormap resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_passive_grabs</code></em>;</span></p></td>
<td> number of PassiveGrab resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_cursors</code></em>;</span></p></td>
<td> number of Cursor resources allocated.
</td>
</tr>
<tr>
<td><p><span class="term">unsigned int <em class="structfield"><code>n_other</code></em>;</span></p></td>
<td> number of other resources allocated.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="wnck-xid-read-resource-usage"></a><h3>wnck_xid_read_resource_usage ()</h3>
<pre class="programlisting">void                wnck_xid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong xid,
                                                         <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage">WnckResourceUsage</a> *usage);</pre>
<p>
Looks for the X resource usage of the application owning the X window ID
<em class="parameter"><code>xid</code></em> on display <em class="parameter"><code>gdisplay</code></em>. If no resource usage can be found, then all
fields of <em class="parameter"><code>usage</code></em> are set to 0.
</p>
<p>
To properly work, this function requires the XRes extension on the X server.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gdk_display</code></em> :</span></p></td>
<td> a <code class="classname">GdkDisplay</code>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>xid</code></em> :</span></p></td>
<td> an X window ID.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
<td> return location for the X resource usage of the application owning
the X window ID <em class="parameter"><code>xid</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  2.6
</p>
</div>
<hr>
<div class="refsect2" lang="en">
<a name="wnck-pid-read-resource-usage"></a><h3>wnck_pid_read_resource_usage ()</h3>
<pre class="programlisting">void                wnck_pid_read_resource_usage        (GdkDisplay *gdk_display,
                                                         gulong pid,
                                                         <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#WnckResourceUsage" title="WnckResourceUsage">WnckResourceUsage</a> *usage);</pre>
<p>
Looks for the X resource usage of the application with process ID <em class="parameter"><code>pid</code></em> on
display <em class="parameter"><code>gdisplay</code></em>. If no resource usage can be found, then all fields of
<em class="parameter"><code>usage</code></em> are set to 0.
</p>
<p>
In order to find the resource usage of an application that does not have an
X window visible to libwnck (panel applets do not have any toplevel windows,
for example), <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#wnck-pid-read-resource-usage" title="wnck_pid_read_resource_usage ()"><code class="function">wnck_pid_read_resource_usage()</code></a> walks through the whole tree of
X windows. Since this walk is expensive in CPU, a cache is created. This
cache is updated in the background. This means there is a non-null
probability that no resource usage will be found for an application, even if
it is an X client. If this happens, calling <a class="link" href="libwnck-Resource-Usage-of-X-Clients.html#wnck-pid-read-resource-usage" title="wnck_pid_read_resource_usage ()"><code class="function">wnck_pid_read_resource_usage()</code></a>
again after a few seconds should work.
</p>
<p>
To properly work, this function requires the XRes extension on the X server.</p>
<p>

</p>
<div class="variablelist"><table border="0">
<col align="left" valign="top">
<tbody>
<tr>
<td><p><span class="term"><em class="parameter"><code>gdk_display</code></em> :</span></p></td>
<td> a <code class="classname">GdkDisplay</code>.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>pid</code></em> :</span></p></td>
<td> a process ID.
</td>
</tr>
<tr>
<td><p><span class="term"><em class="parameter"><code>usage</code></em> :</span></p></td>
<td> return location for the X resource usage of the application with
process ID <em class="parameter"><code>pid</code></em>.
</td>
</tr>
</tbody>
</table></div>
<p class="since">Since  2.6
</p>
</div>
</div>
<div class="refsect1" lang="en">
<a name="libwnck-Resource-Usage-of-X-Clients.see-also"></a><h2>See Also</h2>
<a class="link" href="WnckWindow.html#wnck-window-get-xid" title="wnck_window_get_xid ()"><code class="function">wnck_window_get_xid()</code></a>, <a class="link" href="WnckApplication.html#wnck-application-get-xid" title="wnck_application_get_xid ()"><code class="function">wnck_application_get_xid()</code></a>, <a class="link" href="WnckWindow.html#wnck-window-get-pid" title="wnck_window_get_pid ()"><code class="function">wnck_window_get_pid()</code></a>, <a class="link" href="WnckApplication.html#wnck-application-get-pid" title="wnck_application_get_pid ()"><code class="function">wnck_application_get_pid()</code></a>
</div>
</div>
<div class="footer">
<hr>
          Generated by GTK-Doc V1.10</div>
</body>
</html>