]> git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/asio/doc/reference.xsl
bump version to 12.2.2-pve1
[ceph.git] / ceph / src / boost / libs / asio / doc / reference.xsl
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, '&lt;')">
156 <xsl:choose>
157 <xsl:when test="string-length(substring-before($name, '::')) &lt; string-length(substring-before($name, '&lt;'))">
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, '-&gt;')">
240 <xsl:call-template name="make-id">
241 <xsl:with-param name="name"
242 select="concat(substring-before($name, '-&gt;'), '_arrow_', substring-after($name, '-&gt;'))"/>
243 </xsl:call-template>
244 </xsl:when>
245 <xsl:when test="contains($name, '&lt;')">
246 <xsl:call-template name="make-id">
247 <xsl:with-param name="name"
248 select="concat(substring-before($name, '&lt;'), '_lt_', substring-after($name, '&lt;'))"/>
249 </xsl:call-template>
250 </xsl:when>
251 <xsl:when test="contains($name, '&gt;')">
252 <xsl:call-template name="make-id">
253 <xsl:with-param name="name"
254 select="concat(substring-before($name, '&gt;'), '_gt_', substring-after($name, '&gt;'))"/>
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(.) &gt; 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) &gt; 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) &gt; 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'))]) &gt; 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) &gt; 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'))]) &gt; 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) &gt; 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 &gt; 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() &gt; 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) &gt; 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> `` [''''&amp;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 &gt; 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 &gt; 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 &gt; 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) &gt; 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) &gt; 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) &gt; 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&lt;<xsl:apply-templates select="param" mode="class-detail-template"/>&gt;
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) &gt; 0">
1549 <xsl:value-of select="substring-before(type, '&amp;')"/>
1550 <xsl:text>(&amp;</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 &gt; 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]) &gt; 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) &gt; 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> `` [''''&amp;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 &gt; 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 &gt; 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 &gt; 1 and $overload-position = $overload-count">
1696 [endsect]
1697 </xsl:if>
1698 </xsl:template>
1699
1700
1701 </xsl:stylesheet>