]>
Commit | Line | Data |
---|---|---|
7c673cae FG |
1 | <?xml version="1.0" encoding="utf-8"?> |
2 | <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> | |
3 | ||
4 | <!-- | |
5 | Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) | |
6 | ||
7 | Distributed under the Boost Software License, Version 1.0. (See accompanying | |
8 | file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
9 | --> | |
10 | ||
11 | <xsl:output method="text"/> | |
12 | <xsl:strip-space elements="*"/> | |
13 | <xsl:preserve-space elements="para"/> | |
14 | ||
15 | ||
16 | <xsl:variable name="newline"> | |
17 | <xsl:text> | |
18 | </xsl:text> | |
19 | </xsl:variable> | |
20 | ||
21 | ||
22 | <!-- | |
23 | Loop over all top-level documentation elements (i.e. classes, functions, | |
24 | variables and typedefs at namespace scope). The elements are sorted by name. | |
25 | Anything in a "detail" namespace or with "_handler" in the name is skipped. | |
26 | --> | |
27 | <xsl:template match="/doxygen"> | |
28 | <xsl:text>[/ | |
29 | / Copyright (c) 2003-2016 Christopher M. Kohlhoff (chris at kohlhoff dot com) | |
30 | / | |
31 | / Distributed under the Boost Software License, Version 1.0. (See accompanying | |
32 | / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) | |
33 | /] | |
34 | ||
35 | [section:reference Reference] | |
36 | ||
37 | [xinclude quickref.xml] | |
38 | ||
39 | [include requirements/asynchronous_operations.qbk] | |
40 | [include requirements/AcceptHandler.qbk] | |
41 | [include requirements/AsyncRandomAccessReadDevice.qbk] | |
42 | [include requirements/AsyncRandomAccessWriteDevice.qbk] | |
43 | [include requirements/AsyncReadStream.qbk] | |
44 | [include requirements/AsyncWriteStream.qbk] | |
45 | [include requirements/BufferedHandshakeHandler.qbk] | |
46 | [include requirements/CompletionHandler.qbk] | |
47 | [include requirements/ComposedConnectHandler.qbk] | |
48 | [include requirements/ConnectHandler.qbk] | |
49 | [include requirements/ConstBufferSequence.qbk] | |
50 | [include requirements/ConvertibleToConstBuffer.qbk] | |
51 | [include requirements/ConvertibleToMutableBuffer.qbk] | |
52 | [include requirements/DatagramSocketService.qbk] | |
53 | [include requirements/DescriptorService.qbk] | |
54 | [include requirements/Endpoint.qbk] | |
55 | [include requirements/GettableSerialPortOption.qbk] | |
56 | [include requirements/GettableSocketOption.qbk] | |
57 | [include requirements/Handler.qbk] | |
58 | [include requirements/HandleService.qbk] | |
59 | [include requirements/HandshakeHandler.qbk] | |
60 | [include requirements/InternetProtocol.qbk] | |
61 | [include requirements/IoControlCommand.qbk] | |
62 | [include requirements/IoObjectService.qbk] | |
63 | [include requirements/MutableBufferSequence.qbk] | |
64 | [include requirements/ObjectHandleService.qbk] | |
65 | [include requirements/Protocol.qbk] | |
66 | [include requirements/RandomAccessHandleService.qbk] | |
67 | [include requirements/RawSocketService.qbk] | |
68 | [include requirements/ReadHandler.qbk] | |
69 | [include requirements/ResolveHandler.qbk] | |
70 | [include requirements/ResolverService.qbk] | |
71 | [include requirements/SeqPacketSocketService.qbk] | |
72 | [include requirements/SerialPortService.qbk] | |
73 | [include requirements/Service.qbk] | |
74 | [include requirements/SettableSerialPortOption.qbk] | |
75 | [include requirements/SettableSocketOption.qbk] | |
76 | [include requirements/ShutdownHandler.qbk] | |
77 | [include requirements/SignalHandler.qbk] | |
78 | [include requirements/SignalSetService.qbk] | |
79 | [include requirements/SocketAcceptorService.qbk] | |
80 | [include requirements/SocketService.qbk] | |
81 | [include requirements/StreamDescriptorService.qbk] | |
82 | [include requirements/StreamHandleService.qbk] | |
83 | [include requirements/StreamSocketService.qbk] | |
84 | [include requirements/SyncRandomAccessReadDevice.qbk] | |
85 | [include requirements/SyncRandomAccessWriteDevice.qbk] | |
86 | [include requirements/SyncReadStream.qbk] | |
87 | [include requirements/SyncWriteStream.qbk] | |
88 | [include requirements/TimeTraits.qbk] | |
89 | [include requirements/TimerService.qbk] | |
90 | [include requirements/WaitableTimerService.qbk] | |
91 | [include requirements/WaitHandler.qbk] | |
92 | [include requirements/WaitTraits.qbk] | |
93 | [include requirements/WriteHandler.qbk] | |
94 | ||
95 | </xsl:text> | |
96 | ||
97 | <xsl:for-each select=" | |
98 | compounddef[@kind = 'class' or @kind = 'struct'] | | |
99 | compounddef[@kind = 'namespace']/sectiondef[1]/memberdef"> | |
100 | <xsl:sort select="concat((. | ancestor::*)/compoundname, '::', name, ':x')"/> | |
101 | <xsl:sort select="name"/> | |
102 | <xsl:choose> | |
103 | <xsl:when test="@kind='class' or @kind='struct'"> | |
104 | <xsl:if test=" | |
105 | contains(compoundname, 'asio::') and | |
106 | not(contains(compoundname, '::detail')) and | |
107 | not(contains(compoundname, '::service::key')) and | |
108 | not(contains(compoundname, '_handler'))"> | |
109 | <xsl:call-template name="class"/> | |
110 | </xsl:if> | |
111 | </xsl:when> | |
112 | <xsl:otherwise> | |
113 | <xsl:if test=" | |
114 | not(contains(ancestor::*/compoundname, '::detail')) and | |
115 | not(contains(ancestor::*/compoundname, '::service::key')) and | |
116 | not(contains(ancestor::*/compoundname, '_helper')) and | |
117 | not(contains(name, '_helper')) and | |
118 | not(contains(name, 'io_service_impl'))"> | |
119 | <xsl:call-template name="namespace-memberdef"/> | |
120 | </xsl:if> | |
121 | </xsl:otherwise> | |
122 | </xsl:choose> | |
123 | </xsl:for-each> | |
124 | ||
125 | <xsl:value-of select="$newline"/> | |
126 | <xsl:text>[endsect]</xsl:text> | |
127 | ||
128 | </xsl:template> | |
129 | ||
130 | ||
131 | <!--========== Utilities ==========--> | |
132 | ||
133 | <xsl:template name="strip-asio-ns"> | |
134 | <xsl:param name="name"/> | |
135 | <xsl:choose> | |
136 | <xsl:when test="contains($name, 'boost::system::is_error_code_enum')"> | |
137 | <xsl:value-of select="$name"/> | |
138 | </xsl:when> | |
139 | <xsl:when test="contains($name, 'asio::')"> | |
140 | <xsl:value-of select="substring-after($name, 'asio::')"/> | |
141 | </xsl:when> | |
142 | <xsl:otherwise> | |
143 | <xsl:value-of select="$name"/> | |
144 | </xsl:otherwise> | |
145 | </xsl:choose> | |
146 | </xsl:template> | |
147 | ||
148 | ||
149 | <xsl:template name="strip-ns"> | |
150 | <xsl:param name="name"/> | |
151 | <xsl:choose> | |
152 | <xsl:when test="contains($name, 'boost::system::is_error_code_enum')"> | |
153 | <xsl:value-of select="$name"/> | |
154 | </xsl:when> | |
155 | <xsl:when test="contains($name, '::') and contains($name, '<')"> | |
156 | <xsl:choose> | |
157 | <xsl:when test="string-length(substring-before($name, '::')) < string-length(substring-before($name, '<'))"> | |
158 | <xsl:call-template name="strip-ns"> | |
159 | <xsl:with-param name="name" select="substring-after($name, '::')"/> | |
160 | </xsl:call-template> | |
161 | </xsl:when> | |
162 | <xsl:otherwise> | |
163 | <xsl:value-of select="$name"/> | |
164 | </xsl:otherwise> | |
165 | </xsl:choose> | |
166 | </xsl:when> | |
167 | <xsl:when test="contains($name, '::')"> | |
168 | <xsl:call-template name="strip-ns"> | |
169 | <xsl:with-param name="name" select="substring-after($name, '::')"/> | |
170 | </xsl:call-template> | |
171 | </xsl:when> | |
172 | <xsl:otherwise> | |
173 | <xsl:value-of select="$name"/> | |
174 | </xsl:otherwise> | |
175 | </xsl:choose> | |
176 | </xsl:template> | |
177 | ||
178 | ||
179 | <xsl:template name="cleanup-type"> | |
180 | <xsl:param name="name"/> | |
181 | <xsl:variable name="type"> | |
182 | <xsl:choose> | |
183 | <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')"> | |
184 | <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/> | |
185 | </xsl:when> | |
186 | <xsl:when test="contains($name, 'BOOST_ASIO_DECL')"> | |
187 | <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/> | |
188 | </xsl:when> | |
189 | <xsl:when test="$name = 'virtual'"></xsl:when> | |
190 | <xsl:otherwise> | |
191 | <xsl:value-of select="$name"/> | |
192 | </xsl:otherwise> | |
193 | </xsl:choose> | |
194 | </xsl:variable> | |
195 | <xsl:choose> | |
196 | <xsl:when test="$type='void_or_deduced'"> | |
197 | <xsl:text>``[link boost_asio.reference.asynchronous_operations.return_type_of_an_initiating_function ['void-or-deduced]]``</xsl:text> | |
198 | </xsl:when> | |
199 | <xsl:otherwise> | |
200 | <xsl:value-of select="$type"/> | |
201 | </xsl:otherwise> | |
202 | </xsl:choose> | |
203 | </xsl:template> | |
204 | ||
205 | ||
206 | <xsl:template name="make-id"> | |
207 | <xsl:param name="name"/> | |
208 | <xsl:choose> | |
209 | <xsl:when test="contains($name, 'boost::system::')"> | |
210 | <xsl:call-template name="make-id"> | |
211 | <xsl:with-param name="name" | |
212 | select="substring-after($name, 'boost::system::')"/> | |
213 | </xsl:call-template> | |
214 | </xsl:when> | |
215 | <xsl:when test="contains($name, 'boost::asio::error::')"> | |
216 | <xsl:call-template name="make-id"> | |
217 | <xsl:with-param name="name" | |
218 | select="concat(substring-before($name, 'boost::asio::error::'), substring-after($name, 'boost::asio::error::'))"/> | |
219 | </xsl:call-template> | |
220 | </xsl:when> | |
221 | <xsl:when test="contains($name, '::')"> | |
222 | <xsl:call-template name="make-id"> | |
223 | <xsl:with-param name="name" | |
224 | select="concat(substring-before($name, '::'), '__', substring-after($name, '::'))"/> | |
225 | </xsl:call-template> | |
226 | </xsl:when> | |
227 | <xsl:when test="contains($name, '=')"> | |
228 | <xsl:call-template name="make-id"> | |
229 | <xsl:with-param name="name" | |
230 | select="concat(substring-before($name, '='), '_eq_', substring-after($name, '='))"/> | |
231 | </xsl:call-template> | |
232 | </xsl:when> | |
233 | <xsl:when test="contains($name, '!')"> | |
234 | <xsl:call-template name="make-id"> | |
235 | <xsl:with-param name="name" | |
236 | select="concat(substring-before($name, '!'), '_not_', substring-after($name, '!'))"/> | |
237 | </xsl:call-template> | |
238 | </xsl:when> | |
239 | <xsl:when test="contains($name, '->')"> | |
240 | <xsl:call-template name="make-id"> | |
241 | <xsl:with-param name="name" | |
242 | select="concat(substring-before($name, '->'), '_arrow_', substring-after($name, '->'))"/> | |
243 | </xsl:call-template> | |
244 | </xsl:when> | |
245 | <xsl:when test="contains($name, '<')"> | |
246 | <xsl:call-template name="make-id"> | |
247 | <xsl:with-param name="name" | |
248 | select="concat(substring-before($name, '<'), '_lt_', substring-after($name, '<'))"/> | |
249 | </xsl:call-template> | |
250 | </xsl:when> | |
251 | <xsl:when test="contains($name, '>')"> | |
252 | <xsl:call-template name="make-id"> | |
253 | <xsl:with-param name="name" | |
254 | select="concat(substring-before($name, '>'), '_gt_', substring-after($name, '>'))"/> | |
255 | </xsl:call-template> | |
256 | </xsl:when> | |
257 | <xsl:when test="contains($name, '[')"> | |
258 | <xsl:call-template name="make-id"> | |
259 | <xsl:with-param name="name" | |
260 | select="concat(substring-before($name, '['), '_lb_', substring-after($name, '['))"/> | |
261 | </xsl:call-template> | |
262 | </xsl:when> | |
263 | <xsl:when test="contains($name, ']')"> | |
264 | <xsl:call-template name="make-id"> | |
265 | <xsl:with-param name="name" | |
266 | select="concat(substring-before($name, ']'), '_rb_', substring-after($name, ']'))"/> | |
267 | </xsl:call-template> | |
268 | </xsl:when> | |
269 | <xsl:when test="contains($name, '(')"> | |
270 | <xsl:call-template name="make-id"> | |
271 | <xsl:with-param name="name" | |
272 | select="concat(substring-before($name, '('), '_lp_', substring-after($name, '('))"/> | |
273 | </xsl:call-template> | |
274 | </xsl:when> | |
275 | <xsl:when test="contains($name, ')')"> | |
276 | <xsl:call-template name="make-id"> | |
277 | <xsl:with-param name="name" | |
278 | select="concat(substring-before($name, ')'), '_rp_', substring-after($name, ')'))"/> | |
279 | </xsl:call-template> | |
280 | </xsl:when> | |
281 | <xsl:when test="contains($name, '+')"> | |
282 | <xsl:call-template name="make-id"> | |
283 | <xsl:with-param name="name" | |
284 | select="concat(substring-before($name, '+'), '_plus_', substring-after($name, '+'))"/> | |
285 | </xsl:call-template> | |
286 | </xsl:when> | |
287 | <xsl:when test="contains($name, '-')"> | |
288 | <xsl:call-template name="make-id"> | |
289 | <xsl:with-param name="name" | |
290 | select="concat(substring-before($name, '-'), '_minus_', substring-after($name, '-'))"/> | |
291 | </xsl:call-template> | |
292 | </xsl:when> | |
293 | <xsl:when test="contains($name, '*')"> | |
294 | <xsl:call-template name="make-id"> | |
295 | <xsl:with-param name="name" | |
296 | select="concat(substring-before($name, '*'), '_star_', substring-after($name, '*'))"/> | |
297 | </xsl:call-template> | |
298 | </xsl:when> | |
299 | <xsl:when test="contains($name, '~')"> | |
300 | <xsl:call-template name="make-id"> | |
301 | <xsl:with-param name="name" | |
302 | select="concat(substring-before($name, '~'), '_', substring-after($name, '~'))"/> | |
303 | </xsl:call-template> | |
304 | </xsl:when> | |
305 | <xsl:when test="contains($name, ' ')"> | |
306 | <xsl:call-template name="make-id"> | |
307 | <xsl:with-param name="name" | |
308 | select="concat(substring-before($name, ' '), '_', substring-after($name, ' '))"/> | |
309 | </xsl:call-template> | |
310 | </xsl:when> | |
311 | <xsl:when test="contains($name, 'boost__posix_time__ptime')"> | |
312 | <xsl:call-template name="make-id"> | |
313 | <xsl:with-param name="name" | |
314 | select="concat(substring-before($name, 'boost__posix_time__ptime'), 'ptime', substring-after($name, 'boost__posix_time__ptime'))"/> | |
315 | </xsl:call-template> | |
316 | </xsl:when> | |
317 | <xsl:otherwise> | |
318 | <xsl:value-of select="$name"/> | |
319 | </xsl:otherwise> | |
320 | </xsl:choose> | |
321 | </xsl:template> | |
322 | ||
323 | ||
324 | <!--========== Markup ==========--> | |
325 | ||
326 | <xsl:template match="para" mode="markup"> | |
327 | <xsl:text> | |
328 | </xsl:text><xsl:apply-templates mode="markup"/><xsl:text> | |
329 | </xsl:text> | |
330 | </xsl:template> | |
331 | ||
332 | ||
333 | <xsl:template match="para" mode="markup-nested"> | |
334 | <xsl:apply-templates mode="markup-nested"/> | |
335 | </xsl:template> | |
336 | ||
337 | ||
338 | <xsl:template match="title" mode="markup"> | |
339 | <xsl:variable name="title"> | |
340 | <xsl:value-of select="."/> | |
341 | </xsl:variable> | |
342 | <xsl:if test="string-length($title) > 0"> | |
343 | [heading <xsl:value-of select="."/>] | |
344 | </xsl:if> | |
345 | </xsl:template> | |
346 | ||
347 | ||
348 | <xsl:template match="programlisting" mode="markup"> | |
349 | <xsl:value-of select="$newline"/> | |
350 | <xsl:value-of select="$newline"/> | |
351 | <xsl:apply-templates mode="codeline"/> | |
352 | <xsl:value-of select="$newline"/> | |
353 | <xsl:value-of select="$newline"/> | |
354 | </xsl:template> | |
355 | ||
356 | ||
357 | <xsl:template match="programlisting" mode="markup-nested"> | |
358 | <xsl:value-of select="$newline"/> | |
359 | <xsl:text>``</xsl:text> | |
360 | <xsl:value-of select="$newline"/> | |
361 | <xsl:apply-templates mode="codeline"/> | |
362 | <xsl:if test="substring(., string-length(.)) = $newline"> | |
363 | <xsl:value-of select="$newline"/> | |
364 | </xsl:if> | |
365 | <xsl:text>``</xsl:text> | |
366 | <xsl:value-of select="$newline"/> | |
367 | </xsl:template> | |
368 | ||
369 | ||
370 | <xsl:template match="codeline" mode="codeline"> | |
371 | <xsl:if test="string-length(.) > 0"> | |
372 | <xsl:text> </xsl:text> | |
373 | </xsl:if> | |
374 | <xsl:apply-templates mode="codeline"/> | |
375 | <xsl:value-of select="$newline"/> | |
376 | </xsl:template> | |
377 | ||
378 | ||
379 | <xsl:template match="sp" mode="markup"> | |
380 | <xsl:text> </xsl:text> | |
381 | </xsl:template> | |
382 | ||
383 | ||
384 | <xsl:template match="sp" mode="markup-nested"> | |
385 | <xsl:text> </xsl:text> | |
386 | </xsl:template> | |
387 | ||
388 | ||
389 | <xsl:template match="sp" mode="codeline"> | |
390 | <xsl:text> </xsl:text> | |
391 | </xsl:template> | |
392 | ||
393 | ||
394 | <xsl:template match="linebreak" mode="markup"> | |
395 | <xsl:text> | |
396 | ||
397 | </xsl:text> | |
398 | </xsl:template> | |
399 | ||
400 | ||
401 | <xsl:template match="linebreak" mode="markup-nested"> | |
402 | <xsl:text> | |
403 | ||
404 | </xsl:text> | |
405 | </xsl:template> | |
406 | ||
407 | ||
408 | <xsl:template match="computeroutput" mode="markup"> | |
409 | <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text> | |
410 | </xsl:template> | |
411 | ||
412 | ||
413 | <xsl:template match="computeroutput" mode="markup-nested"> | |
414 | <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text> | |
415 | </xsl:template> | |
416 | ||
417 | ||
418 | <xsl:template match="listitem" mode="markup"> | |
419 | * <xsl:call-template name="strip-leading-whitespace"> | |
420 | <xsl:with-param name="text"> | |
421 | <xsl:apply-templates mode="markup"/> | |
422 | </xsl:with-param> | |
423 | </xsl:call-template> | |
424 | </xsl:template> | |
425 | ||
426 | ||
427 | <xsl:template match="bold" mode="markup">[*<xsl:apply-templates mode="markup"/>]</xsl:template> | |
428 | ||
429 | ||
430 | <xsl:template match="emphasis" mode="markup">['<xsl:apply-templates mode="markup"/>]</xsl:template> | |
431 | ||
432 | ||
433 | <xsl:template match="parameterlist" mode="markup"> | |
434 | <xsl:choose> | |
435 | <xsl:when test="@kind='param'"> | |
436 | [heading Parameters] | |
437 | </xsl:when> | |
438 | <xsl:when test="@kind='exception'"> | |
439 | [heading Exceptions] | |
440 | </xsl:when> | |
441 | </xsl:choose> | |
442 | ||
443 | [variablelist | |
444 | <xsl:apply-templates mode="markup"/> | |
445 | ] | |
446 | </xsl:template> | |
447 | ||
448 | ||
449 | <xsl:template match="parameteritem" mode="markup"> | |
450 | [[<xsl:value-of select="parameternamelist"/>][<xsl:apply-templates select="parameterdescription" mode="markup-nested"/>]] | |
451 | </xsl:template> | |
452 | ||
453 | ||
454 | <xsl:template match="simplesect" mode="markup"> | |
455 | <xsl:choose> | |
456 | <xsl:when test="@kind='return'"> | |
457 | [heading Return Value] | |
458 | <xsl:apply-templates mode="markup"/> | |
459 | </xsl:when> | |
460 | <xsl:when test="@kind='see'"> | |
461 | </xsl:when> | |
462 | <xsl:when test="@kind='note'"> | |
463 | [heading Remarks] | |
464 | <xsl:apply-templates mode="markup"/> | |
465 | </xsl:when> | |
466 | <xsl:when test="@kind='par'"> | |
467 | <xsl:if test="not(starts-with(title, 'Concepts:'))"> | |
468 | <xsl:apply-templates mode="markup"/> | |
469 | </xsl:if> | |
470 | </xsl:when> | |
471 | <xsl:otherwise> | |
472 | <xsl:apply-templates mode="markup"/> | |
473 | </xsl:otherwise> | |
474 | </xsl:choose> | |
475 | </xsl:template> | |
476 | ||
477 | ||
478 | <xsl:template match="text()" mode="markup"> | |
479 | <xsl:variable name="text" select="."/> | |
480 | <xsl:variable name="starts-with-whitespace" select=" | |
481 | starts-with($text, ' ') or starts-with($text, $newline)"/> | |
482 | <xsl:variable name="preceding-node-name"> | |
483 | <xsl:for-each select="preceding-sibling::*"> | |
484 | <xsl:if test="position() = last()"> | |
485 | <xsl:value-of select="local-name()"/> | |
486 | </xsl:if> | |
487 | </xsl:for-each> | |
488 | </xsl:variable> | |
489 | <xsl:variable name="after-newline" select=" | |
490 | $preceding-node-name = 'programlisting' or | |
491 | $preceding-node-name = 'linebreak'"/> | |
492 | <xsl:choose> | |
493 | <xsl:when test="$starts-with-whitespace and $after-newline"> | |
494 | <xsl:call-template name="escape-text"> | |
495 | <xsl:with-param name="text"> | |
496 | <xsl:call-template name="strip-leading-whitespace"> | |
497 | <xsl:with-param name="text" select="$text"/> | |
498 | </xsl:call-template> | |
499 | </xsl:with-param> | |
500 | </xsl:call-template> | |
501 | </xsl:when> | |
502 | <xsl:otherwise> | |
503 | <xsl:call-template name="escape-text"> | |
504 | <xsl:with-param name="text" select="$text"/> | |
505 | </xsl:call-template> | |
506 | </xsl:otherwise> | |
507 | </xsl:choose> | |
508 | </xsl:template> | |
509 | ||
510 | ||
511 | <xsl:template match="text()" mode="markup-nested"> | |
512 | <xsl:variable name="text" select="."/> | |
513 | <xsl:variable name="starts-with-whitespace" select=" | |
514 | starts-with($text, ' ') or starts-with($text, $newline)"/> | |
515 | <xsl:variable name="preceding-node-name"> | |
516 | <xsl:for-each select="preceding-sibling::*"> | |
517 | <xsl:if test="position() = last()"> | |
518 | <xsl:value-of select="local-name()"/> | |
519 | </xsl:if> | |
520 | </xsl:for-each> | |
521 | </xsl:variable> | |
522 | <xsl:variable name="after-newline" select=" | |
523 | $preceding-node-name = 'programlisting' or | |
524 | $preceding-node-name = 'linebreak'"/> | |
525 | <xsl:choose> | |
526 | <xsl:when test="$starts-with-whitespace and $after-newline"> | |
527 | <xsl:call-template name="escape-text"> | |
528 | <xsl:with-param name="text"> | |
529 | <xsl:call-template name="strip-leading-whitespace"> | |
530 | <xsl:with-param name="text" select="$text"/> | |
531 | </xsl:call-template> | |
532 | </xsl:with-param> | |
533 | </xsl:call-template> | |
534 | </xsl:when> | |
535 | <xsl:otherwise> | |
536 | <xsl:call-template name="escape-text"> | |
537 | <xsl:with-param name="text" select="$text"/> | |
538 | </xsl:call-template> | |
539 | </xsl:otherwise> | |
540 | </xsl:choose> | |
541 | </xsl:template> | |
542 | ||
543 | ||
544 | <xsl:template name="strip-leading-whitespace"> | |
545 | <xsl:param name="text"/> | |
546 | <xsl:choose> | |
547 | <xsl:when test="starts-with($text, ' ')"> | |
548 | <xsl:call-template name="strip-leading-whitespace"> | |
549 | <xsl:with-param name="text" select="substring($text, 2)"/> | |
550 | </xsl:call-template> | |
551 | </xsl:when> | |
552 | <xsl:when test="starts-with($text, $newline)"> | |
553 | <xsl:call-template name="strip-leading-whitespace"> | |
554 | <xsl:with-param name="text" select="substring($text, 2)"/> | |
555 | </xsl:call-template> | |
556 | </xsl:when> | |
557 | <xsl:otherwise> | |
558 | <xsl:value-of select="$text"/> | |
559 | </xsl:otherwise> | |
560 | </xsl:choose> | |
561 | </xsl:template> | |
562 | ||
563 | ||
564 | <xsl:template name="escape-text"> | |
565 | <xsl:param name="text"/> | |
566 | <xsl:choose> | |
567 | <xsl:when test="contains($text, '_')"> | |
568 | <xsl:value-of select="substring-before($text, '_')"/> | |
569 | <xsl:text>\_</xsl:text> | |
570 | <xsl:call-template name="escape-text"> | |
571 | <xsl:with-param name="text" select="substring-after($text, '_')"/> | |
572 | </xsl:call-template> | |
573 | </xsl:when> | |
574 | <xsl:otherwise> | |
575 | <xsl:value-of select="$text"/> | |
576 | </xsl:otherwise> | |
577 | </xsl:choose> | |
578 | </xsl:template> | |
579 | ||
580 | ||
581 | <xsl:template name="escape-name"> | |
582 | <xsl:param name="text"/> | |
583 | <xsl:choose> | |
584 | <xsl:when test="contains($text, '[')"> | |
585 | <xsl:value-of select="substring-before($text, '[')"/> | |
586 | <xsl:text>\[</xsl:text> | |
587 | <xsl:call-template name="escape-name"> | |
588 | <xsl:with-param name="text" select="substring-after($text, '[')"/> | |
589 | </xsl:call-template> | |
590 | </xsl:when> | |
591 | <xsl:when test="contains($text, ']')"> | |
592 | <xsl:value-of select="substring-before($text, ']')"/> | |
593 | <xsl:text>\]</xsl:text> | |
594 | <xsl:call-template name="escape-name"> | |
595 | <xsl:with-param name="text" select="substring-after($text, ']')"/> | |
596 | </xsl:call-template> | |
597 | </xsl:when> | |
598 | <xsl:otherwise> | |
599 | <xsl:value-of select="$text"/> | |
600 | </xsl:otherwise> | |
601 | </xsl:choose> | |
602 | </xsl:template> | |
603 | ||
604 | ||
605 | <xsl:template match="ref[@kindref='compound']" mode="markup"> | |
606 | <xsl:variable name="name"> | |
607 | <xsl:value-of select="."/> | |
608 | </xsl:variable> | |
609 | <xsl:choose> | |
610 | <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')"> | |
611 | <xsl:variable name="dox-ref-id" select="@refid"/> | |
612 | <xsl:variable name="ref-name"> | |
613 | <xsl:call-template name="strip-asio-ns"> | |
614 | <xsl:with-param name="name" | |
615 | select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/> | |
616 | </xsl:call-template> | |
617 | </xsl:variable> | |
618 | <xsl:variable name="ref-id"> | |
619 | <xsl:call-template name="make-id"> | |
620 | <xsl:with-param name="name" select="$ref-name"/> | |
621 | </xsl:call-template> | |
622 | </xsl:variable> | |
623 | <xsl:text>[link boost_asio.reference.</xsl:text> | |
624 | <xsl:value-of select="$ref-id"/> | |
625 | <xsl:text> `</xsl:text> | |
626 | <xsl:value-of name="text" select="$ref-name"/> | |
627 | <xsl:text>`]</xsl:text> | |
628 | </xsl:when> | |
629 | <xsl:otherwise> | |
630 | <xsl:text>`</xsl:text> | |
631 | <xsl:value-of select="."/> | |
632 | <xsl:text>`</xsl:text> | |
633 | </xsl:otherwise> | |
634 | </xsl:choose> | |
635 | </xsl:template> | |
636 | ||
637 | ||
638 | <xsl:template match="ref[@kindref='compound']" mode="markup-nested"> | |
639 | <xsl:variable name="name"> | |
640 | <xsl:value-of select="."/> | |
641 | </xsl:variable> | |
642 | <xsl:choose> | |
643 | <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')"> | |
644 | <xsl:variable name="dox-ref-id" select="@refid"/> | |
645 | <xsl:variable name="ref-name"> | |
646 | <xsl:call-template name="strip-asio-ns"> | |
647 | <xsl:with-param name="name" | |
648 | select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/> | |
649 | </xsl:call-template> | |
650 | </xsl:variable> | |
651 | <xsl:variable name="ref-id"> | |
652 | <xsl:call-template name="make-id"> | |
653 | <xsl:with-param name="name" select="$ref-name"/> | |
654 | </xsl:call-template> | |
655 | </xsl:variable> | |
656 | <xsl:text>[link boost_asio.reference.</xsl:text> | |
657 | <xsl:value-of select="$ref-id"/> | |
658 | <xsl:text> `</xsl:text> | |
659 | <xsl:value-of name="text" select="$ref-name"/> | |
660 | <xsl:text>`]</xsl:text> | |
661 | </xsl:when> | |
662 | <xsl:otherwise> | |
663 | <xsl:text>`</xsl:text> | |
664 | <xsl:value-of select="."/> | |
665 | <xsl:text>`</xsl:text> | |
666 | </xsl:otherwise> | |
667 | </xsl:choose> | |
668 | </xsl:template> | |
669 | ||
670 | ||
671 | <xsl:template match="ref[@kindref='member']" mode="markup"> | |
672 | <xsl:variable name="dox-ref-id" select="@refid"/> | |
673 | <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/> | |
674 | <xsl:choose> | |
675 | <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0"> | |
676 | <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/> | |
677 | <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/> | |
678 | <xsl:variable name="ref-name"> | |
679 | <xsl:call-template name="strip-asio-ns"> | |
680 | <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/> | |
681 | </xsl:call-template> | |
682 | </xsl:variable> | |
683 | <xsl:variable name="ref-id"> | |
684 | <xsl:call-template name="make-id"> | |
685 | <xsl:with-param name="name" select="$ref-name"/> | |
686 | </xsl:call-template> | |
687 | </xsl:variable> | |
688 | <xsl:text>[link boost_asio.reference.</xsl:text> | |
689 | <xsl:value-of select="$ref-id"/> | |
690 | <xsl:text> `</xsl:text> | |
691 | <xsl:value-of name="text" select="$ref-name"/> | |
692 | <xsl:text>`]</xsl:text> | |
693 | </xsl:when> | |
694 | <xsl:otherwise> | |
695 | <xsl:text>`</xsl:text> | |
696 | <xsl:value-of select="."/> | |
697 | <xsl:text>`</xsl:text> | |
698 | </xsl:otherwise> | |
699 | </xsl:choose> | |
700 | </xsl:template> | |
701 | ||
702 | ||
703 | <xsl:template match="ref[@kindref='member']" mode="markup-nested"> | |
704 | <xsl:variable name="dox-ref-id" select="@refid"/> | |
705 | <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/> | |
706 | <xsl:choose> | |
707 | <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0"> | |
708 | <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/> | |
709 | <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/> | |
710 | <xsl:variable name="ref-name"> | |
711 | <xsl:call-template name="strip-asio-ns"> | |
712 | <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/> | |
713 | </xsl:call-template> | |
714 | </xsl:variable> | |
715 | <xsl:variable name="ref-id"> | |
716 | <xsl:call-template name="make-id"> | |
717 | <xsl:with-param name="name" select="$ref-name"/> | |
718 | </xsl:call-template> | |
719 | </xsl:variable> | |
720 | <xsl:text>[link boost_asio.reference.</xsl:text> | |
721 | <xsl:value-of select="$ref-id"/> | |
722 | <xsl:text> `</xsl:text> | |
723 | <xsl:value-of name="text" select="$ref-name"/> | |
724 | <xsl:text>`]</xsl:text> | |
725 | </xsl:when> | |
726 | <xsl:otherwise> | |
727 | <xsl:text>`</xsl:text> | |
728 | <xsl:value-of select="."/> | |
729 | <xsl:text>`</xsl:text> | |
730 | </xsl:otherwise> | |
731 | </xsl:choose> | |
732 | </xsl:template> | |
733 | ||
734 | ||
735 | <xsl:template name="header-requirements"> | |
736 | <xsl:param name="file"/> | |
737 | <xsl:value-of select="$newline"/> | |
738 | <xsl:text>[heading Requirements]</xsl:text> | |
739 | <xsl:value-of select="$newline"/> | |
740 | <xsl:value-of select="$newline"/> | |
741 | <xsl:text>['Header: ]</xsl:text> | |
742 | <xsl:text>[^boost/asio/</xsl:text> | |
743 | <xsl:value-of select="substring-after($file, 'boost/asio/')"/> | |
744 | <xsl:text>]</xsl:text> | |
745 | <xsl:value-of select="$newline"/> | |
746 | <xsl:value-of select="$newline"/> | |
747 | <xsl:text>['Convenience header: ]</xsl:text> | |
748 | <xsl:choose> | |
749 | <xsl:when test="contains($file, 'boost/asio/ssl')"> | |
750 | <xsl:text>[^boost/asio/ssl.hpp]</xsl:text> | |
751 | </xsl:when> | |
752 | <xsl:when test="contains($file, 'boost/asio/high_resolution_timer')"> | |
753 | <xsl:text>None</xsl:text> | |
754 | </xsl:when> | |
755 | <xsl:when test="contains($file, 'boost/asio/spawn')"> | |
756 | <xsl:text>None</xsl:text> | |
757 | </xsl:when> | |
758 | <xsl:when test="contains($file, 'boost/asio/steady_timer')"> | |
759 | <xsl:text>None</xsl:text> | |
760 | </xsl:when> | |
761 | <xsl:when test="contains($file, 'boost/asio/system_timer')"> | |
762 | <xsl:text>None</xsl:text> | |
763 | </xsl:when> | |
764 | <xsl:when test="contains($file, 'boost/asio/use_future')"> | |
765 | <xsl:text>None</xsl:text> | |
766 | </xsl:when> | |
767 | <xsl:otherwise> | |
768 | <xsl:text>[^boost/asio.hpp]</xsl:text> | |
769 | </xsl:otherwise> | |
770 | </xsl:choose> | |
771 | <xsl:value-of select="$newline"/> | |
772 | </xsl:template> | |
773 | ||
774 | ||
775 | <!--========== Class ==========--> | |
776 | ||
777 | <xsl:template name="class"> | |
778 | <xsl:variable name="class-name"> | |
779 | <xsl:call-template name="strip-asio-ns"> | |
780 | <xsl:with-param name="name" select="compoundname"/> | |
781 | </xsl:call-template> | |
782 | </xsl:variable> | |
783 | <xsl:variable name="unqualified-class-name"> | |
784 | <xsl:call-template name="strip-ns"> | |
785 | <xsl:with-param name="name" select="compoundname"/> | |
786 | </xsl:call-template> | |
787 | </xsl:variable> | |
788 | <xsl:variable name="class-id"> | |
789 | <xsl:call-template name="make-id"> | |
790 | <xsl:with-param name="name" select="$class-name"/> | |
791 | </xsl:call-template> | |
792 | </xsl:variable> | |
793 | <xsl:variable name="class-file" select="location/@file"/> | |
794 | [section:<xsl:value-of select="$class-id"/><xsl:text> </xsl:text><xsl:value-of select="$class-name"/>] | |
795 | ||
796 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
797 | ||
798 | </xsl:text> | |
799 | ||
800 | <xsl:apply-templates select="templateparamlist" | |
801 | mode="class-detail"/><xsl:text> </xsl:text><xsl:value-of select="@kind"/><xsl:text> </xsl:text><xsl:value-of | |
802 | select="$unqualified-class-name"/><xsl:if test="count(basecompoundref[not(contains(.,'::detail'))]) > 0"> :</xsl:if><xsl:text> | |
803 | </xsl:text><xsl:for-each select="basecompoundref[not(contains(.,'::detail'))]"> | |
804 | <xsl:text> </xsl:text><xsl:if test="@prot='public'">public </xsl:if><xsl:call-template | |
805 | name="strip-asio-ns"><xsl:with-param name="name" select="."/></xsl:call-template><xsl:if | |
806 | test="not(position() = last())">,</xsl:if><xsl:text> | |
807 | </xsl:text></xsl:for-each><xsl:text> | |
808 | </xsl:text> | |
809 | ||
810 | <xsl:call-template name="class-tables"> | |
811 | <xsl:with-param name="class-name" select="$class-name"/> | |
812 | <xsl:with-param name="class-id" select="$class-id"/> | |
813 | </xsl:call-template> | |
814 | ||
815 | <xsl:apply-templates select="detaileddescription" mode="markup"/> | |
816 | ||
817 | <xsl:call-template name="header-requirements"> | |
818 | <xsl:with-param name="file" select="$class-file"/> | |
819 | </xsl:call-template> | |
820 | ||
821 | <xsl:call-template name="class-members"> | |
822 | <xsl:with-param name="class-name" select="$class-name"/> | |
823 | <xsl:with-param name="class-id" select="$class-id"/> | |
824 | <xsl:with-param name="class-file" select="$class-file"/> | |
825 | </xsl:call-template> | |
826 | ||
827 | [endsect] | |
828 | </xsl:template> | |
829 | ||
830 | ||
831 | <xsl:template name="class-tables"> | |
832 | <xsl:param name="class-name"/> | |
833 | <xsl:param name="class-id"/> | |
834 | <xsl:if test=" | |
835 | count( | |
836 | sectiondef[@kind='public-type'] | | |
837 | innerclass[@prot='public' and not(contains(., '_handler'))]) > 0"> | |
838 | [heading Types] | |
839 | [table | |
840 | [[Name][Description]] | |
841 | <xsl:for-each select=" | |
842 | sectiondef[@kind='public-type']/memberdef | | |
843 | innerclass[@prot='public' and not(contains(., '_handler'))]" mode="class-table"> | |
844 | <xsl:sort select="concat(name, (.)[not(name)])"/> | |
845 | [ | |
846 | <xsl:choose> | |
847 | <xsl:when test="count(name) > 0"> | |
848 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/> | |
849 | <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]] | |
850 | [<xsl:call-template name="escape-name"><xsl:with-param name="text" select="briefdescription"/></xsl:call-template>] | |
851 | </xsl:when> | |
852 | <xsl:otherwise> | |
853 | <xsl:variable name="type-name"> | |
854 | <xsl:call-template name="strip-asio-ns"> | |
855 | <xsl:with-param name="name" select="."/> | |
856 | </xsl:call-template> | |
857 | </xsl:variable> | |
858 | <xsl:variable name="unqualified-type-name"> | |
859 | <xsl:call-template name="strip-ns"> | |
860 | <xsl:with-param name="name" select="."/> | |
861 | </xsl:call-template> | |
862 | </xsl:variable> | |
863 | <xsl:variable name="type-id"> | |
864 | <xsl:call-template name="make-id"> | |
865 | <xsl:with-param name="name" select="$type-name"/> | |
866 | </xsl:call-template> | |
867 | </xsl:variable> | |
868 | <xsl:variable name="type-ref-id" select="@refid"/> | |
869 | [[link boost_asio.reference.<xsl:value-of select="$type-id"/> | |
870 | <xsl:text> </xsl:text>[*<xsl:value-of select="$unqualified-type-name"/>]]] | |
871 | [<xsl:value-of select="(/doxygen//compounddef[@id=$type-ref-id])[1]/briefdescription"/>] | |
872 | </xsl:otherwise> | |
873 | </xsl:choose> | |
874 | ] | |
875 | </xsl:for-each> | |
876 | ] | |
877 | </xsl:if> | |
878 | ||
879 | <xsl:if test="count(sectiondef[@kind='public-func' or @kind='public-static-func']) > 0"> | |
880 | [heading Member Functions] | |
881 | [table | |
882 | [[Name][Description]] | |
883 | <xsl:for-each select="sectiondef[@kind='public-func' or @kind='public-static-func']/memberdef" mode="class-table"> | |
884 | <xsl:sort select="name"/> | |
885 | <xsl:variable name="name"> | |
886 | <xsl:value-of select="name"/> | |
887 | </xsl:variable> | |
888 | <xsl:variable name="escaped-name"> | |
889 | <xsl:call-template name="escape-name"> | |
890 | <xsl:with-param name="text" select="$name"/> | |
891 | </xsl:call-template> | |
892 | </xsl:variable> | |
893 | <xsl:variable name="id"> | |
894 | <xsl:call-template name="make-id"> | |
895 | <xsl:with-param name="name" select="$name"/> | |
896 | </xsl:call-template> | |
897 | </xsl:variable> | |
898 | <xsl:variable name="doxygen-id"> | |
899 | <xsl:value-of select="@id"/> | |
900 | </xsl:variable> | |
901 | <xsl:variable name="overload-count"> | |
902 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
903 | </xsl:variable> | |
904 | <xsl:variable name="overload-position"> | |
905 | <xsl:for-each select="../memberdef[name = $name]"> | |
906 | <xsl:if test="@id = $doxygen-id"> | |
907 | <xsl:value-of select="position()"/> | |
908 | </xsl:if> | |
909 | </xsl:for-each> | |
910 | </xsl:variable> | |
911 | <xsl:if test="$overload-position = 1"> | |
912 | [ | |
913 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/> | |
914 | <xsl:text> </xsl:text>[*<xsl:value-of select="$escaped-name"/><xsl:text>]]] | |
915 | [</xsl:text><xsl:value-of select="briefdescription"/> | |
916 | </xsl:if> | |
917 | <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
918 | <xsl:value-of select="$newline"/> | |
919 | <xsl:value-of select="$newline"/> | |
920 | <xsl:text> </xsl:text> | |
921 | <xsl:value-of select="briefdescription"/> | |
922 | </xsl:if> | |
923 | <xsl:if test="$overload-position = $overload-count"> | |
924 | <xsl:text>] | |
925 | ] | |
926 | </xsl:text> | |
927 | </xsl:if> | |
928 | </xsl:for-each> | |
929 | ] | |
930 | </xsl:if> | |
931 | ||
932 | <xsl:if test="count(sectiondef[@kind='protected-func' or @kind='protected-static-func']) > 0"> | |
933 | [heading Protected Member Functions] | |
934 | [table | |
935 | [[Name][Description]] | |
936 | <xsl:for-each select="sectiondef[@kind='protected-func' or @kind='protected-static-func']/memberdef" mode="class-table"> | |
937 | <xsl:sort select="name"/> | |
938 | <xsl:variable name="name"> | |
939 | <xsl:value-of select="name"/> | |
940 | </xsl:variable> | |
941 | <xsl:variable name="id"> | |
942 | <xsl:call-template name="make-id"> | |
943 | <xsl:with-param name="name" select="$name"/> | |
944 | </xsl:call-template> | |
945 | </xsl:variable> | |
946 | <xsl:variable name="doxygen-id"> | |
947 | <xsl:value-of select="@id"/> | |
948 | </xsl:variable> | |
949 | <xsl:variable name="overload-count"> | |
950 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
951 | </xsl:variable> | |
952 | <xsl:variable name="overload-position"> | |
953 | <xsl:for-each select="../memberdef[name = $name]"> | |
954 | <xsl:if test="@id = $doxygen-id"> | |
955 | <xsl:value-of select="position()"/> | |
956 | </xsl:if> | |
957 | </xsl:for-each> | |
958 | </xsl:variable> | |
959 | <xsl:if test="$overload-position = 1"> | |
960 | [ | |
961 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/> | |
962 | <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]] | |
963 | [</xsl:text><xsl:value-of select="briefdescription"/> | |
964 | </xsl:if> | |
965 | <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
966 | <xsl:value-of select="$newline"/> | |
967 | <xsl:value-of select="$newline"/> | |
968 | <xsl:text> </xsl:text> | |
969 | <xsl:value-of select="briefdescription"/> | |
970 | </xsl:if> | |
971 | <xsl:if test="$overload-position = $overload-count"> | |
972 | <xsl:text>] | |
973 | ] | |
974 | </xsl:text> | |
975 | </xsl:if> | |
976 | </xsl:for-each> | |
977 | ] | |
978 | </xsl:if> | |
979 | ||
980 | <xsl:if test="$class-name = 'io_service::service'"> | |
981 | <xsl:if test="count(sectiondef[@kind='private-func']) > 0"> | |
982 | [heading Private Member Functions] | |
983 | [table | |
984 | [[Name][Description]] | |
985 | <xsl:for-each select="sectiondef[@kind='private-func']/memberdef" mode="class-table"> | |
986 | <xsl:sort select="name"/> | |
987 | <xsl:variable name="name"> | |
988 | <xsl:value-of select="name"/> | |
989 | </xsl:variable> | |
990 | <xsl:variable name="id"> | |
991 | <xsl:call-template name="make-id"> | |
992 | <xsl:with-param name="name" select="$name"/> | |
993 | </xsl:call-template> | |
994 | </xsl:variable> | |
995 | <xsl:variable name="doxygen-id"> | |
996 | <xsl:value-of select="@id"/> | |
997 | </xsl:variable> | |
998 | <xsl:variable name="overload-count"> | |
999 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
1000 | </xsl:variable> | |
1001 | <xsl:variable name="overload-position"> | |
1002 | <xsl:for-each select="../memberdef[name = $name]"> | |
1003 | <xsl:if test="@id = $doxygen-id"> | |
1004 | <xsl:value-of select="position()"/> | |
1005 | </xsl:if> | |
1006 | </xsl:for-each> | |
1007 | </xsl:variable> | |
1008 | <xsl:if test="$overload-position = 1"> | |
1009 | [ | |
1010 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/> | |
1011 | <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]] | |
1012 | [</xsl:text><xsl:value-of select="briefdescription"/> | |
1013 | </xsl:if> | |
1014 | <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
1015 | <xsl:value-of select="$newline"/> | |
1016 | <xsl:value-of select="$newline"/> | |
1017 | <xsl:text> </xsl:text> | |
1018 | <xsl:value-of select="briefdescription"/> | |
1019 | </xsl:if> | |
1020 | <xsl:if test="$overload-position = $overload-count"> | |
1021 | <xsl:text>] | |
1022 | ] | |
1023 | </xsl:text> | |
1024 | </xsl:if> | |
1025 | </xsl:for-each> | |
1026 | ] | |
1027 | </xsl:if> | |
1028 | </xsl:if> | |
1029 | ||
1030 | <xsl:if test="count(sectiondef[@kind='public-attrib' or @kind='public-static-attrib']) > 0"> | |
1031 | [heading Data Members] | |
1032 | [table | |
1033 | [[Name][Description]] | |
1034 | <xsl:for-each select="sectiondef[@kind='public-attrib' or @kind='public-static-attrib']/memberdef" mode="class-table"> | |
1035 | <xsl:sort select="name"/> | |
1036 | [ | |
1037 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/> | |
1038 | <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]] | |
1039 | [<xsl:value-of select="briefdescription"/>] | |
1040 | ] | |
1041 | </xsl:for-each> | |
1042 | ] | |
1043 | </xsl:if> | |
1044 | ||
1045 | <xsl:if test="count(sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']) > 0"> | |
1046 | [heading Protected Data Members] | |
1047 | [table | |
1048 | [[Name][Description]] | |
1049 | <xsl:for-each select="sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']/memberdef" mode="class-table"> | |
1050 | <xsl:sort select="name"/> | |
1051 | [ | |
1052 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/> | |
1053 | <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]] | |
1054 | [<xsl:value-of select="briefdescription"/>] | |
1055 | ] | |
1056 | </xsl:for-each> | |
1057 | ] | |
1058 | </xsl:if> | |
1059 | ||
1060 | <xsl:if test="count(sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]) > 0"> | |
1061 | [heading Friends] | |
1062 | [table | |
1063 | [[Name][Description]] | |
1064 | <xsl:for-each select="sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-table"> | |
1065 | <xsl:sort select="name"/> | |
1066 | <xsl:variable name="name"> | |
1067 | <xsl:value-of select="name"/> | |
1068 | </xsl:variable> | |
1069 | <xsl:variable name="id"> | |
1070 | <xsl:call-template name="make-id"> | |
1071 | <xsl:with-param name="name" select="$name"/> | |
1072 | </xsl:call-template> | |
1073 | </xsl:variable> | |
1074 | <xsl:variable name="doxygen-id"> | |
1075 | <xsl:value-of select="@id"/> | |
1076 | </xsl:variable> | |
1077 | <xsl:variable name="overload-count"> | |
1078 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
1079 | </xsl:variable> | |
1080 | <xsl:variable name="overload-position"> | |
1081 | <xsl:for-each select="../memberdef[name = $name]"> | |
1082 | <xsl:if test="@id = $doxygen-id"> | |
1083 | <xsl:value-of select="position()"/> | |
1084 | </xsl:if> | |
1085 | </xsl:for-each> | |
1086 | </xsl:variable> | |
1087 | <xsl:if test="$overload-position = 1"> | |
1088 | [ | |
1089 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/> | |
1090 | <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]] | |
1091 | [</xsl:text><xsl:value-of select="briefdescription"/> | |
1092 | </xsl:if> | |
1093 | <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
1094 | <xsl:value-of select="$newline"/> | |
1095 | <xsl:value-of select="$newline"/> | |
1096 | <xsl:text> </xsl:text> | |
1097 | <xsl:value-of select="briefdescription"/> | |
1098 | </xsl:if> | |
1099 | <xsl:if test="$overload-position = $overload-count"> | |
1100 | <xsl:text>] | |
1101 | ] | |
1102 | </xsl:text> | |
1103 | </xsl:if> | |
1104 | </xsl:for-each> | |
1105 | ] | |
1106 | </xsl:if> | |
1107 | ||
1108 | <xsl:if test="count(sectiondef[@kind='related']/memberdef) > 0"> | |
1109 | [heading Related Functions] | |
1110 | [table | |
1111 | [[Name][Description]] | |
1112 | <xsl:for-each select="sectiondef[@kind='related']/memberdef" mode="class-table"> | |
1113 | <xsl:sort select="name"/> | |
1114 | <xsl:variable name="name"> | |
1115 | <xsl:value-of select="name"/> | |
1116 | </xsl:variable> | |
1117 | <xsl:variable name="id"> | |
1118 | <xsl:call-template name="make-id"> | |
1119 | <xsl:with-param name="name" select="$name"/> | |
1120 | </xsl:call-template> | |
1121 | </xsl:variable> | |
1122 | <xsl:variable name="doxygen-id"> | |
1123 | <xsl:value-of select="@id"/> | |
1124 | </xsl:variable> | |
1125 | <xsl:variable name="overload-count"> | |
1126 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
1127 | </xsl:variable> | |
1128 | <xsl:variable name="overload-position"> | |
1129 | <xsl:for-each select="../memberdef[name = $name]"> | |
1130 | <xsl:if test="@id = $doxygen-id"> | |
1131 | <xsl:value-of select="position()"/> | |
1132 | </xsl:if> | |
1133 | </xsl:for-each> | |
1134 | </xsl:variable> | |
1135 | <xsl:if test="$overload-position = 1"> | |
1136 | [ | |
1137 | [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/> | |
1138 | <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]] | |
1139 | [</xsl:text><xsl:value-of select="briefdescription"/> | |
1140 | </xsl:if> | |
1141 | <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
1142 | <xsl:value-of select="$newline"/> | |
1143 | <xsl:value-of select="$newline"/> | |
1144 | <xsl:text> </xsl:text> | |
1145 | <xsl:value-of select="briefdescription"/> | |
1146 | </xsl:if> | |
1147 | <xsl:if test="$overload-position = $overload-count"> | |
1148 | <xsl:text>] | |
1149 | ] | |
1150 | </xsl:text> | |
1151 | </xsl:if> | |
1152 | </xsl:for-each> | |
1153 | ] | |
1154 | </xsl:if> | |
1155 | ||
1156 | </xsl:template> | |
1157 | ||
1158 | ||
1159 | <xsl:template name="class-members"> | |
1160 | <xsl:param name="class-name"/> | |
1161 | <xsl:param name="class-id"/> | |
1162 | <xsl:param name="class-file"/> | |
1163 | <xsl:apply-templates select="sectiondef[@kind='public-type' or @kind='public-func' or @kind='public-static-func' or @kind='public-attrib' or @kind='public-static-attrib' or @kind='protected-func' or @kind='protected-static-func' or @kind='protected-attrib' or @kind='protected-static-attrib' or @kind='friend' or @kind='related']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-detail"> | |
1164 | <xsl:sort select="name"/> | |
1165 | <xsl:with-param name="class-name" select="$class-name"/> | |
1166 | <xsl:with-param name="class-id" select="$class-id"/> | |
1167 | <xsl:with-param name="class-file" select="$class-file"/> | |
1168 | </xsl:apply-templates> | |
1169 | <xsl:if test="$class-name = 'io_service::service'"> | |
1170 | <xsl:apply-templates select="sectiondef[@kind='private-func']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-detail"> | |
1171 | <xsl:sort select="name"/> | |
1172 | <xsl:with-param name="class-name" select="$class-name"/> | |
1173 | <xsl:with-param name="class-id" select="$class-id"/> | |
1174 | <xsl:with-param name="class-file" select="$class-file"/> | |
1175 | </xsl:apply-templates> | |
1176 | </xsl:if> | |
1177 | </xsl:template> | |
1178 | ||
1179 | ||
1180 | <!-- Class detail --> | |
1181 | ||
1182 | <xsl:template match="memberdef" mode="class-detail"> | |
1183 | <xsl:param name="class-name"/> | |
1184 | <xsl:param name="class-id"/> | |
1185 | <xsl:param name="class-file"/> | |
1186 | <xsl:variable name="name"> | |
1187 | <xsl:value-of select="name"/> | |
1188 | </xsl:variable> | |
1189 | <xsl:variable name="escaped-name"> | |
1190 | <xsl:call-template name="escape-name"> | |
1191 | <xsl:with-param name="text" select="$name"/> | |
1192 | </xsl:call-template> | |
1193 | </xsl:variable> | |
1194 | <xsl:variable name="id"> | |
1195 | <xsl:call-template name="make-id"> | |
1196 | <xsl:with-param name="name" select="$name"/> | |
1197 | </xsl:call-template> | |
1198 | </xsl:variable> | |
1199 | <xsl:variable name="doxygen-id"> | |
1200 | <xsl:value-of select="@id"/> | |
1201 | </xsl:variable> | |
1202 | <xsl:variable name="overload-count"> | |
1203 | <xsl:value-of select="count(../memberdef[name = $name])"/> | |
1204 | </xsl:variable> | |
1205 | <xsl:variable name="overload-position"> | |
1206 | <xsl:for-each select="../memberdef[name = $name]"> | |
1207 | <xsl:if test="@id = $doxygen-id"> | |
1208 | <xsl:value-of select="position()"/> | |
1209 | </xsl:if> | |
1210 | </xsl:for-each> | |
1211 | </xsl:variable> | |
1212 | ||
1213 | <xsl:if test="$overload-count > 1 and $overload-position = 1"> | |
1214 | [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text> | |
1215 | <xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>] | |
1216 | ||
1217 | <xsl:text>[indexterm2 </xsl:text> | |
1218 | <xsl:value-of select="$escaped-name"/> | |
1219 | <xsl:text>..</xsl:text> | |
1220 | <xsl:value-of select="$class-name"/> | |
1221 | <xsl:text>] </xsl:text> | |
1222 | ||
1223 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
1224 | </xsl:text> | |
1225 | ||
1226 | <xsl:for-each select="../memberdef[name = $name]"> | |
1227 | <xsl:if test="position() > 1 and not(briefdescription = preceding-sibling::*/briefdescription)"> | |
1228 | <xsl:value-of select="$newline"/> | |
1229 | <xsl:apply-templates select="briefdescription" mode="markup"/> | |
1230 | <xsl:value-of select="$newline"/> | |
1231 | </xsl:if> | |
1232 | <xsl:text> | |
1233 | </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/> | |
1234 | <xsl:text> </xsl:text> | |
1235 | <xsl:if test="@explicit='yes'">explicit </xsl:if> | |
1236 | <xsl:if test="@static='yes'">static </xsl:if> | |
1237 | <xsl:if test="@virt='virtual'">virtual </xsl:if> | |
1238 | <xsl:variable name="stripped-type"> | |
1239 | <xsl:call-template name="cleanup-type"> | |
1240 | <xsl:with-param name="name" select="type"/> | |
1241 | </xsl:call-template> | |
1242 | </xsl:variable> | |
1243 | <xsl:if test="string-length($stripped-type) > 0"> | |
1244 | <xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text> | |
1245 | </xsl:if>``[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of | |
1246 | select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text><xsl:value-of | |
1247 | select="name"/>]``(<xsl:apply-templates select="param" | |
1248 | mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>; | |
1249 | <xsl:text> `` [''''&raquo;'''</xsl:text> | |
1250 | <xsl:text> [link boost_asio.reference.</xsl:text> | |
1251 | <xsl:value-of select="$class-id"/>.<xsl:value-of | |
1252 | select="$id"/>.overload<xsl:value-of select="position()"/> | |
1253 | <xsl:text> more...]]`` | |
1254 | </xsl:text> | |
1255 | </xsl:for-each> | |
1256 | </xsl:if> | |
1257 | ||
1258 | [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if> | |
1259 | <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/></xsl:if> | |
1260 | <xsl:text> </xsl:text><xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/> | |
1261 | <xsl:if test="$overload-count > 1"> (<xsl:value-of | |
1262 | select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>] | |
1263 | ||
1264 | <xsl:if test="not(starts-with($doxygen-id, ../../@id))"> | |
1265 | <xsl:variable name="inherited-from" select="/doxygen/compounddef[starts-with($doxygen-id, @id)]/compoundname"/> | |
1266 | <xsl:if test="not(contains($inherited-from, '::detail'))"> | |
1267 | ['Inherited from <xsl:call-template name="strip-asio-ns"> | |
1268 | <xsl:with-param name="name" select="$inherited-from"/> | |
1269 | </xsl:call-template>.]<xsl:text> | |
1270 | ||
1271 | </xsl:text></xsl:if></xsl:if> | |
1272 | ||
1273 | <xsl:if test="$overload-count = 1"> | |
1274 | <xsl:text>[indexterm2 </xsl:text> | |
1275 | <xsl:value-of select="$escaped-name"/> | |
1276 | <xsl:text>..</xsl:text> | |
1277 | <xsl:value-of select="$class-name"/> | |
1278 | <xsl:text>] </xsl:text> | |
1279 | </xsl:if> | |
1280 | ||
1281 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
1282 | </xsl:text> | |
1283 | ||
1284 | <xsl:choose> | |
1285 | <xsl:when test="@kind='typedef'"> | |
1286 | <xsl:call-template name="typedef" mode="class-detail"> | |
1287 | <xsl:with-param name="class-name" select="$class-name"/> | |
1288 | </xsl:call-template> | |
1289 | </xsl:when> | |
1290 | <xsl:when test="@kind='variable'"> | |
1291 | <xsl:call-template name="variable" mode="class-detail"/> | |
1292 | </xsl:when> | |
1293 | <xsl:when test="@kind='enum'"> | |
1294 | <xsl:call-template name="enum" mode="class-detail"> | |
1295 | <xsl:with-param name="enum-name" select="$class-name"/> | |
1296 | </xsl:call-template> | |
1297 | </xsl:when> | |
1298 | <xsl:when test="@kind='function'"> | |
1299 | <xsl:call-template name="function" mode="class-detail"/> | |
1300 | </xsl:when> | |
1301 | <xsl:when test="@kind='friend'"> | |
1302 | <xsl:call-template name="function" mode="class-detail"/> | |
1303 | </xsl:when> | |
1304 | </xsl:choose> | |
1305 | ||
1306 | <xsl:text> | |
1307 | </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/> | |
1308 | ||
1309 | <xsl:if test="@kind='typedef' or @kind='friend'"> | |
1310 | <xsl:call-template name="header-requirements"> | |
1311 | <xsl:with-param name="file" select="$class-file"/> | |
1312 | </xsl:call-template> | |
1313 | </xsl:if> | |
1314 | ||
1315 | [endsect] | |
1316 | ||
1317 | <xsl:if test="$overload-count > 1 and $overload-position = $overload-count"> | |
1318 | [endsect] | |
1319 | </xsl:if> | |
1320 | </xsl:template> | |
1321 | ||
1322 | ||
1323 | <xsl:template name="typedef"> | |
1324 | <xsl:param name="class-name"/> | |
1325 | <xsl:text> | |
1326 | </xsl:text>typedef <xsl:value-of select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;<xsl:text> | |
1327 | ||
1328 | </xsl:text> | |
1329 | <xsl:if test="count(type/ref) > 0 and not(contains(type, '*'))"> | |
1330 | <xsl:variable name="class-refid"> | |
1331 | <xsl:for-each select="type/ref[1]"> | |
1332 | <xsl:value-of select="@refid"/> | |
1333 | </xsl:for-each> | |
1334 | </xsl:variable> | |
1335 | <xsl:variable name="name" select="name"/> | |
1336 | <xsl:for-each select="/doxygen/compounddef[@id=$class-refid]"> | |
1337 | <xsl:call-template name="class-tables"> | |
1338 | <xsl:with-param name="class-name"> | |
1339 | <xsl:value-of select="concat($class-name, '::', $name)"/> | |
1340 | </xsl:with-param> | |
1341 | <xsl:with-param name="class-id"> | |
1342 | <xsl:call-template name="make-id"> | |
1343 | <xsl:with-param name="name"> | |
1344 | <xsl:call-template name="strip-asio-ns"> | |
1345 | <xsl:with-param name="name" select="compoundname"/> | |
1346 | </xsl:call-template> | |
1347 | </xsl:with-param> | |
1348 | </xsl:call-template> | |
1349 | </xsl:with-param> | |
1350 | </xsl:call-template> | |
1351 | <xsl:apply-templates select="detaileddescription" mode="markup"/> | |
1352 | </xsl:for-each> | |
1353 | </xsl:if> | |
1354 | </xsl:template> | |
1355 | ||
1356 | ||
1357 | <xsl:template name="variable"> | |
1358 | <xsl:text> | |
1359 | </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:value-of | |
1360 | select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/> | |
1361 | <xsl:if test="count(initializer) = 1"><xsl:text> =</xsl:text> | |
1362 | <xsl:value-of select="initializer"/></xsl:if>; | |
1363 | </xsl:template> | |
1364 | ||
1365 | ||
1366 | <xsl:template name="enum"> | |
1367 | <xsl:param name="enum-name"/> | |
1368 | enum <xsl:value-of select="name"/><xsl:text> | |
1369 | </xsl:text><xsl:if test="count(enumvalue) > 0"> | |
1370 | <xsl:value-of select="$newline"/> | |
1371 | <xsl:for-each select="enumvalue"> | |
1372 | <xsl:text>[indexterm2 </xsl:text> | |
1373 | <xsl:value-of select="name"/> | |
1374 | <xsl:text>..</xsl:text> | |
1375 | <xsl:value-of select="$enum-name"/> | |
1376 | <xsl:text>]</xsl:text> | |
1377 | <xsl:value-of select="$newline"/> | |
1378 | </xsl:for-each> | |
1379 | [heading Values] | |
1380 | [variablelist | |
1381 | <xsl:for-each select="enumvalue"> | |
1382 | [ | |
1383 | [<xsl:value-of select="name"/>] | |
1384 | [<xsl:value-of select="briefdescription"/>] | |
1385 | ] | |
1386 | </xsl:for-each> | |
1387 | ] | |
1388 | </xsl:if> | |
1389 | </xsl:template> | |
1390 | ||
1391 | ||
1392 | <xsl:template name="function"> | |
1393 | <xsl:text> | |
1394 | </xsl:text> | |
1395 | <xsl:variable name="doxygen-id"> | |
1396 | <xsl:value-of select="@id"/> | |
1397 | </xsl:variable> | |
1398 | <xsl:choose> | |
1399 | <xsl:when test="count(/doxygen//memberdef[@id=$doxygen-id]/templateparamlist) = 1"> | |
1400 | <xsl:apply-templates select="/doxygen//memberdef[@id=$doxygen-id]/templateparamlist" mode="class-detail"/> | |
1401 | </xsl:when> | |
1402 | <xsl:otherwise> | |
1403 | <xsl:apply-templates select="templateparamlist" mode="class-detail"/> | |
1404 | </xsl:otherwise> | |
1405 | </xsl:choose> | |
1406 | <xsl:variable name="stripped-type"> | |
1407 | <xsl:call-template name="cleanup-type"> | |
1408 | <xsl:with-param name="name" select="type"/> | |
1409 | </xsl:call-template> | |
1410 | </xsl:variable> | |
1411 | <xsl:text> </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:if | |
1412 | test="@virt='virtual'">virtual </xsl:if><xsl:if | |
1413 | test="string-length($stripped-type) > 0"><xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text></xsl:if> | |
1414 | <xsl:value-of select="name"/>(<xsl:apply-templates select="param" | |
1415 | mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>; | |
1416 | </xsl:template> | |
1417 | ||
1418 | ||
1419 | <xsl:template match="templateparamlist" mode="class-detail"> | |
1420 | <xsl:text> </xsl:text>template<<xsl:apply-templates select="param" mode="class-detail-template"/>> | |
1421 | </xsl:template> | |
1422 | ||
1423 | ||
1424 | <xsl:template match="param" mode="class-detail-template"> | |
1425 | <xsl:text> | |
1426 | </xsl:text><xsl:value-of select="type"/><xsl:text> </xsl:text> | |
1427 | <xsl:choose> | |
1428 | <xsl:when test="declname = 'Allocator'"> | |
1429 | <xsl:value-of select="declname"/> | |
1430 | </xsl:when> | |
1431 | <xsl:when test="declname = 'Arg'"> | |
1432 | <xsl:value-of select="declname"/> | |
1433 | </xsl:when> | |
1434 | <xsl:when test="declname = 'BufferSequence'"> | |
1435 | <xsl:value-of select="declname"/> | |
1436 | </xsl:when> | |
1437 | <xsl:when test="declname = 'ByteType'"> | |
1438 | <xsl:value-of select="declname"/> | |
1439 | </xsl:when> | |
1440 | <xsl:when test="declname = 'Clock'"> | |
1441 | <xsl:value-of select="declname"/> | |
1442 | </xsl:when> | |
1443 | <xsl:when test="declname = 'CompletionCondition'"> | |
1444 | <xsl:value-of select="declname"/> | |
1445 | </xsl:when> | |
1446 | <xsl:when test="declname = 'ConnectCondition'"> | |
1447 | <xsl:value-of select="declname"/> | |
1448 | </xsl:when> | |
1449 | <xsl:when test="declname = 'Context_Service'"> | |
1450 | <xsl:value-of select="declname"/> | |
1451 | </xsl:when> | |
1452 | <xsl:when test="declname = 'DatagramSocketService1'"> | |
1453 | <xsl:value-of select="concat('``[link boost_asio.reference.DatagramSocketService ', declname, ']``')"/> | |
1454 | </xsl:when> | |
1455 | <xsl:when test="declname = 'EndpointIterator'"> | |
1456 | <xsl:value-of select="declname"/> | |
1457 | </xsl:when> | |
1458 | <xsl:when test="declname = 'Elem'"> | |
1459 | <xsl:value-of select="declname"/> | |
1460 | </xsl:when> | |
1461 | <xsl:when test="declname = 'ErrorEnum'"> | |
1462 | <xsl:value-of select="declname"/> | |
1463 | </xsl:when> | |
1464 | <xsl:when test="declname = 'Function'"> | |
1465 | <xsl:value-of select="declname"/> | |
1466 | </xsl:when> | |
1467 | <xsl:when test="declname = 'Iterator'"> | |
1468 | <xsl:value-of select="declname"/> | |
1469 | </xsl:when> | |
1470 | <xsl:when test="declname = 'MatchCondition'"> | |
1471 | <xsl:value-of select="declname"/> | |
1472 | </xsl:when> | |
1473 | <xsl:when test="declname = 'N'"> | |
1474 | <xsl:value-of select="declname"/> | |
1475 | </xsl:when> | |
1476 | <xsl:when test="declname = 'OtherAllocator'"> | |
1477 | <xsl:value-of select="declname"/> | |
1478 | </xsl:when> | |
1479 | <xsl:when test="declname = 'PasswordCallback'"> | |
1480 | <xsl:value-of select="declname"/> | |
1481 | </xsl:when> | |
1482 | <xsl:when test="declname = 'PodType'"> | |
1483 | <xsl:value-of select="declname"/> | |
1484 | </xsl:when> | |
1485 | <xsl:when test="declname = 'PointerToPodType'"> | |
1486 | <xsl:value-of select="declname"/> | |
1487 | </xsl:when> | |
1488 | <xsl:when test="declname = 'Protocol1'"> | |
1489 | <xsl:value-of select="concat('``[link boost_asio.reference.Protocol ', declname, ']``')"/> | |
1490 | </xsl:when> | |
1491 | <xsl:when test="declname = 'RawSocketService1'"> | |
1492 | <xsl:value-of select="concat('``[link boost_asio.reference.RawSocketService ', declname, ']``')"/> | |
1493 | </xsl:when> | |
1494 | <xsl:when test="declname = 'SeqPacketSocketService1'"> | |
1495 | <xsl:value-of select="concat('``[link boost_asio.reference.SeqPacketSocketService ', declname, ']``')"/> | |
1496 | </xsl:when> | |
1497 | <xsl:when test="declname = 'Signature'"> | |
1498 | <xsl:value-of select="declname"/> | |
1499 | </xsl:when> | |
1500 | <xsl:when test="declname = 'SocketAcceptorService1' or declname = 'SocketAcceptorService2'"> | |
1501 | <xsl:value-of select="concat('``[link boost_asio.reference.SocketAcceptorService ', declname, ']``')"/> | |
1502 | </xsl:when> | |
1503 | <xsl:when test="declname = 'SocketService1' or declname = 'SocketService2'"> | |
1504 | <xsl:value-of select="concat('``[link boost_asio.reference.SocketService ', declname, ']``')"/> | |
1505 | </xsl:when> | |
1506 | <xsl:when test="declname = 'Stream'"> | |
1507 | <xsl:value-of select="declname"/> | |
1508 | </xsl:when> | |
1509 | <xsl:when test="declname = 'StreamSocketService1'"> | |
1510 | <xsl:value-of select="concat('``[link boost_asio.reference.StreamSocketService ', declname, ']``')"/> | |
1511 | </xsl:when> | |
1512 | <xsl:when test="declname = 'T'"> | |
1513 | <xsl:value-of select="declname"/> | |
1514 | </xsl:when> | |
1515 | <xsl:when test="declname = 'T1'"> | |
1516 | <xsl:value-of select="declname"/> | |
1517 | </xsl:when> | |
1518 | <xsl:when test="declname = 'TN'"> | |
1519 | <xsl:value-of select="declname"/> | |
1520 | </xsl:when> | |
1521 | <xsl:when test="declname = 'Time'"> | |
1522 | <xsl:value-of select="declname"/> | |
1523 | </xsl:when> | |
1524 | <xsl:when test="declname = 'TimeType'"> | |
1525 | <xsl:value-of select="declname"/> | |
1526 | </xsl:when> | |
1527 | <xsl:when test="declname = 'Traits'"> | |
1528 | <xsl:value-of select="declname"/> | |
1529 | </xsl:when> | |
1530 | <xsl:when test="declname = 'VerifyCallback'"> | |
1531 | <xsl:value-of select="declname"/> | |
1532 | </xsl:when> | |
1533 | <xsl:when test="count(declname) = 0"> | |
1534 | </xsl:when> | |
1535 | <xsl:otherwise> | |
1536 | <xsl:value-of select="concat('``[link boost_asio.reference.', declname, ' ', declname, ']``')"/> | |
1537 | </xsl:otherwise> | |
1538 | </xsl:choose> | |
1539 | <xsl:if test="count(defval) > 0"> = <xsl:value-of | |
1540 | select="defval"/></xsl:if><xsl:if test="not(position() = last())">,</xsl:if> | |
1541 | </xsl:template> | |
1542 | ||
1543 | ||
1544 | <xsl:template match="param" mode="class-detail"> | |
1545 | <xsl:text> | |
1546 | </xsl:text> | |
1547 | <xsl:choose> | |
1548 | <xsl:when test="string-length(array) > 0"> | |
1549 | <xsl:value-of select="substring-before(type, '&')"/> | |
1550 | <xsl:text>(&</xsl:text> | |
1551 | <xsl:value-of select="declname"/> | |
1552 | <xsl:text>)</xsl:text> | |
1553 | <xsl:value-of select="array"/> | |
1554 | </xsl:when> | |
1555 | <xsl:otherwise> | |
1556 | <xsl:value-of select="type"/> | |
1557 | <xsl:text> </xsl:text> | |
1558 | <xsl:value-of select="declname"/> | |
1559 | </xsl:otherwise> | |
1560 | </xsl:choose> | |
1561 | <xsl:if test="count(defval) > 0"> = <xsl:value-of select="defval"/></xsl:if> | |
1562 | <xsl:if test="not(position() = last())">,</xsl:if> | |
1563 | </xsl:template> | |
1564 | ||
1565 | ||
1566 | <xsl:template match="*" mode="class-detail"/> | |
1567 | ||
1568 | ||
1569 | <!--========== Namespace ==========--> | |
1570 | ||
1571 | <xsl:template name="namespace-memberdef"> | |
1572 | <xsl:variable name="name"> | |
1573 | <xsl:call-template name="strip-asio-ns"> | |
1574 | <xsl:with-param name="name" select="concat(../../compoundname, '::', name)"/> | |
1575 | </xsl:call-template> | |
1576 | </xsl:variable> | |
1577 | <xsl:variable name="unqualified-name"> | |
1578 | <xsl:call-template name="strip-ns"> | |
1579 | <xsl:with-param name="name" select="$name"/> | |
1580 | </xsl:call-template> | |
1581 | </xsl:variable> | |
1582 | <xsl:variable name="id"> | |
1583 | <xsl:call-template name="make-id"> | |
1584 | <xsl:with-param name="name" select="$name"/> | |
1585 | </xsl:call-template> | |
1586 | </xsl:variable> | |
1587 | <xsl:variable name="doxygen-id"> | |
1588 | <xsl:value-of select="@id"/> | |
1589 | </xsl:variable> | |
1590 | <xsl:variable name="overload-count"> | |
1591 | <xsl:value-of select="count(../memberdef[name = $unqualified-name])"/> | |
1592 | </xsl:variable> | |
1593 | <xsl:variable name="overload-position"> | |
1594 | <xsl:for-each select="../memberdef[name = $unqualified-name]"> | |
1595 | <xsl:if test="@id = $doxygen-id"> | |
1596 | <xsl:value-of select="position()"/> | |
1597 | </xsl:if> | |
1598 | </xsl:for-each> | |
1599 | </xsl:variable> | |
1600 | ||
1601 | <xsl:if test="$overload-count > 1 and $overload-position = 1"> | |
1602 | [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text><xsl:value-of select="$name"/>] | |
1603 | ||
1604 | <xsl:text>[indexterm1 </xsl:text> | |
1605 | <xsl:value-of select="$name"/> | |
1606 | <xsl:text>] </xsl:text> | |
1607 | ||
1608 | <xsl:choose> | |
1609 | <xsl:when test="count(/doxygen/compounddef[@kind='group' and compoundname=$name]) > 0"> | |
1610 | <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]"> | |
1611 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
1612 | </xsl:text> | |
1613 | </xsl:for-each> | |
1614 | </xsl:when> | |
1615 | <xsl:otherwise> | |
1616 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
1617 | </xsl:text> | |
1618 | </xsl:otherwise> | |
1619 | </xsl:choose> | |
1620 | ||
1621 | <xsl:for-each select="../memberdef[name = $unqualified-name]"> | |
1622 | <xsl:variable name="stripped-type"> | |
1623 | <xsl:call-template name="cleanup-type"> | |
1624 | <xsl:with-param name="name" select="type"/> | |
1625 | </xsl:call-template> | |
1626 | </xsl:variable> | |
1627 | <xsl:text> | |
1628 | </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/> | |
1629 | <xsl:text> </xsl:text><xsl:if test="string-length($stripped-type) > 0"><xsl:value-of | |
1630 | select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>``[link boost_asio.reference.<xsl:value-of | |
1631 | select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text> | |
1632 | <xsl:value-of select="name"/>]``(<xsl:apply-templates select="param" mode="class-detail"/>); | |
1633 | <xsl:text> `` [''''&raquo;'''</xsl:text> | |
1634 | <xsl:text> [link boost_asio.reference.</xsl:text> | |
1635 | <xsl:value-of select="$id"/>.overload<xsl:value-of select="position()"/> | |
1636 | <xsl:text> more...]]`` | |
1637 | </xsl:text> | |
1638 | </xsl:for-each> | |
1639 | ||
1640 | <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]"> | |
1641 | <xsl:apply-templates select="detaileddescription" mode="markup"/> | |
1642 | </xsl:for-each> | |
1643 | ||
1644 | <xsl:call-template name="header-requirements"> | |
1645 | <xsl:with-param name="file" select="location/@file"/> | |
1646 | </xsl:call-template> | |
1647 | ||
1648 | </xsl:if> | |
1649 | ||
1650 | [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if> | |
1651 | <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/> | |
1652 | </xsl:if><xsl:text> </xsl:text><xsl:value-of select="$name"/> | |
1653 | <xsl:if test="$overload-count > 1"> (<xsl:value-of | |
1654 | select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>] | |
1655 | ||
1656 | <xsl:if test="$overload-count = 1"> | |
1657 | <xsl:text>[indexterm1 </xsl:text> | |
1658 | <xsl:value-of select="$name"/> | |
1659 | <xsl:text>] </xsl:text> | |
1660 | </xsl:if> | |
1661 | ||
1662 | <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text> | |
1663 | </xsl:text> | |
1664 | ||
1665 | <xsl:choose> | |
1666 | <xsl:when test="@kind='typedef'"> | |
1667 | <xsl:call-template name="typedef"> | |
1668 | <xsl:with-param name="class-name" select="$name"/> | |
1669 | </xsl:call-template> | |
1670 | </xsl:when> | |
1671 | <xsl:when test="@kind='variable'"> | |
1672 | <xsl:call-template name="variable"/> | |
1673 | </xsl:when> | |
1674 | <xsl:when test="@kind='enum'"> | |
1675 | <xsl:call-template name="enum"> | |
1676 | <xsl:with-param name="enum-name" select="$name"/> | |
1677 | </xsl:call-template> | |
1678 | </xsl:when> | |
1679 | <xsl:when test="@kind='function'"> | |
1680 | <xsl:call-template name="function"/> | |
1681 | </xsl:when> | |
1682 | </xsl:choose> | |
1683 | ||
1684 | <xsl:text> | |
1685 | </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/> | |
1686 | ||
1687 | <xsl:if test="$overload-count = 1"> | |
1688 | <xsl:call-template name="header-requirements"> | |
1689 | <xsl:with-param name="file" select="location/@file"/> | |
1690 | </xsl:call-template> | |
1691 | </xsl:if> | |
1692 | ||
1693 | [endsect] | |
1694 | ||
1695 | <xsl:if test="$overload-count > 1 and $overload-position = $overload-count"> | |
1696 | [endsect] | |
1697 | </xsl:if> | |
1698 | </xsl:template> | |
1699 | ||
1700 | ||
1701 | </xsl:stylesheet> |