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-2016 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-2016 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/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]
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"/>
103 <xsl:when test="@kind='class' or @kind='struct'">
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"/>
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"/>
125 <xsl:value-of select="$newline"/>
126 <xsl:text>[endsect]</xsl:text>
131 <!--========== Utilities ==========-->
133 <xsl:template name="strip-asio-ns">
134 <xsl:param name="name"/>
136 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
137 <xsl:value-of select="$name"/>
139 <xsl:when test="contains($name, 'asio::')">
140 <xsl:value-of select="substring-after($name, 'asio::')"/>
143 <xsl:value-of select="$name"/>
149 <xsl:template name="strip-ns">
150 <xsl:param name="name"/>
152 <xsl:when test="contains($name, 'boost::system::is_error_code_enum')">
153 <xsl:value-of select="$name"/>
155 <xsl:when test="contains($name, '::') and contains($name, '<')">
157 <xsl:when test="string-length(substring-before($name, '::')) < string-length(substring-before($name, '<'))">
158 <xsl:call-template name="strip-ns">
159 <xsl:with-param name="name" select="substring-after($name, '::')"/>
163 <xsl:value-of select="$name"/>
167 <xsl:when test="contains($name, '::')">
168 <xsl:call-template name="strip-ns">
169 <xsl:with-param name="name" select="substring-after($name, '::')"/>
173 <xsl:value-of select="$name"/>
179 <xsl:template name="cleanup-type">
180 <xsl:param name="name"/>
181 <xsl:variable name="type">
183 <xsl:when test="contains($name, 'BOOST_ASIO_DECL ')">
184 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL ')"/>
186 <xsl:when test="contains($name, 'BOOST_ASIO_DECL')">
187 <xsl:value-of select="substring-after($name, 'BOOST_ASIO_DECL')"/>
189 <xsl:when test="$name = 'virtual'"></xsl:when>
191 <xsl:value-of select="$name"/>
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>
200 <xsl:value-of select="$type"/>
206 <xsl:template name="make-id">
207 <xsl:param name="name"/>
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::')"/>
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::'))"/>
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, '::'))"/>
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, '='))"/>
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, '!'))"/>
239 <xsl:when test="contains($name, '->')">
240 <xsl:call-template name="make-id">
241 <xsl:with-param name="name"
242 select="concat(substring-before($name, '->'), '_arrow_', substring-after($name, '->'))"/>
245 <xsl:when test="contains($name, '<')">
246 <xsl:call-template name="make-id">
247 <xsl:with-param name="name"
248 select="concat(substring-before($name, '<'), '_lt_', substring-after($name, '<'))"/>
251 <xsl:when test="contains($name, '>')">
252 <xsl:call-template name="make-id">
253 <xsl:with-param name="name"
254 select="concat(substring-before($name, '>'), '_gt_', substring-after($name, '>'))"/>
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, '['))"/>
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, ']'))"/>
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, '('))"/>
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, ')'))"/>
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, '+'))"/>
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, '-'))"/>
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, '*'))"/>
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, '~'))"/>
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, ' '))"/>
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'))"/>
318 <xsl:value-of select="$name"/>
324 <!--========== Markup ==========-->
326 <xsl:template match="para" mode="markup">
328 </xsl:text><xsl:apply-templates mode="markup"/><xsl:text>
333 <xsl:template match="para" mode="markup-nested">
334 <xsl:apply-templates mode="markup-nested"/>
338 <xsl:template match="title" mode="markup">
339 <xsl:variable name="title">
340 <xsl:value-of select="."/>
342 <xsl:if test="string-length($title) > 0">
343 [heading <xsl:value-of select="."/>]
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"/>
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"/>
365 <xsl:text>``</xsl:text>
366 <xsl:value-of select="$newline"/>
370 <xsl:template match="codeline" mode="codeline">
371 <xsl:if test="string-length(.) > 0">
372 <xsl:text> </xsl:text>
374 <xsl:apply-templates mode="codeline"/>
375 <xsl:value-of select="$newline"/>
379 <xsl:template match="sp" mode="markup">
380 <xsl:text> </xsl:text>
384 <xsl:template match="sp" mode="markup-nested">
385 <xsl:text> </xsl:text>
389 <xsl:template match="sp" mode="codeline">
390 <xsl:text> </xsl:text>
394 <xsl:template match="linebreak" mode="markup">
401 <xsl:template match="linebreak" mode="markup-nested">
408 <xsl:template match="computeroutput" mode="markup">
409 <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
413 <xsl:template match="computeroutput" mode="markup-nested">
414 <xsl:text>`</xsl:text><xsl:value-of select="."/><xsl:text>`</xsl:text>
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"/>
427 <xsl:template match="bold" mode="markup">[*<xsl:apply-templates mode="markup"/>]</xsl:template>
430 <xsl:template match="emphasis" mode="markup">['<xsl:apply-templates mode="markup"/>]</xsl:template>
433 <xsl:template match="parameterlist" mode="markup">
435 <xsl:when test="@kind='param'">
438 <xsl:when test="@kind='exception'">
444 <xsl:apply-templates mode="markup"/>
449 <xsl:template match="parameteritem" mode="markup">
450 [[<xsl:value-of select="parameternamelist"/>][<xsl:apply-templates select="parameterdescription" mode="markup-nested"/>]]
454 <xsl:template match="simplesect" mode="markup">
456 <xsl:when test="@kind='return'">
457 [heading Return Value]
458 <xsl:apply-templates mode="markup"/>
460 <xsl:when test="@kind='see'">
462 <xsl:when test="@kind='note'">
464 <xsl:apply-templates mode="markup"/>
466 <xsl:when test="@kind='par'">
467 <xsl:if test="not(starts-with(title, 'Concepts:'))">
468 <xsl:apply-templates mode="markup"/>
472 <xsl:apply-templates mode="markup"/>
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()"/>
489 <xsl:variable name="after-newline" select="
490 $preceding-node-name = 'programlisting' or
491 $preceding-node-name = 'linebreak'"/>
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"/>
503 <xsl:call-template name="escape-text">
504 <xsl:with-param name="text" select="$text"/>
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()"/>
522 <xsl:variable name="after-newline" select="
523 $preceding-node-name = 'programlisting' or
524 $preceding-node-name = 'linebreak'"/>
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"/>
536 <xsl:call-template name="escape-text">
537 <xsl:with-param name="text" select="$text"/>
544 <xsl:template name="strip-leading-whitespace">
545 <xsl:param name="text"/>
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)"/>
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)"/>
558 <xsl:value-of select="$text"/>
564 <xsl:template name="escape-text">
565 <xsl:param name="text"/>
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, '_')"/>
575 <xsl:value-of select="$text"/>
581 <xsl:template name="escape-name">
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-name">
588 <xsl:with-param name="text" select="substring-after($text, '[')"/>
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, ']')"/>
599 <xsl:value-of select="$text"/>
605 <xsl:template match="ref[@kindref='compound']" mode="markup">
606 <xsl:variable name="name">
607 <xsl:value-of select="."/>
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"/>
618 <xsl:variable name="ref-id">
619 <xsl:call-template name="make-id">
620 <xsl:with-param name="name" select="$ref-name"/>
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>
630 <xsl:text>`</xsl:text>
631 <xsl:value-of select="."/>
632 <xsl:text>`</xsl:text>
638 <xsl:template match="ref[@kindref='compound']" mode="markup-nested">
639 <xsl:variable name="name">
640 <xsl:value-of select="."/>
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"/>
651 <xsl:variable name="ref-id">
652 <xsl:call-template name="make-id">
653 <xsl:with-param name="name" select="$ref-name"/>
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>
663 <xsl:text>`</xsl:text>
664 <xsl:value-of select="."/>
665 <xsl:text>`</xsl:text>
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]"/>
675 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0">
676 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
677 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
678 <xsl:variable name="ref-name">
679 <xsl:call-template name="strip-asio-ns">
680 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
683 <xsl:variable name="ref-id">
684 <xsl:call-template name="make-id">
685 <xsl:with-param name="name" select="$ref-name"/>
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>
695 <xsl:text>`</xsl:text>
696 <xsl:value-of select="."/>
697 <xsl:text>`</xsl:text>
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]"/>
707 <xsl:when test="contains(@refid, 'namespaceboost_1_1asio') and count($memberdefs) > 0">
708 <xsl:variable name="dox-compound-name" select="($memberdefs)[1]/../../compoundname"/>
709 <xsl:variable name="dox-name" select="($memberdefs)[1]/name"/>
710 <xsl:variable name="ref-name">
711 <xsl:call-template name="strip-asio-ns">
712 <xsl:with-param name="name" select="concat($dox-compound-name,'::',$dox-name)"/>
715 <xsl:variable name="ref-id">
716 <xsl:call-template name="make-id">
717 <xsl:with-param name="name" select="$ref-name"/>
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>
727 <xsl:text>`</xsl:text>
728 <xsl:value-of select="."/>
729 <xsl:text>`</xsl:text>
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>
749 <xsl:when test="contains($file, 'boost/asio/ssl')">
750 <xsl:text>[^boost/asio/ssl.hpp]</xsl:text>
752 <xsl:when test="contains($file, 'boost/asio/high_resolution_timer')">
753 <xsl:text>None</xsl:text>
755 <xsl:when test="contains($file, 'boost/asio/spawn')">
756 <xsl:text>None</xsl:text>
758 <xsl:when test="contains($file, 'boost/asio/steady_timer')">
759 <xsl:text>None</xsl:text>
761 <xsl:when test="contains($file, 'boost/asio/system_timer')">
762 <xsl:text>None</xsl:text>
764 <xsl:when test="contains($file, 'boost/asio/use_future')">
765 <xsl:text>None</xsl:text>
768 <xsl:text>[^boost/asio.hpp]</xsl:text>
771 <xsl:value-of select="$newline"/>
775 <!--========== Class ==========-->
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"/>
783 <xsl:variable name="unqualified-class-name">
784 <xsl:call-template name="strip-ns">
785 <xsl:with-param name="name" select="compoundname"/>
788 <xsl:variable name="class-id">
789 <xsl:call-template name="make-id">
790 <xsl:with-param name="name" select="$class-name"/>
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"/>]
796 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
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>
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"/>
815 <xsl:apply-templates select="detaileddescription" mode="markup"/>
817 <xsl:call-template name="header-requirements">
818 <xsl:with-param name="file" select="$class-file"/>
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"/>
831 <xsl:template name="class-tables">
832 <xsl:param name="class-name"/>
833 <xsl:param name="class-id"/>
836 sectiondef[@kind='public-type'] |
837 innerclass[@prot='public' and not(contains(., '_handler'))]) > 0">
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)])"/>
847 <xsl:when test="count(name) > 0">
848 [[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of select="name"/>
849 <xsl:text> </xsl:text>[*<xsl:value-of select="name"/>]]]
850 [<xsl:call-template name="escape-name"><xsl:with-param name="text" select="briefdescription"/></xsl:call-template>]
853 <xsl:variable name="type-name">
854 <xsl:call-template name="strip-asio-ns">
855 <xsl:with-param name="name" select="."/>
858 <xsl:variable name="unqualified-type-name">
859 <xsl:call-template name="strip-ns">
860 <xsl:with-param name="name" select="."/>
863 <xsl:variable name="type-id">
864 <xsl:call-template name="make-id">
865 <xsl:with-param name="name" select="$type-name"/>
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"/>]
879 <xsl:if test="count(sectiondef[@kind='public-func' or @kind='public-static-func']) > 0">
880 [heading Member Functions]
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"/>
888 <xsl:variable name="escaped-name">
889 <xsl:call-template name="escape-name">
890 <xsl:with-param name="text" select="$name"/>
893 <xsl:variable name="id">
894 <xsl:call-template name="make-id">
895 <xsl:with-param name="name" select="$name"/>
898 <xsl:variable name="doxygen-id">
899 <xsl:value-of select="@id"/>
901 <xsl:variable name="overload-count">
902 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
911 <xsl:if test="$overload-position = 1">
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"/>
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"/>
923 <xsl:if test="$overload-position = $overload-count">
932 <xsl:if test="count(sectiondef[@kind='protected-func' or @kind='protected-static-func']) > 0">
933 [heading Protected Member Functions]
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"/>
941 <xsl:variable name="id">
942 <xsl:call-template name="make-id">
943 <xsl:with-param name="name" select="$name"/>
946 <xsl:variable name="doxygen-id">
947 <xsl:value-of select="@id"/>
949 <xsl:variable name="overload-count">
950 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
959 <xsl:if test="$overload-position = 1">
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"/>
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"/>
971 <xsl:if test="$overload-position = $overload-count">
980 <xsl:if test="$class-name = 'io_service::service'">
981 <xsl:if test="count(sectiondef[@kind='private-func']) > 0">
982 [heading Private Member Functions]
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"/>
990 <xsl:variable name="id">
991 <xsl:call-template name="make-id">
992 <xsl:with-param name="name" select="$name"/>
995 <xsl:variable name="doxygen-id">
996 <xsl:value-of select="@id"/>
998 <xsl:variable name="overload-count">
999 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
1008 <xsl:if test="$overload-position = 1">
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"/>
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"/>
1020 <xsl:if test="$overload-position = $overload-count">
1030 <xsl:if test="count(sectiondef[@kind='public-attrib' or @kind='public-static-attrib']) > 0">
1031 [heading Data Members]
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"/>
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"/>]
1045 <xsl:if test="count(sectiondef[@kind='protected-attrib' or @kind='protected-static-attrib']) > 0">
1046 [heading Protected Data Members]
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"/>
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='friend']/memberdef[not(type = 'friend class') and not(contains(name, '_helper'))]) > 0">
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"/>
1069 <xsl:variable name="id">
1070 <xsl:call-template name="make-id">
1071 <xsl:with-param name="name" select="$name"/>
1072 </xsl:call-template>
1074 <xsl:variable name="doxygen-id">
1075 <xsl:value-of select="@id"/>
1077 <xsl:variable name="overload-count">
1078 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
1087 <xsl:if test="$overload-position = 1">
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"/>
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"/>
1099 <xsl:if test="$overload-position = $overload-count">
1108 <xsl:if test="count(sectiondef[@kind='related']/memberdef) > 0">
1109 [heading Related Functions]
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"/>
1117 <xsl:variable name="id">
1118 <xsl:call-template name="make-id">
1119 <xsl:with-param name="name" select="$name"/>
1120 </xsl:call-template>
1122 <xsl:variable name="doxygen-id">
1123 <xsl:value-of select="@id"/>
1125 <xsl:variable name="overload-count">
1126 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
1135 <xsl:if test="$overload-position = 1">
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"/>
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"/>
1147 <xsl:if test="$overload-position = $overload-count">
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>
1180 <!-- Class detail -->
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"/>
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>
1194 <xsl:variable name="id">
1195 <xsl:call-template name="make-id">
1196 <xsl:with-param name="name" select="$name"/>
1197 </xsl:call-template>
1199 <xsl:variable name="doxygen-id">
1200 <xsl:value-of select="@id"/>
1202 <xsl:variable name="overload-count">
1203 <xsl:value-of select="count(../memberdef[name = $name])"/>
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()"/>
1213 <xsl:if test="$overload-count > 1 and $overload-position = 1">
1214 [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text>
1215 <xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>]
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>
1223 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1226 <xsl:for-each select="../memberdef[name = $name]">
1227 <xsl:if test="position() > 1 and not(briefdescription = preceding-sibling::*/briefdescription)">
1228 <xsl:value-of select="$newline"/>
1229 <xsl:apply-templates select="briefdescription" mode="markup"/>
1230 <xsl:value-of select="$newline"/>
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>
1243 <xsl:if test="string-length($stripped-type) > 0">
1244 <xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text>
1245 </xsl:if>``[link boost_asio.reference.<xsl:value-of select="$class-id"/>.<xsl:value-of
1246 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text><xsl:value-of
1247 select="name"/>]``(<xsl:apply-templates select="param"
1248 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1249 <xsl:text> `` [''''&raquo;'''</xsl:text>
1250 <xsl:text> [link boost_asio.reference.</xsl:text>
1251 <xsl:value-of select="$class-id"/>.<xsl:value-of
1252 select="$id"/>.overload<xsl:value-of select="position()"/>
1253 <xsl:text> more...]]``
1258 [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1259 <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/></xsl:if>
1260 <xsl:text> </xsl:text><xsl:value-of select="$class-name"/>::<xsl:value-of select="$escaped-name"/>
1261 <xsl:if test="$overload-count > 1"> (<xsl:value-of
1262 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
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>
1271 </xsl:text></xsl:if></xsl:if>
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>
1281 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
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>
1290 <xsl:when test="@kind='variable'">
1291 <xsl:call-template name="variable" mode="class-detail"/>
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>
1298 <xsl:when test="@kind='function'">
1299 <xsl:call-template name="function" mode="class-detail"/>
1301 <xsl:when test="@kind='friend'">
1302 <xsl:call-template name="function" mode="class-detail"/>
1307 </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
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>
1317 <xsl:if test="$overload-count > 1 and $overload-position = $overload-count">
1323 <xsl:template name="typedef">
1324 <xsl:param name="class-name"/>
1326 </xsl:text>typedef <xsl:value-of select="type"/><xsl:text> </xsl:text><xsl:value-of select="name"/>;<xsl:text>
1329 <xsl:if test="count(type/ref) > 0 and not(contains(type, '*'))">
1330 <xsl:variable name="class-refid">
1331 <xsl:for-each select="type/ref[1]">
1332 <xsl:value-of select="@refid"/>
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)"/>
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>
1348 </xsl:call-template>
1350 </xsl:call-template>
1351 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1357 <xsl:template name="variable">
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>;
1366 <xsl:template name="enum">
1367 <xsl:param name="enum-name"/>
1368 enum <xsl:value-of select="name"/><xsl:text>
1369 </xsl:text><xsl:if test="count(enumvalue) > 0">
1370 <xsl:value-of select="$newline"/>
1371 <xsl:for-each select="enumvalue">
1372 <xsl:text>[indexterm2 </xsl:text>
1373 <xsl:value-of select="name"/>
1374 <xsl:text>..</xsl:text>
1375 <xsl:value-of select="$enum-name"/>
1376 <xsl:text>]</xsl:text>
1377 <xsl:value-of select="$newline"/>
1381 <xsl:for-each select="enumvalue">
1383 [<xsl:value-of select="name"/>]
1384 [<xsl:value-of select="briefdescription"/>]
1392 <xsl:template name="function">
1395 <xsl:variable name="doxygen-id">
1396 <xsl:value-of select="@id"/>
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"/>
1403 <xsl:apply-templates select="templateparamlist" mode="class-detail"/>
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>
1411 <xsl:text> </xsl:text><xsl:if test="@static='yes'">static </xsl:if><xsl:if
1412 test="@virt='virtual'">virtual </xsl:if><xsl:if
1413 test="string-length($stripped-type) > 0"><xsl:value-of select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>
1414 <xsl:value-of select="name"/>(<xsl:apply-templates select="param"
1415 mode="class-detail"/>)<xsl:if test="@const='yes'"> const</xsl:if>;
1419 <xsl:template match="templateparamlist" mode="class-detail">
1420 <xsl:text> </xsl:text>template<<xsl:apply-templates select="param" mode="class-detail-template"/>>
1424 <xsl:template match="param" mode="class-detail-template">
1426 </xsl:text><xsl:value-of select="type"/><xsl:text> </xsl:text>
1428 <xsl:when test="declname = 'Allocator'">
1429 <xsl:value-of select="declname"/>
1431 <xsl:when test="declname = 'Arg'">
1432 <xsl:value-of select="declname"/>
1434 <xsl:when test="declname = 'BufferSequence'">
1435 <xsl:value-of select="declname"/>
1437 <xsl:when test="declname = 'ByteType'">
1438 <xsl:value-of select="declname"/>
1440 <xsl:when test="declname = 'Clock'">
1441 <xsl:value-of select="declname"/>
1443 <xsl:when test="declname = 'CompletionCondition'">
1444 <xsl:value-of select="declname"/>
1446 <xsl:when test="declname = 'ConnectCondition'">
1447 <xsl:value-of select="declname"/>
1449 <xsl:when test="declname = 'Context_Service'">
1450 <xsl:value-of select="declname"/>
1452 <xsl:when test="declname = 'DatagramSocketService1'">
1453 <xsl:value-of select="concat('``[link boost_asio.reference.DatagramSocketService ', declname, ']``')"/>
1455 <xsl:when test="declname = 'EndpointIterator'">
1456 <xsl:value-of select="declname"/>
1458 <xsl:when test="declname = 'Elem'">
1459 <xsl:value-of select="declname"/>
1461 <xsl:when test="declname = 'ErrorEnum'">
1462 <xsl:value-of select="declname"/>
1464 <xsl:when test="declname = 'Function'">
1465 <xsl:value-of select="declname"/>
1467 <xsl:when test="declname = 'Iterator'">
1468 <xsl:value-of select="declname"/>
1470 <xsl:when test="declname = 'MatchCondition'">
1471 <xsl:value-of select="declname"/>
1473 <xsl:when test="declname = 'N'">
1474 <xsl:value-of select="declname"/>
1476 <xsl:when test="declname = 'OtherAllocator'">
1477 <xsl:value-of select="declname"/>
1479 <xsl:when test="declname = 'PasswordCallback'">
1480 <xsl:value-of select="declname"/>
1482 <xsl:when test="declname = 'PodType'">
1483 <xsl:value-of select="declname"/>
1485 <xsl:when test="declname = 'PointerToPodType'">
1486 <xsl:value-of select="declname"/>
1488 <xsl:when test="declname = 'Protocol1'">
1489 <xsl:value-of select="concat('``[link boost_asio.reference.Protocol ', declname, ']``')"/>
1491 <xsl:when test="declname = 'RawSocketService1'">
1492 <xsl:value-of select="concat('``[link boost_asio.reference.RawSocketService ', declname, ']``')"/>
1494 <xsl:when test="declname = 'SeqPacketSocketService1'">
1495 <xsl:value-of select="concat('``[link boost_asio.reference.SeqPacketSocketService ', declname, ']``')"/>
1497 <xsl:when test="declname = 'Signature'">
1498 <xsl:value-of select="declname"/>
1500 <xsl:when test="declname = 'SocketAcceptorService1' or declname = 'SocketAcceptorService2'">
1501 <xsl:value-of select="concat('``[link boost_asio.reference.SocketAcceptorService ', declname, ']``')"/>
1503 <xsl:when test="declname = 'SocketService1' or declname = 'SocketService2'">
1504 <xsl:value-of select="concat('``[link boost_asio.reference.SocketService ', declname, ']``')"/>
1506 <xsl:when test="declname = 'Stream'">
1507 <xsl:value-of select="declname"/>
1509 <xsl:when test="declname = 'StreamSocketService1'">
1510 <xsl:value-of select="concat('``[link boost_asio.reference.StreamSocketService ', declname, ']``')"/>
1512 <xsl:when test="declname = 'T'">
1513 <xsl:value-of select="declname"/>
1515 <xsl:when test="declname = 'T1'">
1516 <xsl:value-of select="declname"/>
1518 <xsl:when test="declname = 'TN'">
1519 <xsl:value-of select="declname"/>
1521 <xsl:when test="declname = 'Time'">
1522 <xsl:value-of select="declname"/>
1524 <xsl:when test="declname = 'TimeType'">
1525 <xsl:value-of select="declname"/>
1527 <xsl:when test="declname = 'Traits'">
1528 <xsl:value-of select="declname"/>
1530 <xsl:when test="declname = 'VerifyCallback'">
1531 <xsl:value-of select="declname"/>
1533 <xsl:when test="count(declname) = 0">
1536 <xsl:value-of select="concat('``[link boost_asio.reference.', declname, ' ', declname, ']``')"/>
1539 <xsl:if test="count(defval) > 0"> = <xsl:value-of
1540 select="defval"/></xsl:if><xsl:if test="not(position() = last())">,</xsl:if>
1544 <xsl:template match="param" mode="class-detail">
1548 <xsl:when test="string-length(array) > 0">
1549 <xsl:value-of select="substring-before(type, '&')"/>
1550 <xsl:text>(&</xsl:text>
1551 <xsl:value-of select="declname"/>
1552 <xsl:text>)</xsl:text>
1553 <xsl:value-of select="array"/>
1556 <xsl:value-of select="type"/>
1557 <xsl:text> </xsl:text>
1558 <xsl:value-of select="declname"/>
1561 <xsl:if test="count(defval) > 0"> = <xsl:value-of select="defval"/></xsl:if>
1562 <xsl:if test="not(position() = last())">,</xsl:if>
1566 <xsl:template match="*" mode="class-detail"/>
1569 <!--========== Namespace ==========-->
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>
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>
1582 <xsl:variable name="id">
1583 <xsl:call-template name="make-id">
1584 <xsl:with-param name="name" select="$name"/>
1585 </xsl:call-template>
1587 <xsl:variable name="doxygen-id">
1588 <xsl:value-of select="@id"/>
1590 <xsl:variable name="overload-count">
1591 <xsl:value-of select="count(../memberdef[name = $unqualified-name])"/>
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()"/>
1601 <xsl:if test="$overload-count > 1 and $overload-position = 1">
1602 [section:<xsl:value-of select="$id"/><xsl:text> </xsl:text><xsl:value-of select="$name"/>]
1604 <xsl:text>[indexterm1 </xsl:text>
1605 <xsl:value-of select="$name"/>
1606 <xsl:text>] </xsl:text>
1609 <xsl:when test="count(/doxygen/compounddef[@kind='group' and compoundname=$name]) > 0">
1610 <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1611 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
1616 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
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>
1628 </xsl:text><xsl:apply-templates select="templateparamlist" mode="class-detail"/>
1629 <xsl:text> </xsl:text><xsl:if test="string-length($stripped-type) > 0"><xsl:value-of
1630 select="$stripped-type"/><xsl:text> </xsl:text></xsl:if>``[link boost_asio.reference.<xsl:value-of
1631 select="$id"/>.overload<xsl:value-of select="position()"/><xsl:text> </xsl:text>
1632 <xsl:value-of select="name"/>]``(<xsl:apply-templates select="param" mode="class-detail"/>);
1633 <xsl:text> `` [''''&raquo;'''</xsl:text>
1634 <xsl:text> [link boost_asio.reference.</xsl:text>
1635 <xsl:value-of select="$id"/>.overload<xsl:value-of select="position()"/>
1636 <xsl:text> more...]]``
1640 <xsl:for-each select="/doxygen/compounddef[@kind='group' and compoundname=$name]">
1641 <xsl:apply-templates select="detaileddescription" mode="markup"/>
1644 <xsl:call-template name="header-requirements">
1645 <xsl:with-param name="file" select="location/@file"/>
1646 </xsl:call-template>
1650 [section:<xsl:if test="$overload-count = 1"><xsl:value-of select="$id"/></xsl:if>
1651 <xsl:if test="$overload-count > 1">overload<xsl:value-of select="$overload-position"/>
1652 </xsl:if><xsl:text> </xsl:text><xsl:value-of select="$name"/>
1653 <xsl:if test="$overload-count > 1"> (<xsl:value-of
1654 select="$overload-position"/> of <xsl:value-of select="$overload-count"/> overloads)</xsl:if>]
1656 <xsl:if test="$overload-count = 1">
1657 <xsl:text>[indexterm1 </xsl:text>
1658 <xsl:value-of select="$name"/>
1659 <xsl:text>] </xsl:text>
1662 <xsl:apply-templates select="briefdescription" mode="markup"/><xsl:text>
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>
1671 <xsl:when test="@kind='variable'">
1672 <xsl:call-template name="variable"/>
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>
1679 <xsl:when test="@kind='function'">
1680 <xsl:call-template name="function"/>
1685 </xsl:text><xsl:apply-templates select="detaileddescription" mode="markup"/>
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>
1695 <xsl:if test="$overload-count > 1 and $overload-position = $overload-count">