1 <?xml version="1.0" encoding="utf-8"?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
5 Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
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)
11 <xsl:output method="text"/>
12 <xsl:strip-space elements="*"/>
13 <xsl:preserve-space elements="para"/>
16 <xsl:variable name="newline">
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.
27 <xsl:template match="/doxygen">
29 / Copyright (c) 2003-2019 Christopher M. Kohlhoff (chris at kohlhoff dot com)
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)
35 [section:reference Reference]
37 [xinclude quickref.xml]
39 [include requirements/asynchronous_operations.qbk]
40 [include requirements/read_write_operations.qbk]
41 [include requirements/synchronous_socket_operations.qbk]
42 [include requirements/asynchronous_socket_operations.qbk]
43 [include requirements/AcceptableProtocol.qbk]
44 [include requirements/AcceptHandler.qbk]
45 [include requirements/AsyncRandomAccessReadDevice.qbk]
46 [include requirements/AsyncRandomAccessWriteDevice.qbk]
47 [include requirements/AsyncReadStream.qbk]
48 [include requirements/AsyncWriteStream.qbk]
49 [include requirements/BufferedHandshakeHandler.qbk]
50 [include requirements/CompletionCondition.qbk]
51 [include requirements/CompletionHandler.qbk]
52 [include requirements/ConnectCondition.qbk]
53 [include requirements/ConnectHandler.qbk]
54 [include requirements/ConstBufferSequence.qbk]
55 [include requirements/DynamicBuffer.qbk]
56 [include requirements/DynamicBuffer_v1.qbk]
57 [include requirements/DynamicBuffer_v2.qbk]
58 [include requirements/Endpoint.qbk]
59 [include requirements/EndpointSequence.qbk]
60 [include requirements/ExecutionContext.qbk]
61 [include requirements/Executor.qbk]
62 [include requirements/GettableSerialPortOption.qbk]
63 [include requirements/GettableSocketOption.qbk]
64 [include requirements/Handler.qbk]
65 [include requirements/HandshakeHandler.qbk]
66 [include requirements/InternetProtocol.qbk]
67 [include requirements/IoControlCommand.qbk]
68 [include requirements/IoObjectService.qbk]
69 [include requirements/IteratorConnectHandler.qbk]
70 [include requirements/LegacyCompletionHandler.qbk]
71 [include requirements/MoveAcceptHandler.qbk]
72 [include requirements/MutableBufferSequence.qbk]
73 [include requirements/ProtoAllocator.qbk]
74 [include requirements/Protocol.qbk]
75 [include requirements/RangeConnectHandler.qbk]
76 [include requirements/ReadHandler.qbk]
77 [include requirements/ResolveHandler.qbk]
78 [include requirements/Service.qbk]
79 [include requirements/SettableSerialPortOption.qbk]
80 [include requirements/SettableSocketOption.qbk]
81 [include requirements/ShutdownHandler.qbk]
82 [include requirements/SignalHandler.qbk]
83 [include requirements/SyncRandomAccessReadDevice.qbk]
84 [include requirements/SyncRandomAccessWriteDevice.qbk]
85 [include requirements/SyncReadStream.qbk]
86 [include requirements/SyncWriteStream.qbk]
87 [include requirements/TimeTraits.qbk]
88 [include requirements/WaitHandler.qbk]
89 [include requirements/WaitTraits.qbk]
90 [include requirements/WriteHandler.qbk]
94 <xsl:for-each select="
95 compounddef[@kind = 'class' or @kind = 'struct'] |
96 compounddef[@kind = 'namespace']/sectiondef[1]/memberdef">
97 <xsl:sort select="concat((. | ancestor::*)/compoundname, '::', name, ':x')"/>
98 <xsl:sort select="name"/>
100 <xsl:when test="@kind='class' or @kind='struct'">
102 contains(compoundname, 'asio::') and
103 not(contains(compoundname, '::detail')) and
104 not(contains(compoundname, '::service::key')) and
105 not(contains(compoundname, '_handler')) and
106 not(contains(compoundname, 'std_allocator_void')) and
107 not(contains(compoundname, 'thread_function')) and
108 not(contains(compoundname, 'context_impl')) and
109 not(contains(compoundname, 'initiate_'))">
110 <xsl:call-template name="class"/>
115 not(contains(ancestor::*/compoundname, '::detail')) and
116 not(contains(ancestor::*/compoundname, '::service::key')) and
117 not(contains(ancestor::*/compoundname, '_helper')) and
118 not(contains(ancestor::*/compoundname, 'initiate_')) and
119 not(contains(name, '_helper')) and
120 not(contains(name, 'std_allocator_void')) and
121 not(contains(name, 'thread_function')) and
122 not(contains(name, 'io_context_impl')) and
123 not(contains(name, 'initiate_'))">
124 <xsl:call-template name="namespace-memberdef"/>
130 <xsl:value-of select="$newline"/>
131 <xsl:text>[endsect]</xsl:text>
136 <!--========== Utilities ==========-->
138 <xsl:template name="strip-asio-ns">
139 <xsl:param name="name"/>
141 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
142 <xsl:value-of select="$name"/>
144 <xsl:when test="contains($name, 'asio::')">
145 <xsl:value-of select="substring-after($name, 'asio::')"/>
148 <xsl:value-of select="$name"/>
154 <xsl:template name="strip-ns">
155 <xsl:param name="name"/>
157 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
158 <xsl:value-of select="$name"/>
160 <xsl:when test="contains($name, '::') and contains($name, '<')">
162 <xsl:when test="string-length(substring-before($name, '::')) < string-length(substring-before($name, '<'))">
163 <xsl:call-template name="strip-ns">
164 <xsl:with-param name="name" select="substring-after($name, '::')"/>
168 <xsl:value-of select="$name"/>
172 <xsl:when test="contains($name, '::')">
173 <xsl:call-template name="strip-ns">
174 <xsl:with-param name="name" select="substring-after($name, '::')"/>
178 <xsl:value-of select="$name"/>
184 <xsl:template name="cleanup-type">
185 <xsl:param name="name"/>
186 <xsl:variable name="type">
188 <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')">
189 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/>
191 <xsl:when test="contains($name, 'BOOST_ASIO_DECL')">
192 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/>
194 <xsl:when test="$name = 'virtual'"></xsl:when>
196 <xsl:value-of select="$name"/>
201 <xsl:when test="$type='void_or_deduced'">
202 <xsl:text>``[link boost_asio.reference.asynchronous_operations.automatic_deduction_of_initiating_function_return_type ['DEDUCED]]``</xsl:text>
205 <xsl:value-of select="$type"/>
211 <xsl:template name="make-id">
212 <xsl:param name="name"/>
214 <xsl:when test="contains($name, 'boost::system::')">
215 <xsl:call-template name="make-id">
216 <xsl:with-param name="name"
217 select="substring-after($name, 'boost::system::')"/>
220 <xsl:when test="contains($name, 'boost::asio::error::')">
221 <xsl:call-template name="make-id">
222 <xsl:with-param name="name"
223 select="concat(substring-before($name, 'boost::asio::error::'), substring-after($name, 'boost::asio::error::'))"/>
226 <xsl:when test="contains($name, '::')">
227 <xsl:call-template name="make-id">
228 <xsl:with-param name="name"
229 select="concat(substring-before($name, '::'), '__', substring-after($name, '::'))"/>
232 <xsl:when test="contains($name, '=')">
233 <xsl:call-template name="make-id">
234 <xsl:with-param name="name"
235 select="concat(substring-before($name, '='), '_eq_', substring-after($name, '='))"/>
238 <xsl:when test="contains($name, '!')">
239 <xsl:call-template name="make-id">
240 <xsl:with-param name="name"
241 select="concat(substring-before($name, '!'), '_not_', substring-after($name, '!'))"/>
244 <xsl:when test="contains($name, '->')">
245 <xsl:call-template name="make-id">
246 <xsl:with-param name="name"
247 select="concat(substring-before($name, '->'), '_arrow_', substring-after($name, '->'))"/>
250 <xsl:when test="contains($name, '<')">
251 <xsl:call-template name="make-id">
252 <xsl:with-param name="name"
253 select="concat(substring-before($name, '<'), '_lt_', substring-after($name, '<'))"/>
256 <xsl:when test="contains($name, '>')">
257 <xsl:call-template name="make-id">
258 <xsl:with-param name="name"
259 select="concat(substring-before($name, '>'), '_gt_', substring-after($name, '>'))"/>
262 <xsl:when test="contains($name, '[')">
263 <xsl:call-template name="make-id">
264 <xsl:with-param name="name"
265 select="concat(substring-before($name, '['), '_lb_', substring-after($name, '['))"/>
268 <xsl:when test="contains($name, ']')">
269 <xsl:call-template name="make-id">
270 <xsl:with-param name="name"
271 select="concat(substring-before($name, ']'), '_rb_', substring-after($name, ']'))"/>
274 <xsl:when test="contains($name, '(')">
275 <xsl:call-template name="make-id">
276 <xsl:with-param name="name"
277 select="concat(substring-before($name, '('), '_lp_', substring-after($name, '('))"/>
280 <xsl:when test="contains($name, ')')">
281 <xsl:call-template name="make-id">
282 <xsl:with-param name="name"
283 select="concat(substring-before($name, ')'), '_rp_', substring-after($name, ')'))"/>
286 <xsl:when test="contains($name, '+')">
287 <xsl:call-template name="make-id">
288 <xsl:with-param name="name"
289 select="concat(substring-before($name, '+'), '_plus_', substring-after($name, '+'))"/>
292 <xsl:when test="contains($name, '-')">
293 <xsl:call-template name="make-id">
294 <xsl:with-param name="name"
295 select="concat(substring-before($name, '-'), '_minus_', substring-after($name, '-'))"/>
298 <xsl:when test="contains($name, '*')">
299 <xsl:call-template name="make-id">
300 <xsl:with-param name="name"
301 select="concat(substring-before($name, '*'), '_star_', substring-after($name, '*'))"/>
304 <xsl:when test="contains($name, '~')">
305 <xsl:call-template name="make-id">
306 <xsl:with-param name="name"
307 select="concat(substring-before($name, '~'), '_', substring-after($name, '~'))"/>
310 <xsl:when test="contains($name, ',')">
311 <xsl:call-template name="make-id">
312 <xsl:with-param name="name"
313 select="concat(substring-before($name, ','), '_comma_', substring-after($name, ','))"/>
316 <xsl:when test="contains($name, '...')">
317 <xsl:call-template name="make-id">
318 <xsl:with-param name="name"
319 select="concat(substring-before($name, '...'), '_ellipsis_', substring-after($name, '...'))"/>
322 <xsl:when test="contains($name, ' ')">
323 <xsl:call-template name="make-id">
324 <xsl:with-param name="name"
325 select="concat(substring-before($name, ' '), '_', substring-after($name, ' '))"/>
328 <xsl:when test="contains($name, 'boost__posix_time__ptime')">
329 <xsl:call-template name="make-id">
330 <xsl:with-param name="name"
331 select="concat(substring-before($name, 'boost__posix_time__ptime'), 'ptime', substring-after($name, 'boost__posix_time__ptime'))"/>
335 <xsl:value-of select="$name"/>
341 <!--========== Markup ==========-->
343 <xsl:template match="para" mode="markup">
345 </xsl:text><xsl:apply-templates mode="markup"/><xsl:text>
350 <xsl:template match="para" mode="markup-nested">
351 <xsl:apply-templates mode="markup-nested"/>
355 <xsl:template match="title" mode="markup">
356 <xsl:variable name="title">
357 <xsl:value-of select="."/>
359 <xsl:if test="string-length($title) > 0">
360 [heading <xsl:value-of select="."/>]
365 <xsl:template match="programlisting" mode="markup">
366 <xsl:value-of select="$newline"/>
367 <xsl:value-of select="$newline"/>
368 <xsl:apply-templates mode="codeline"/>
369 <xsl:value-of select="$newline"/>
370 <xsl:value-of select="$newline"/>
374 <xsl:template match="programlisting" mode="markup-nested">
375 <xsl:value-of select="$newline"/>
376 <xsl:text>``</xsl:text>
377 <xsl:value-of select="$newline"/>
378 <xsl:apply-templates mode="codeline"/>
379 <xsl:if test="substring(., string-length(.)) = $newline">
380 <xsl:value-of select="$newline"/>
382 <xsl:text>``</xsl:text>
383 <xsl:value-of select="$newline"/>
387 <xsl:template match="codeline" mode="codeline">
388 <xsl:if test="string-length(.) > 0">
389 <xsl:text> </xsl:text>
391 <xsl:apply-templates mode="codeline"/>
392 <xsl:value-of select="$newline"/>
396 <xsl:template match="sp" mode="markup">
397 <xsl:text> </xsl:text>
401 <xsl:template match="sp" mode="markup-nested">
402 <xsl:text> </xsl:text>
406 <xsl:template match="sp" mode="codeline">
407 <xsl:text> </xsl:text>
411 <xsl:template match="linebreak" mode="markup">
418 <xsl:template match="linebreak" mode="markup-nested">
425 <xsl:template match="computeroutput" mode="markup">
426 <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
430 <xsl:template match="computeroutput" mode="markup-nested">
431 <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
435 <xsl:template match="listitem" mode="markup">
436 * <xsl:call-template name="strip-leading-whitespace">
437 <xsl:with-param name="text">
438 <xsl:apply-templates mode="markup"/>
444 <xsl:template match="bold" mode="markup">[*<xsl:apply-templates mode="markup"/>]</xsl:template>
447 <xsl:template match="emphasis" mode="markup">['<xsl:apply-templates mode="markup"/>]</xsl:template>
450 <xsl:template match="parameterlist" mode="markup">
452 <xsl:when test="@kind='param'">
455 <xsl:when test="@kind='exception'">
461 <xsl:apply-templates mode="markup"/>
466 <xsl:template match="parameteritem" mode="markup">
467 [[<xsl:value-of select="parameternamelist"/>][<xsl:apply-templates select="parameterdescription" mode="markup-nested"/>]]
471 <xsl:template match="simplesect" mode="markup">
473 <xsl:when test="@kind='return'">
474 [heading Return Value]
475 <xsl:apply-templates mode="markup"/>
477 <xsl:when test="@kind='see'">
479 <xsl:when test="@kind='note'">
481 <xsl:apply-templates mode="markup"/>
483 <xsl:when test="@kind='par'">
484 <xsl:if test="not(starts-with(title, 'Concepts:'))">
485 <xsl:apply-templates mode="markup"/>
489 <xsl:apply-templates mode="markup"/>
495 <xsl:template match="text()" mode="markup">
496 <xsl:variable name="text" select="."/>
497 <xsl:variable name="starts-with-whitespace" select="
498 starts-with($text, ' ') or starts-with($text, $newline)"/>
499 <xsl:variable name="preceding-node-name">
500 <xsl:for-each select="preceding-sibling::*">
501 <xsl:if test="position() = last()">
502 <xsl:value-of select="local-name()"/>
506 <xsl:variable name="after-newline" select="
507 $preceding-node-name = 'programlisting' or
508 $preceding-node-name = 'linebreak'"/>
510 <xsl:when test="$starts-with-whitespace and $after-newline">
511 <xsl:call-template name="escape-text">
512 <xsl:with-param name="text">
513 <xsl:call-template name="strip-leading-whitespace">
514 <xsl:with-param name="text" select="$text"/>
520 <xsl:call-template name="escape-text">
521 <xsl:with-param name="text" select="$text"/>
528 <xsl:template match="text()" mode="markup-nested">
529 <xsl:variable name="text" select="."/>
530 <xsl:variable name="starts-with-whitespace" select="
531 starts-with($text, ' ') or starts-with($text, $newline)"/>
532 <xsl:variable name="preceding-node-name">
533 <xsl:for-each select="preceding-sibling::*">
534 <xsl:if test="position() = last()">
535 <xsl:value-of select="local-name()"/>
539 <xsl:variable name="after-newline" select="
540 $preceding-node-name = 'programlisting' or
541 $preceding-node-name = 'linebreak'"/>
543 <xsl:when test="$starts-with-whitespace and $after-newline">
544 <xsl:call-template name="escape-text">
545 <xsl:with-param name="text">
546 <xsl:call-template name="strip-leading-whitespace">
547 <xsl:with-param name="text" select="$text"/>
553 <xsl:call-template name="escape-text">
554 <xsl:with-param name="text" select="$text"/>
561 <xsl:template name="strip-leading-whitespace">
562 <xsl:param name="text"/>
564 <xsl:when test="starts-with($text, ' ')">
565 <xsl:call-template name="strip-leading-whitespace">
566 <xsl:with-param name="text" select="substring($text, 2)"/>
569 <xsl:when test="starts-with($text, $newline)">
570 <xsl:call-template name="strip-leading-whitespace">
571 <xsl:with-param name="text" select="substring($text, 2)"/>
575 <xsl:value-of select="$text"/>
581 <xsl:template name="escape-text">
582 <xsl:param name="text"/>
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-text">
588 <xsl:with-param name="text" select="substring-after($text, '_')"/>
592 <xsl:value-of select="$text"/>
598 <xsl:template name="escape-name">
599 <xsl:param name="text"/>
601 <xsl:when test="contains($text, '[')">
602 <xsl:value-of select="substring-before($text, '[')"/>
603 <xsl:text>\[</xsl:text>
604 <xsl:call-template name="escape-name">
605 <xsl:with-param name="text" select="substring-after($text, '[')"/>
608 <xsl:when test="contains($text, ']')">
609 <xsl:value-of select="substring-before($text, ']')"/>
610 <xsl:text>\]</xsl:text>
611 <xsl:call-template name="escape-name">
612 <xsl:with-param name="text" select="substring-after($text, ']')"/>
615 <xsl:when test="contains($text, '...')">
616 <xsl:value-of select="substring-before($text, '...')"/>
617 <xsl:text>\.\.\.</xsl:text>
618 <xsl:call-template name="escape-name">
619 <xsl:with-param name="text" select="substring-after($text, '...')"/>
623 <xsl:value-of select="$text"/>
629 <xsl:template match="ref[@kindref='compound']" mode="markup">
630 <xsl:variable name="name">
631 <xsl:value-of select="."/>
634 <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
635 <xsl:variable name="dox-ref-id" select="@refid"/>
636 <xsl:variable name="ref-name">
637 <xsl:call-template name="strip-asio-ns">
638 <xsl:with-param name="name"
639 select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
642 <xsl:variable name="ref-id">
643 <xsl:call-template name="make-id">
644 <xsl:with-param name="name" select="$ref-name"/>
647 <xsl:text>[link boost_asio.reference.</xsl:text>
648 <xsl:value-of select="$ref-id"/>
649 <xsl:text> `</xsl:text>
650 <xsl:value-of name="text" select="$ref-name"/>
651 <xsl:text>`]</xsl:text>
654 <xsl:text>`</xsl:text>
655 <xsl:value-of select="."/>
656 <xsl:text>`</xsl:text>
662 <xsl:template match="ref[@kindref='compound']" mode="markup-nested">
663 <xsl:variable name="name">
664 <xsl:value-of select="."/>
667 <xsl:when test="contains(@refid, 'asio') or contains($name, 'asio::')">
668 <xsl:variable name="dox-ref-id" select="@refid"/>
669 <xsl:variable name="ref-name">
670 <xsl:call-template name="strip-asio-ns">
671 <xsl:with-param name="name"
672 select="(/doxygen//compounddef[@id=$dox-ref-id])[1]/compoundname"/>
675 <xsl:variable name="ref-id">
676 <xsl:call-template name="make-id">
677 <xsl:with-param name="name" select="$ref-name"/>
680 <xsl:text>[link boost_asio.reference.</xsl:text>
681 <xsl:value-of select="$ref-id"/>
682 <xsl:text> `</xsl:text>
683 <xsl:value-of name="text" select="$ref-name"/>
684 <xsl:text>`]</xsl:text>
687 <xsl:text>`</xsl:text>
688 <xsl:value-of select="."/>
689 <xsl:text>`</xsl:text>
695 <xsl:template match="ref[@kindref='member']" mode="markup">
696 <xsl:variable name="dox-ref-id" select="@refid"/>
697 <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/>
699 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0">
700 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
701 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
702 <xsl:variable name="ref-name">
703 <xsl:call-template name="strip-asio-ns">
704 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
707 <xsl:variable name="ref-id">
708 <xsl:call-template name="make-id">
709 <xsl:with-param name="name" select="$ref-name"/>
712 <xsl:text>[link boost_asio.reference.</xsl:text>
713 <xsl:value-of select="$ref-id"/>
714 <xsl:text> `</xsl:text>
715 <xsl:value-of name="text" select="$ref-name"/>
716 <xsl:text>`]</xsl:text>
719 <xsl:text>`</xsl:text>
720 <xsl:value-of select="."/>
721 <xsl:text>`</xsl:text>
727 <xsl:template match="ref[@kindref='member']" mode="markup-nested">
728 <xsl:variable name="dox-ref-id" select="@refid"/>
729 <xsl:variable name="memberdefs" select="/doxygen//compounddef/sectiondef/memberdef[@id=$dox-ref-id]"/>
731 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0">
732 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
733 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
734 <xsl:variable name="ref-name">
735 <xsl:call-template name="strip-asio-ns">
736 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
739 <xsl:variable name="ref-id">
740 <xsl:call-template name="make-id">
741 <xsl:with-param name="name" select="$ref-name"/>
744 <xsl:text>[link boost_asio.reference.</xsl:text>
745 <xsl:value-of select="$ref-id"/>
746 <xsl:text> `</xsl:text>
747 <xsl:value-of name="text" select="$ref-name"/>
748 <xsl:text>`]</xsl:text>
751 <xsl:text>`</xsl:text>
752 <xsl:value-of select="."/>
753 <xsl:text>`</xsl:text>
759 <xsl:template name="header-requirements">
760 <xsl:param name="file"/>
761 <xsl:value-of select="$newline"/>
762 <xsl:text>[heading Requirements]</xsl:text>
763 <xsl:value-of select="$newline"/>
764 <xsl:value-of select="$newline"/>
765 <xsl:text>['Header: ]</xsl:text>
766 <xsl:text>[^boost/asio/</xsl:text>
767 <xsl:value-of select="substring-after($file, 'boost/asio/')"/>
768 <xsl:text>]</xsl:text>
769 <xsl:value-of select="$newline"/>
770 <xsl:value-of select="$newline"/>
771 <xsl:text>['Convenience header: ]</xsl:text>
773 <xsl:when test="contains($file, 'boost/asio/ssl')">
774 <xsl:text>[^boost/asio/ssl.hpp]</xsl:text>
776 <xsl:when test="contains($file, 'boost/asio/spawn')">
777 <xsl:text>None</xsl:text>
780 <xsl:text>[^boost/asio.hpp]</xsl:text>
783 <xsl:value-of select="$newline"/>
787 <!--========== Class ==========-->
789 <xsl:template name="class">
790 <xsl:variable name="class-name">
791 <xsl:call-template name="strip-asio-ns">
792 <xsl:with-param name="name" select="compoundname"/>
795 <xsl:variable name="unqualified-class-name">
796 <xsl:call-template name="strip-ns">
797 <xsl:with-param name="name" select="compoundname"/>
800 <xsl:variable name="class-id">
801 <xsl:call-template name="make-id">
802 <xsl:with-param name="name" select="$class-name"/>
805 <xsl:variable name="class-file" select="location/@file"/>
806 [section:<xsl:value-of select="$class-id"/><xsl:text> </xsl:text><xsl:value-of select="$class-name"/>]
808 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
812 <xsl:apply-templates select="templateparamlist"
813 mode="class-detail"/><xsl:text> </xsl:text><xsl:value-of select="@kind"/><xsl:text> </xsl:text><xsl:value-of
814 select="$unqualified-class-name"/><xsl:if test="count(basecompoundref[not(contains(.,'::detail'))]) > 0"> :</xsl:if><xsl:text>
815 </xsl:text><xsl:for-each select="basecompoundref[not(contains(.,'::detail'))]">
816 <xsl:text> </xsl:text><xsl:if test="@prot='public'">public </xsl:if><xsl:call-template
817 name="strip-asio-ns"><xsl:with-param name="name" select="."/></xsl:call-template><xsl:if
818 test="not(position() = last())">,</xsl:if><xsl:text>
819 </xsl:text></xsl:for-each><xsl:text>
822 <xsl:call-template name="class-tables">
823 <xsl:with-param name="class-name" select="$class-name"/>
824 <xsl:with-param name="class-id" select="$class-id"/>
827 <xsl:apply-templates select="detaileddescription" mode="markup"/>
829 <xsl:call-template name="header-requirements">
830 <xsl:with-param name="file" select="$class-file"/>
833 <xsl:call-template name="class-members">
834 <xsl:with-param name="class-name" select="$class-name"/>
835 <xsl:with-param name="class-id" select="$class-id"/>
836 <xsl:with-param name="class-file" select="$class-file"/>
843 <xsl:template name="class-tables">
844 <xsl:param name="class-name"/>
845 <xsl:param name="class-id"/>
848 sectiondef[@kind='public-type'] |
849 innerclass[@prot='public' and not(contains(., '_handler'))]) > 0">
852 [[Name][Description]]
853 <xsl:for-each select="
854 sectiondef[@kind='public-type']/memberdef |
855 innerclass[@prot='public' and not(contains(., '_handler')) and not(contains(., 'thread_function')) and not(contains(., 'initiate_'))]" mode="class-table">
856 <xsl:sort select="concat(name, (.)[not(name)])"/>
859 <xsl:when test="count(name) > 0">
860 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
861 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
862 [<xsl:call-template name="escape-name"><xsl:with-param name="text" select="briefdescription"/></xsl:call-template>]
865 <xsl:variable name="type-name">
866 <xsl:call-template name="strip-asio-ns">
867 <xsl:with-param name="name" select="."/>
870 <xsl:variable name="unqualified-type-name">
871 <xsl:call-template name="strip-ns">
872 <xsl:with-param name="name" select="."/>
875 <xsl:variable name="type-id">
876 <xsl:call-template name="make-id">
877 <xsl:with-param name="name" select="$type-name"/>
880 <xsl:variable name="type-ref-id" select="@refid"/>
881 [[link boost_asio.reference.<xsl:value-of select="$type-id"/>
882 <xsl:text> </xsl:text>[*<xsl:value-of select="$unqualified-type-name"/>]]]
883 [<xsl:value-of select="(/doxygen//compounddef[@id=$type-ref-id])[1]/briefdescription"/>]
891 <xsl:if test="count(sectiondef[@kind='public-func' or @kind='public-static-func']) > 0">
892 [heading Member Functions]
894 [[Name][Description]]
895 <xsl:for-each select="sectiondef[@kind='public-func' or @kind='public-static-func']/memberdef" mode="class-table">
896 <xsl:sort select="name"/>
897 <xsl:variable name="name">
898 <xsl:value-of select="name"/>
900 <xsl:variable name="escaped-name">
901 <xsl:call-template name="escape-name">
902 <xsl:with-param name="text" select="$name"/>
905 <xsl:variable name="id">
906 <xsl:call-template name="make-id">
907 <xsl:with-param name="name" select="$name"/>
910 <xsl:variable name="doxygen-id">
911 <xsl:value-of select="@id"/>
913 <xsl:variable name="overload-count">
914 <xsl:value-of select="count(../memberdef[name = $name])"/>
916 <xsl:variable name="overload-position">
917 <xsl:for-each select="../memberdef[name = $name]">
918 <xsl:if test="@id = $doxygen-id">
919 <xsl:value-of select="position()"/>
923 <xsl:if test="$overload-position = 1">
925 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
926 <xsl:text> </xsl:text>[*<xsl:value-of select="$escaped-name"/><xsl:text>]]]
927 [</xsl:text><xsl:value-of select="briefdescription"/>
929 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
930 <xsl:value-of select="$newline"/>
931 <xsl:text> [hr]</xsl:text>
932 <xsl:value-of select="$newline"/>
933 <xsl:text> </xsl:text>
934 <xsl:value-of select="briefdescription"/>
936 <xsl:if test="$overload-position = $overload-count">
945 <xsl:if test="count(sectiondef[@kind='protected-func' or @kind='protected-static-func']) > 0">
946 [heading Protected Member Functions]
948 [[Name][Description]]
949 <xsl:for-each select="sectiondef[@kind='protected-func' or @kind='protected-static-func']/memberdef" mode="class-table">
950 <xsl:sort select="name"/>
951 <xsl:variable name="name">
952 <xsl:value-of select="name"/>
954 <xsl:variable name="id">
955 <xsl:call-template name="make-id">
956 <xsl:with-param name="name" select="$name"/>
959 <xsl:variable name="doxygen-id">
960 <xsl:value-of select="@id"/>
962 <xsl:variable name="overload-count">
963 <xsl:value-of select="count(../memberdef[name = $name])"/>
965 <xsl:variable name="overload-position">
966 <xsl:for-each select="../memberdef[name = $name]">
967 <xsl:if test="@id = $doxygen-id">
968 <xsl:value-of select="position()"/>
972 <xsl:if test="$overload-position = 1">
974 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
975 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
976 [</xsl:text><xsl:value-of select="briefdescription"/>
978 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
979 <xsl:value-of select="$newline"/>
980 <xsl:text> [hr]</xsl:text>
981 <xsl:value-of select="$newline"/>
982 <xsl:text> </xsl:text>
983 <xsl:value-of select="briefdescription"/>
985 <xsl:if test="$overload-position = $overload-count">
994 <xsl:if test="$class-name = 'execution_context::service'">
995 <xsl:if test="count(sectiondef[@kind='private-func']) > 0">
996 [heading Private Member Functions]
998 [[Name][Description]]
999 <xsl:for-each select="sectiondef[@kind='private-func']/memberdef" mode="class-table">
1000 <xsl:sort select="name"/>
1001 <xsl:variable name="name">
1002 <xsl:value-of select="name"/>
1004 <xsl:variable name="id">
1005 <xsl:call-template name="make-id">
1006 <xsl:with-param name="name" select="$name"/>
1007 </xsl:call-template>
1009 <xsl:variable name="doxygen-id">
1010 <xsl:value-of select="@id"/>
1012 <xsl:variable name="overload-count">
1013 <xsl:value-of select="count(../memberdef[name = $name])"/>
1015 <xsl:variable name="overload-position">
1016 <xsl:for-each select="../memberdef[name = $name]">
1017 <xsl:if test="@id = $doxygen-id">
1018 <xsl:value-of select="position()"/>
1022 <xsl:if test="$overload-position = 1">
1024 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1025 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1026 [</xsl:text><xsl:value-of select="briefdescription"/>
1028 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1029 <xsl:value-of select="$newline"/>
1030 <xsl:text> [hr]</xsl:text>
1031 <xsl:value-of select="$newline"/>
1032 <xsl:text> </xsl:text>
1033 <xsl:value-of select="briefdescription"/>
1035 <xsl:if test="$overload-position = $overload-count">
1045 <xsl:if test="count(sectiondef[@kind='public-attrib' or @kind='public-static-attrib']) > 0">
1046 [heading Data Members]
1048 [[Name][Description]]
1049 <xsl:for-each select="sectiondef[@kind='public-attrib' or @kind='public-static-attrib']/memberdef" mode="class-table">
1050 <xsl:sort select="name"/>
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"/>]
1060 <xsl:if test="count(sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']) > 0">
1061 [heading Protected Data Members]
1063 [[Name][Description]]
1064 <xsl:for-each select="sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']/memberdef" mode="class-table">
1065 <xsl:sort select="name"/>
1067 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
1068 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
1069 [<xsl:value-of select="briefdescription"/>]
1075 <xsl:if test="count(sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]) > 0">
1078 [[Name][Description]]
1079 <xsl:for-each select="sectiondef[@kind='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-table">
1080 <xsl:sort select="name"/>
1081 <xsl:variable name="name">
1082 <xsl:value-of select="name"/>
1084 <xsl:variable name="id">
1085 <xsl:call-template name="make-id">
1086 <xsl:with-param name="name" select="$name"/>
1087 </xsl:call-template>
1089 <xsl:variable name="doxygen-id">
1090 <xsl:value-of select="@id"/>
1092 <xsl:variable name="overload-count">
1093 <xsl:value-of select="count(../memberdef[name = $name])"/>
1095 <xsl:variable name="overload-position">
1096 <xsl:for-each select="../memberdef[name = $name]">
1097 <xsl:if test="@id = $doxygen-id">
1098 <xsl:value-of select="position()"/>
1102 <xsl:if test="$overload-position = 1">
1104 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1105 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1106 [</xsl:text><xsl:value-of select="briefdescription"/>
1108 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1109 <xsl:value-of select="$newline"/>
1110 <xsl:text> [hr]</xsl:text>
1111 <xsl:value-of select="$newline"/>
1112 <xsl:text> </xsl:text>
1113 <xsl:value-of select="briefdescription"/>
1115 <xsl:if test="$overload-position = $overload-count">
1124 <xsl:if test="count(sectiondef[@kind='related']/memberdef) > 0">
1125 [heading Related Functions]
1127 [[Name][Description]]
1128 <xsl:for-each select="sectiondef[@kind='related']/memberdef" mode="class-table">
1129 <xsl:sort select="name"/>
1130 <xsl:variable name="name">
1131 <xsl:value-of select="name"/>
1133 <xsl:variable name="id">
1134 <xsl:call-template name="make-id">
1135 <xsl:with-param name="name" select="$name"/>
1136 </xsl:call-template>
1138 <xsl:variable name="doxygen-id">
1139 <xsl:value-of select="@id"/>
1141 <xsl:variable name="overload-count">
1142 <xsl:value-of select="count(../memberdef[name = $name])"/>
1144 <xsl:variable name="overload-position">
1145 <xsl:for-each select="../memberdef[name = $name]">
1146 <xsl:if test="@id = $doxygen-id">
1147 <xsl:value-of select="position()"/>
1151 <xsl:if test="$overload-position = 1">
1153 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="$id"/>
1154 <xsl:text> </xsl:text>[*<xsl:value-of select="$name"/><xsl:text>]]]
1155 [</xsl:text><xsl:value-of select="briefdescription"/>
1157 <xsl:if test="not($overload-position = 1) and not(briefdescription = preceding-sibling::*/briefdescription)">
1158 <xsl:value-of select="$newline"/>
1159 <xsl:value-of select="$newline"/>
1160 <xsl:text> </xsl:text>
1161 <xsl:value-of select="briefdescription"/>
1163 <xsl:if test="$overload-position = $overload-count">
1175 <xsl:template name="class-members">
1176 <xsl:param name="class-name"/>
1177 <xsl:param name="class-id"/>
1178 <xsl:param name="class-file"/>
1179 <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">
1180 <xsl:sort select="name"/>
1181 <xsl:with-param name="class-name" select="$class-name"/>
1182 <xsl:with-param name="class-id" select="$class-id"/>
1183 <xsl:with-param name="class-file" select="$class-file"/>
1184 </xsl:apply-templates>
1185 <xsl:if test="$class-name = 'execution_context::service'">
1186 <xsl:apply-templates select="sectiondef[@kind='private-func']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]" mode="class-detail">
1187 <xsl:sort select="name"/>
1188 <xsl:with-param name="class-name" select="$class-name"/>
1189 <xsl:with-param name="class-id" select="$class-id"/>
1190 <xsl:with-param name="class-file" select="$class-file"/>
1191 </xsl:apply-templates>
1196 <!-- Class detail -->
1198 <xsl:template match="memberdef" mode="class-detail">
1199 <xsl:param name="class-name"/>
1200 <xsl:param name="class-id"/>
1201 <xsl:param name="class-file"/>
1202 <xsl:variable name="name">
1203 <xsl:value-of select="name"/>
1205 <xsl:variable name="escaped-name">
1206 <xsl:call-template name="escape-name">
1207 <xsl:with-param name="text" select="$name"/>
1208 </xsl:call-template>
1210 <xsl:variable name="escaped-class-name">
1211 <xsl:call-template name="escape-name">
1212 <xsl:with-param name="text" select="$class-name"/>
1213 </xsl:call-template>
1215 <xsl:variable name="id">
1216 <xsl:call-template name="make-id">
1217 <xsl:with-param name="name" select="$name"/>
1218 </xsl:call-template>
1220 <xsl:variable name="doxygen-id">
1221 <xsl:value-of select="@id"/>
1223 <xsl:variable name="overload-count">
1224 <xsl:value-of select="count(../memberdef[name = $name])"/>
1226 <xsl:variable name="overload-position">
1227 <xsl:for-each select="../memberdef[name = $name]">
1228 <xsl:if test="@id = $doxygen-id">
1229 <xsl:value-of select="position()"/>
1234 <xsl:if test="$overload-count > 1 and $overload-position = 1">
1235 [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text>
1236 <xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>]
1238 <xsl:text>[indexterm2 </xsl:text>
1239 <xsl:text>boost_asio.indexterm.</xsl:text>
1240 <xsl:value-of select="$class-id"/>
1241 <xsl:text>.</xsl:text>
1242 <xsl:value-of select="$id"/>
1243 <xsl:text>..</xsl:text>
1244 <xsl:value-of select="$escaped-name"/>
1245 <xsl:text>..</xsl:text>
1246 <xsl:value-of select="$escaped-class-name"/>
1247 <xsl:text>] </xsl:text>
1249 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1252 <xsl:for-each select="../memberdef[name = $name]">
1253 <xsl:if test="position() > 1 and not(briefdescription = preceding-sibling::*/briefdescription)">
1254 <xsl:value-of select="$newline"/>
1255 <xsl:apply-templates select="briefdescription" mode="markup"/>
1256 <xsl:value-of select="$newline"/>
1259 </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1260 <xsl:text> </xsl:text>
1261 <xsl:if test="@explicit='yes'">explicit </xsl:if>
1262 <xsl:if test="@static='yes'">static </xsl:if>
1263 <xsl:if test="@virt='virtual'">virtual </xsl:if>
1264 <xsl:variable name="stripped-type">
1265 <xsl:call-template name="cleanup-type">
1266 <xsl:with-param name="name" select="type"/>
1267 </xsl:call-template>
1269 <xsl:if test="string-length($stripped-type) > 0">
1270 <xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text>
1271 </xsl:if>``[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of
1272 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text><xsl:value-of
1273 select="name"/>]``(<xsl:apply-templates select="param"
1274 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1275 <xsl:text> `` [''''&raquo;'''</xsl:text>
1276 <xsl:text> [link boost_asio.reference.</xsl:text>
1277 <xsl:value-of select="$class-id"/>.<xsl:value-of
1278 select="$id"/>.overload<xsl:value-of select="position()"/>
1279 <xsl:text> more...]]``
1284 [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1285 <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/></xsl:if>
1286 <xsl:text> </xsl:text><xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>
1287 <xsl:if test="$overload-count > 1"> (<xsl:value-of
1288 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
1290 <xsl:if test="not(starts-with($doxygen-id, ../../@id))">
1291 <xsl:variable name="inherited-from" select="/doxygen/compounddef[starts-with($doxygen-id, @id)]/compoundname"/>
1292 <xsl:if test="not(contains($inherited-from, '::detail'))">
1293 ['Inherited from <xsl:call-template name="strip-asio-ns">
1294 <xsl:with-param name="name" select="$inherited-from"/>
1295 </xsl:call-template>.]<xsl:text>
1297 </xsl:text></xsl:if></xsl:if>
1299 <xsl:if test="$overload-count = 1">
1300 <xsl:text>[indexterm2 </xsl:text>
1301 <xsl:text>boost_asio.indexterm.</xsl:text>
1302 <xsl:value-of select="$class-id"/>
1303 <xsl:text>.</xsl:text>
1304 <xsl:value-of select="$id"/>
1305 <xsl:text>..</xsl:text>
1306 <xsl:value-of select="$escaped-name"/>
1307 <xsl:text>..</xsl:text>
1308 <xsl:value-of select="$escaped-class-name"/>
1309 <xsl:text>] </xsl:text>
1312 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1316 <xsl:when test="@kind='typedef'">
1317 <xsl:call-template name="typedef" mode="class-detail">
1318 <xsl:with-param name="class-name" select="$class-name"/>
1319 </xsl:call-template>
1321 <xsl:when test="@kind='variable'">
1322 <xsl:call-template name="variable" mode="class-detail"/>
1324 <xsl:when test="@kind='enum'">
1325 <xsl:call-template name="enum" mode="class-detail">
1326 <xsl:with-param name="enum-name" select="$class-name"/>
1327 <xsl:with-param name="id" select="concat($class-id, '.', $id)"/>
1328 </xsl:call-template>
1330 <xsl:when test="@kind='function'">
1331 <xsl:call-template name="function" mode="class-detail"/>
1333 <xsl:when test="@kind='friend'">
1334 <xsl:call-template name="function" mode="class-detail"/>
1339 </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
1341 <xsl:if test="@kind='typedef' or @kind='friend'">
1342 <xsl:call-template name="header-requirements">
1343 <xsl:with-param name="file" select="$class-file"/>
1344 </xsl:call-template>
1349 <xsl:if test="$overload-count > 1 and $overload-position = $overload-count">
1355 <xsl:template name="typedef">
1356 <xsl:param name="class-name"/>
1358 </xsl:text>typedef <xsl:value-of select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;<xsl:text>
1361 <xsl:if test="count(type/ref) > 0 and not(contains(type, '*'))">
1362 <xsl:variable name="class-refid">
1364 <xsl:when test="type='basic_address_iterator< address_v4 >'">
1365 <xsl:text>classasio_1_1ip_1_1basic__address__iterator_3_01address__v4_01_4</xsl:text>
1367 <xsl:when test="type='basic_address_iterator< address_v6 >'">
1368 <xsl:text>classasio_1_1ip_1_1basic__address__iterator_3_01address__v6_01_4</xsl:text>
1370 <xsl:when test="type='basic_address_range< address_v4 >'">
1371 <xsl:text>classasio_1_1ip_1_1basic__address__range_3_01address__v4_01_4</xsl:text>
1373 <xsl:when test="type='basic_address_range< address_v6 >'">
1374 <xsl:text>classasio_1_1ip_1_1basic__address__range_3_01address__v6_01_4</xsl:text>
1377 <xsl:for-each select="type/ref[1]">
1378 <xsl:value-of select="@refid"/>
1383 <xsl:variable name="name" select="name"/>
1384 <xsl:for-each select="/doxygen/compounddef[@id=$class-refid]">
1385 <xsl:call-template name="class-tables">
1386 <xsl:with-param name="class-name">
1387 <xsl:value-of select="concat($class-name, '::', $name)"/>
1389 <xsl:with-param name="class-id">
1390 <xsl:call-template name="make-id">
1391 <xsl:with-param name="name">
1392 <xsl:call-template name="strip-asio-ns">
1393 <xsl:with-param name="name" select="compoundname"/>
1394 </xsl:call-template>
1396 </xsl:call-template>
1398 </xsl:call-template>
1399 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1405 <xsl:template name="variable">
1407 </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:value-of
1408 select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>
1409 <xsl:if test="count(initializer) = 1"><xsl:text> =</xsl:text>
1410 <xsl:value-of select="initializer"/></xsl:if>;
1414 <xsl:template name="enum">
1415 <xsl:param name="enum-name"/>
1416 <xsl:param name="id"/>
1417 enum <xsl:value-of select="name"/><xsl:text>
1418 </xsl:text><xsl:if test="count(enumvalue) > 0">
1419 <xsl:value-of select="$newline"/>
1420 <xsl:for-each select="enumvalue">
1421 <xsl:text>[indexterm2 </xsl:text>
1422 <xsl:text>boost_asio.indexterm.</xsl:text>
1423 <xsl:value-of select="$id"/>
1424 <xsl:text>.</xsl:text>
1425 <xsl:value-of select="name"/>
1426 <xsl:text>..</xsl:text>
1427 <xsl:value-of select="name"/>
1428 <xsl:text>..</xsl:text>
1429 <xsl:value-of select="$enum-name"/>
1430 <xsl:text>]</xsl:text>
1431 <xsl:value-of select="$newline"/>
1435 <xsl:for-each select="enumvalue">
1437 [<xsl:value-of select="name"/>]
1438 [<xsl:value-of select="briefdescription"/>]
1446 <xsl:template name="function">
1449 <xsl:variable name="doxygen-id">
1450 <xsl:value-of select="@id"/>
1453 <xsl:when test="count(/doxygen//memberdef[@id=$doxygen-id]/templateparamlist) = 1">
1454 <xsl:apply-templates select="/doxygen//memberdef[@id=$doxygen-id]/templateparamlist" mode="class-detail"/>
1457 <xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1460 <xsl:variable name="stripped-type">
1461 <xsl:call-template name="cleanup-type">
1462 <xsl:with-param name="name" select="type"/>
1463 </xsl:call-template>
1465 <xsl:text> </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:if
1466 test="@virt='virtual'">virtual </xsl:if><xsl:if
1467 test="string-length($stripped-type) > 0"><xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>
1468 <xsl:value-of select="name"/>(<xsl:apply-templates select="param"
1469 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1473 <xsl:template match="templateparamlist" mode="class-detail">
1474 <xsl:text> </xsl:text>template<<xsl:apply-templates select="param" mode="class-detail-template"/>>
1478 <xsl:template match="param" mode="class-detail-template">
1480 </xsl:text><xsl:value-of select="type"/><xsl:text> </xsl:text>
1482 <xsl:when test="declname = 'Allocator'">
1483 <xsl:value-of select="declname"/>
1485 <xsl:when test="declname = 'Arg'">
1486 <xsl:value-of select="declname"/>
1488 <xsl:when test="declname = 'Args'">
1489 <xsl:value-of select="declname"/>
1491 <xsl:when test="declname = 'BufferSequence'">
1492 <xsl:value-of select="declname"/>
1494 <xsl:when test="declname = 'ByteType'">
1495 <xsl:value-of select="declname"/>
1497 <xsl:when test="declname = 'C'">
1498 <xsl:value-of select="declname"/>
1500 <xsl:when test="declname = 'Clock'">
1501 <xsl:value-of select="declname"/>
1503 <xsl:when test="declname = 'CompletionToken'">
1504 <xsl:value-of select="declname"/>
1506 <xsl:when test="declname = 'ConstBuffer'">
1507 <xsl:value-of select="declname"/>
1509 <xsl:when test="declname = 'Context_Service'">
1510 <xsl:value-of select="declname"/>
1512 <xsl:when test="declname = 'Duration'">
1513 <xsl:value-of select="declname"/>
1515 <xsl:when test="declname = 'DatagramSocketService1'">
1516 <xsl:value-of select="concat('``[link boost_asio.reference.DatagramSocketService ', declname, ']``')"/>
1518 <xsl:when test="declname = 'EndpointIterator'">
1519 <xsl:value-of select="declname"/>
1521 <xsl:when test="declname = 'Elem'">
1522 <xsl:value-of select="declname"/>
1524 <xsl:when test="declname = 'ErrorEnum'">
1525 <xsl:value-of select="declname"/>
1527 <xsl:when test="declname = 'ExecutionContext'">
1528 <xsl:value-of select="declname"/>
1530 <xsl:when test="declname = 'Executor'">
1531 <xsl:value-of select="concat('``[link boost_asio.reference.Executor1 ', declname, ']``')"/>
1533 <xsl:when test="declname = 'Executor2'">
1534 <xsl:value-of select="concat('``[link boost_asio.reference.Executor1 ', declname, ']``')"/>
1536 <xsl:when test="declname = 'F'">
1537 <xsl:value-of select="declname"/>
1539 <xsl:when test="declname = 'Function'">
1540 <xsl:value-of select="declname"/>
1542 <xsl:when test="declname = 'IoObjectService1'">
1543 <xsl:value-of select="concat('``[link boost_asio.reference.IoObjectService ', declname, ']``')"/>
1545 <xsl:when test="declname = 'Implementation'">
1546 <xsl:value-of select="declname"/>
1548 <xsl:when test="declname = 'Initiation'">
1549 <xsl:value-of select="declname"/>
1551 <xsl:when test="declname = 'InnerExecutor'">
1552 <xsl:value-of select="concat('``[link boost_asio.reference.Executor1 ', declname, ']``')"/>
1554 <xsl:when test="declname = 'IoObjectsOrExecutors'">
1555 <xsl:value-of select="declname"/>
1557 <xsl:when test="declname = 'Iterator'">
1558 <xsl:value-of select="declname"/>
1560 <xsl:when test="declname = 'MatchCondition'">
1561 <xsl:value-of select="declname"/>
1563 <xsl:when test="declname = 'MutableBuffer'">
1564 <xsl:value-of select="declname"/>
1566 <xsl:when test="declname = 'N'">
1567 <xsl:value-of select="declname"/>
1569 <xsl:when test="declname = 'OtherAllocator'">
1570 <xsl:value-of select="declname"/>
1572 <xsl:when test="declname = 'OtherExecutor'">
1573 <xsl:value-of select="concat('``[link boost_asio.reference.Executor1 ', declname, ']``')"/>
1575 <xsl:when test="declname = 'OtherHandler'">
1576 <xsl:value-of select="declname"/>
1578 <xsl:when test="declname = 'PasswordCallback'">
1579 <xsl:value-of select="declname"/>
1581 <xsl:when test="declname = 'Period'">
1582 <xsl:value-of select="declname"/>
1584 <xsl:when test="declname = 'PodType'">
1585 <xsl:value-of select="declname"/>
1587 <xsl:when test="declname = 'PointerToPodType'">
1588 <xsl:value-of select="declname"/>
1590 <xsl:when test="declname = 'Protocol1'">
1591 <xsl:value-of select="concat('``[link boost_asio.reference.Protocol ', declname, ']``')"/>
1593 <xsl:when test="declname = 'RawCompletionToken'">
1594 <xsl:value-of select="declname"/>
1596 <xsl:when test="declname = 'RawSocketService1'">
1597 <xsl:value-of select="concat('``[link boost_asio.reference.RawSocketService ', declname, ']``')"/>
1599 <xsl:when test="declname = 'Rep'">
1600 <xsl:value-of select="declname"/>
1602 <xsl:when test="declname = 'Result'">
1603 <xsl:value-of select="declname"/>
1605 <xsl:when test="declname = 'SeqPacketSocketService1'">
1606 <xsl:value-of select="concat('``[link boost_asio.reference.SeqPacketSocketService ', declname, ']``')"/>
1608 <xsl:when test="declname = 'Signature'">
1609 <xsl:value-of select="declname"/>
1611 <xsl:when test="declname = 'SocketAcceptorService1' or declname = 'SocketAcceptorService2'">
1612 <xsl:value-of select="concat('``[link boost_asio.reference.SocketAcceptorService ', declname, ']``')"/>
1614 <xsl:when test="declname = 'SocketService1' or declname = 'SocketService2'">
1615 <xsl:value-of select="concat('``[link boost_asio.reference.SocketService ', declname, ']``')"/>
1617 <xsl:when test="declname = 'Stream'">
1618 <xsl:value-of select="declname"/>
1620 <xsl:when test="declname = 'StreamSocketService1'">
1621 <xsl:value-of select="concat('``[link boost_asio.reference.StreamSocketService ', declname, ']``')"/>
1623 <xsl:when test="declname = 'T'">
1624 <xsl:value-of select="declname"/>
1626 <xsl:when test="declname = 'T1'">
1627 <xsl:value-of select="declname"/>
1629 <xsl:when test="declname = 'TN'">
1630 <xsl:value-of select="declname"/>
1632 <xsl:when test="declname = 'Time'">
1633 <xsl:value-of select="declname"/>
1635 <xsl:when test="declname = 'TimeType'">
1636 <xsl:value-of select="declname"/>
1638 <xsl:when test="declname = 'Traits'">
1639 <xsl:value-of select="declname"/>
1641 <xsl:when test="declname = 'U'">
1642 <xsl:value-of select="declname"/>
1644 <xsl:when test="declname = 'VerifyCallback'">
1645 <xsl:value-of select="declname"/>
1647 <xsl:when test="count(declname) = 0">
1650 <xsl:value-of select="concat('``[link boost_asio.reference.', declname, ' ', declname, ']``')"/>
1653 <xsl:if test="count(defval) > 0"> = <xsl:choose>
1654 <xsl:when test="defval = 'default_token'">
1655 <xsl:text>``[link boost_asio.reference.asynchronous_operations.default_completion_tokens ['DEFAULT]]``</xsl:text>
1657 <xsl:otherwise><xsl:value-of select="defval"/></xsl:otherwise>
1658 </xsl:choose></xsl:if>
1659 <xsl:if test="not(position() = last())">,</xsl:if>
1663 <xsl:template match="param" mode="class-detail">
1667 <xsl:when test="string-length(array) > 0">
1668 <xsl:value-of select="substring-before(type, '&')"/>
1669 <xsl:text>(&</xsl:text>
1670 <xsl:value-of select="declname"/>
1671 <xsl:text>)</xsl:text>
1672 <xsl:value-of select="array"/>
1675 <xsl:value-of select="type"/>
1676 <xsl:text> </xsl:text>
1677 <xsl:value-of select="declname"/>
1680 <xsl:if test="count(defval) > 0"> = <xsl:choose>
1681 <xsl:when test="defval = 'default_token'">
1682 <xsl:text>``[link boost_asio.reference.asynchronous_operations.default_completion_tokens ['DEFAULT]]``</xsl:text>
1684 <xsl:otherwise><xsl:value-of select="defval"/></xsl:otherwise>
1685 </xsl:choose></xsl:if>
1686 <xsl:if test="not(position() = last())">,</xsl:if>
1690 <xsl:template match="*" mode="class-detail"/>
1693 <!--========== Namespace ==========-->
1695 <xsl:template name="namespace-memberdef">
1696 <xsl:variable name="name">
1697 <xsl:call-template name="strip-asio-ns">
1698 <xsl:with-param name="name" select="concat(../../compoundname, '::', name)"/>
1699 </xsl:call-template>
1701 <xsl:variable name="unqualified-name">
1702 <xsl:call-template name="strip-ns">
1703 <xsl:with-param name="name" select="$name"/>
1704 </xsl:call-template>
1706 <xsl:variable name="id">
1707 <xsl:call-template name="make-id">
1708 <xsl:with-param name="name" select="$name"/>
1709 </xsl:call-template>
1711 <xsl:variable name="doxygen-id">
1712 <xsl:value-of select="@id"/>
1714 <xsl:variable name="overload-count">
1715 <xsl:value-of select="count(../memberdef[name = $unqualified-name])"/>
1717 <xsl:variable name="overload-position">
1718 <xsl:for-each select="../memberdef[name = $unqualified-name]">
1719 <xsl:if test="@id = $doxygen-id">
1720 <xsl:value-of select="position()"/>
1725 <xsl:if test="$overload-count > 1 and $overload-position = 1">
1726 [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text><xsl:value-of select="$name"/>]
1728 <xsl:text>[indexterm1 </xsl:text>
1729 <xsl:text>boost_asio.indexterm.</xsl:text>
1730 <xsl:value-of select="$id"/>
1731 <xsl:text>..</xsl:text>
1732 <xsl:value-of select="$name"/>
1733 <xsl:text>] </xsl:text>
1735 <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1736 <xsl:apply-templates select="briefdescription" mode="markup"/>
1737 <xsl:value-of select="$newline"/>
1740 <xsl:for-each select="../memberdef[name = $unqualified-name]">
1741 <xsl:variable name="stripped-type">
1742 <xsl:call-template name="cleanup-type">
1743 <xsl:with-param name="name" select="type"/>
1744 </xsl:call-template>
1746 <xsl:if test="position() = 1 or not(briefdescription = preceding-sibling::memberdef[1]/briefdescription)">
1747 <xsl:apply-templates select="briefdescription" mode="markup"/>
1750 </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1751 <xsl:text> </xsl:text><xsl:if test="string-length($stripped-type) > 0"><xsl:value-of
1752 select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>``[link boost_asio.reference.<xsl:value-of
1753 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text>
1754 <xsl:value-of select="name"/>]``(<xsl:apply-templates select="param" mode="class-detail"/>);
1755 <xsl:text> `` [''''&raquo;'''</xsl:text>
1756 <xsl:text> [link boost_asio.reference.</xsl:text>
1757 <xsl:value-of select="$id"/>.overload<xsl:value-of select="position()"/>
1758 <xsl:text> more...]]``
1762 <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1763 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1766 <xsl:call-template name="header-requirements">
1767 <xsl:with-param name="file" select="location/@file"/>
1768 </xsl:call-template>
1772 [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1773 <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/>
1774 </xsl:if><xsl:text> </xsl:text><xsl:value-of select="$name"/>
1775 <xsl:if test="$overload-count > 1"> (<xsl:value-of
1776 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
1778 <xsl:if test="$overload-count = 1">
1779 <xsl:text>[indexterm1 </xsl:text>
1780 <xsl:text>boost_asio.indexterm.</xsl:text>
1781 <xsl:value-of select="$id"/>
1782 <xsl:text>..</xsl:text>
1783 <xsl:value-of select="$name"/>
1784 <xsl:text>] </xsl:text>
1787 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1791 <xsl:when test="@kind='typedef'">
1792 <xsl:call-template name="typedef">
1793 <xsl:with-param name="class-name" select="$name"/>
1794 </xsl:call-template>
1796 <xsl:when test="@kind='variable'">
1797 <xsl:call-template name="variable"/>
1799 <xsl:when test="@kind='enum'">
1800 <xsl:call-template name="enum">
1801 <xsl:with-param name="enum-name" select="$name"/>
1802 <xsl:with-param name="id" select="$id"/>
1803 </xsl:call-template>
1805 <xsl:when test="@kind='function'">
1806 <xsl:call-template name="function"/>
1811 </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
1813 <xsl:if test="$overload-count = 1">
1814 <xsl:call-template name="header-requirements">
1815 <xsl:with-param name="file" select="location/@file"/>
1816 </xsl:call-template>
1821 <xsl:if test="$overload-count > 1 and $overload-position = $overload-count">