$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: oryol_at_[hidden]
Date: 2008-07-20 00:40:12
Author: jeremypack
Date: 2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
New Revision: 47621
URL: http://svn.boost.org/trac/boost/changeset/47621
Log:
Add new docs html and one header.
Added:
   sandbox/boost/extension/impl/adaptable_factory_set.hpp   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/cheese.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class_description.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_inefficiencies.html   (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_issues.html   (contents, props changed)
Added: sandbox/boost/extension/impl/adaptable_factory_set.hpp
==============================================================================
--- (empty file)
+++ sandbox/boost/extension/impl/adaptable_factory_set.hpp	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,30 @@
+/*
+ * Copyright Jeremy Pack 2008
+ * Distributed under the Boost Software License, Version 1.0. (See
+ * accompanying file LICENSE_1_0.txt or copy at
+ * http://www.boost.org/LICENSE_1_0.txt)
+ *
+ * See http://www.boost.org/ for latest version.
+ */
+
+// No header guard - this file is intended to be included multiple times.
+
+#define N BOOST_PP_ITERATION()
+template <class Derived
+          BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class Param)>
+void set(BOOST_PP_ENUM_PARAMS(N, Info i)) {
+  parameter_names_.resize(0);
+#define BOOST_EXTENSION_ADD_TO_LIST(z, n, data) \
+parameter_names_.push_back(BOOST_PP_CAT(i, n));
+  BOOST_PP_REPEAT(N, BOOST_EXTENSION_ADD_TO_LIST, );
+#undef BOOST_EXTENSION_ADD_TO_LIST
+  func_ = &impl::create_func
+    <Interface, Derived, Info, TypeInfo
+     BOOST_PP_COMMA_IF(N)
+     BOOST_PP_ENUM_PARAMS(N, Param)>;
+  check_func_ = &impl::check_func
+    <Info, TypeInfo BOOST_PP_COMMA_IF(N)
+     BOOST_PP_ENUM_PARAMS(N, Param)>;
+}
+#undef N
+
Added: sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/extension_reflection.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,183 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Boost.Reflection/Boost.Extension
+    Interoperability</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Extension">
+<link rel="prev" href="../boost/extensions/shared_library.html" title="Class shared_library">
+<link rel="next" href="reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/extensions/shared_library.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_extension.extension_reflection"></a><a href="extension_reflection.html" title=" Boost.Reflection/Boost.Extension
+    Interoperability"> Boost.Reflection/Boost.Extension
+    Interoperability</a></h2></div></div></div>
+<p>
+      Reflections are designed to work with Boost.Extension, or with shared libraries
+      in general. A simple example is included in examples<span class="emphasis"><em>extension</em></span>.
+    </p>
+<p>
+      Declaring the reflected class itself is similar to the process for doing the
+      same in Boost.Extension.
+    </p>
+<p>
+      Here's how the Jamfile for these libraries is defined. Note that, like in Boost.Extension,
+      one can rename the shared library extensions, for consistency across platforms.
+      Here, we use the .reflection suffix for each shared library. 
+</p>
+<pre class="programlisting"><span class="identifier">import</span> <span class="identifier">type</span> <span class="special">:</span> <span class="identifier">change</span><span class="special">-</span><span class="identifier">generated</span><span class="special">-</span><span class="identifier">target</span><span class="special">-</span><span class="identifier">suffix</span> <span class="special">;</span>
+<span class="identifier">import</span> <span class="identifier">type</span> <span class="special">:</span> <span class="identifier">change</span><span class="special">-</span><span class="identifier">generated</span><span class="special">-</span><span class="identifier">target</span><span class="special">-</span><span class="identifier">prefix</span> <span class="special">;</span>
+<span class="identifier">type</span><span class="special">.</span><span class="identifier">change</span><span class="special">-</span><span class="identifier">generated</span><span class="special">-</span><span class="identifier">target</span><span class="special">-</span><span class="identifier">suffix</span> <span class="identifier">SHARED_LIB</span> <span class="special">:</span> <span class="special">:</span> <span class="identifier">reflection</span> <span class="special">;</span>
+<span class="identifier">type</span><span class="special">.</span><span class="identifier">change</span><span class="special">-</span><span class="identifier">generated</span><span class="special">-</span><span class="identifier">target</span><span class="special">-</span><span class="identifier">prefix</span> <span class="identifier">SHARED_LIB</span> <span class="special">:</span> <span class="special">:</span> <span class="identifier">lib</span> <span class="special">;</span>
+<span class="identifier">exe</span> <span class="identifier">extension</span><span class="special">-</span><span class="identifier">reflection</span> <span class="special">:</span> <span class="identifier">extension</span><span class="special">/</span><span class="identifier">extension</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">car_lib</span> <span class="special">:</span> <span class="identifier">extension</span><span class="special">/</span><span class="identifier">car_lib</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special"><</span><span class="identifier">link</span><span class="special">></span><span class="identifier">shared</span> <span class="special">;</span>
+</pre>
+<p>
+    </p>
+<p>
+      The code in the shared library is defined in libs/reflection/examples/extension/car_lib.cpp.
+    </p>
+<p>
+      We define two classes to export as reflections. Note that they are not derived
+      from the same base class. If we were using Boost.Extension factories, this
+      would be required. 
+</p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">suv</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">suv</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">name</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">car</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span> <span class="special">{}</span>
+        <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_type</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="string">"It's an SUV."</span><span class="special">;</span> <span class="special">}</span>
+        <span class="special">~</span><span class="identifier">suv</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+<span class="special">};</span>
+
+<span class="keyword">class</span> <span class="identifier">compact</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">compact</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">name</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">car</span><span class="special">(</span><span class="identifier">name</span><span class="special">)</span> <span class="special">{}</span>
+        <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_type</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{</span> <span class="keyword">return</span> <span class="string">"It's a compact."</span><span class="special">;</span> <span class="special">}</span>
+        <span class="special">~</span><span class="identifier">compact</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+<span class="special">};</span>
+</pre>
+<p>
+    </p>
+<p>
+      Just like Boost.Extension, an external function needs to be defined that will
+      be called by the main module.
+    </p>
+<p>
+      extern "C" void BOOST_EXTENSION_EXPORT_DECL extension_export_car(std::map<std::string,
+      reflection> reflection_map) { reflection_map“<span class="quote">suv"</span>” .reflect<suv>()
+      .constructor<const char*>() .function(&suv::get_type, "get_type");
+      reflection_map“<span class="quote">suv"</span>” .reflect<compact>() .constructor<const
+      char*>() .function(&compact::get_type, "get_type"); }
+    </p>
+<p>
+      This is all that is necessary to export one constructor and one function for
+      each class.
+    </p>
+<p>
+      Now, in extension.cpp, we combine Boost.Extension and Boost.Reflection code
+      to load and use the reflections declared in the shared library.
+    </p>
+<p>
+      Create a mapping of reflections to strings that will be populated inside the
+      shared library. 
+</p>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="identifier">reflection</span><span class="special">></span> <span class="identifier">reflection_map</span><span class="special">;</span>
+</pre>
+<p>
+      Load the shared library using Boost.Extension. 
+</p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">shared_library</span> <span class="identifier">lib</span>
+  <span class="special">((</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="identifier">BOOST_EXTENSION_DIR_START</span><span class="special">)</span> <span class="special">+</span>
+   <span class="string">"libcar_lib.extension"</span><span class="special">).</span><span class="identifier">c_str</span><span class="special">());</span>
+<span class="identifier">lib</span><span class="special">.</span><span class="identifier">open</span><span class="special">();</span>
+</pre>
+<p>
+      Call an exported function to populate reflection_map. 
+</p>
+<pre class="programlisting"><span class="identifier">lib</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="keyword">void</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> 
+  <span class="identifier">reflection</span><span class="special">></span> <span class="special">&></span>
+  <span class="special">(</span><span class="string">"extension_export_car"</span><span class="special">)(</span><span class="identifier">reflection_map</span><span class="special">);</span>
+<span class="keyword">if</span> <span class="special">(</span><span class="identifier">reflection_map</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">!=</span> <span class="identifier">size_t</span><span class="special">(</span><span class="number">2</span><span class="special">))</span> <span class="special">{</span>
+  <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Could not load reflections!"</span><span class="special">;</span>
+  <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+      Pull out two reflections that were named "suv" and "compact"
+      respectively. 
+</p>
+<pre class="programlisting"><span class="identifier">reflection</span> <span class="special">&</span> <span class="identifier">first_reflection</span> <span class="special">=</span>
+  <span class="identifier">reflection_map</span><span class="special">[</span><span class="string">"suv"</span><span class="special">];</span>
+<span class="identifier">reflection</span> <span class="special">&</span> <span class="identifier">second_reflection</span> <span class="special">=</span>
+  <span class="identifier">reflection_map</span><span class="special">[</span><span class="string">"compact"</span><span class="special">];</span>
+</pre>
+<p>
+      Use the get_constructor function to find a constructor that takes one argument,
+      a const char*. 
+</p>
+<pre class="programlisting"><span class="identifier">instance_constructor</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*></span> <span class="identifier">first_constructor</span> <span class="special">=</span>
+  <span class="identifier">first_reflection</span><span class="special">.</span><span class="identifier">get_constructor</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*>();</span>
+</pre>
+<p>
+      Use the constructor retrieved to create an instance. Warning! instances should
+      only be used with functions and constructors generated by a single reflection
+      object. 
+</p>
+<pre class="programlisting"><span class="identifier">instance</span> <span class="identifier">first_instance</span> <span class="special">=</span> 
+  <span class="identifier">first_constructor</span><span class="special">(</span><span class="string">"First Instance"</span><span class="special">);</span>
+</pre>
+<p>
+      Get a function to call on this instance. 
+</p>
+<pre class="programlisting"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">reflections</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*></span> <span class="identifier">first_function</span> <span class="special">=</span>
+  <span class="identifier">first_reflection</span><span class="special">.</span><span class="identifier">get_function</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*>(</span><span class="string">"get_type"</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"First reflection: "</span> <span class="special"><<</span> <span class="identifier">first_function</span><span class="special">(</span><span class="identifier">first_instance</span><span class="special">)</span>
+          <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ </pre>
+<p>
+      Repeat the steps for the second reflection. 
+</p>
+<pre class="programlisting"><span class="identifier">instance_constructor</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*></span> <span class="identifier">second_constructor</span> <span class="special">=</span>
+  <span class="identifier">second_reflection</span><span class="special">.</span><span class="identifier">get_constructor</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*>();</span>
+<span class="identifier">instance</span> <span class="identifier">second_instance</span> <span class="special">=</span> 
+  <span class="identifier">second_constructor</span><span class="special">(</span><span class="string">"Second Instance"</span><span class="special">);</span>
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">reflections</span><span class="special">::</span><span class="identifier">function</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*></span> <span class="identifier">second_function</span> <span class="special">=</span>
+  <span class="identifier">second_reflection</span><span class="special">.</span><span class="identifier">get_function</span><span class="special"><</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*>(</span><span class="string">"get_type"</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="string">"Second reflection: "</span> <span class="special"><<</span> <span class="identifier">second_function</span><span class="special">(</span><span class="identifier">second_instance</span><span class="special">)</span>
+          <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</pre>
+<p>
+    </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../boost/extensions/shared_library.html"><img src="../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="reference.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,41 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title></title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="shared_library_class.html" title="shared_library
+      class">
+<link rel="next" href="../reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en"><div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries."></a>???</h3></div></div></div></div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack, Mariano G. Consoni<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_class.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/cheese.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/cheese.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,47 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Chees Section</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="shared_library_issues.html" title="
+      Other Issues with Shared Libraries">
+<link rel="next" href="shared_library_inefficiencies.html" title="
+      Possible Inefficiencies in Shared Libraries">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_issues.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries.cheese"></a> Chees Section</h3></div></div></div>
+<p>
+        Some cheese.
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_issues.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>shared_library
+      class</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="shared_library_inefficiencies.html" title="
+      Possible Inefficiencies in Shared Libraries">
+<link rel="next" href="../reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries.shared_library_class"></a><a href="shared_library_class.html" title="shared_library
+      class">shared_library
+      class</a></h3></div></div></div>
+<p>
+        Provides for automatic loading of named modules, and retrieval of functions
+        in those modules:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting"><span class="identifier">shared_library</span> <span class="identifier">m</span><span class="special">(</span><span class="string">"my_module_name"</span><span class="special">);</span>
+<span class="comment">// Call a function that returns an int and takes a float parameter.
+</span><span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">float</span><span class="special">>(</span><span class="string">"function_name"</span><span class="special">)(</span><span class="number">5.0f</span><span class="special">);</span>
+<span class="identifier">m</span><span class="special">.</span><span class="identifier">close</span><span class="special">();</span>
+</pre>
+<p>
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
+        function returns a function pointer that can be wrapped in Boost.Function
+        objects or used by itself.
+      </p>
+<p>
+        Reference: <code class="literal"><code class="computeroutput">shared_library</code></code>
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class_description.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_class_description.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+      shared_library class</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="shared_library_inefficiencies.html" title="
+      Possible Inefficiencies in Shared Libraries">
+<link rel="next" href="../reference.html" title="Reference">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries.shared_library_class_description"></a><a href="shared_library_class_description.html" title="
+      shared_library class">
+      shared_library class</a></h3></div></div></div>
+<p>
+        Provides for automatic loading of named modules, and retrieval of functions
+        in those modules:
+      </p>
+<p>
+        
+</p>
+<pre class="programlisting"><span class="identifier">shared_library</span> <span class="identifier">m</span><span class="special">(</span><span class="string">"my_module_name"</span><span class="special">);</span>
+<span class="comment">// Call a function that returns an int and takes a float parameter.
+</span><span class="keyword">int</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">m</span><span class="special">.</span><span class="identifier">get</span><span class="special"><</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">float</span><span class="special">>(</span><span class="string">"function_name"</span><span class="special">)(</span><span class="number">5.0f</span><span class="special">);</span>
+<span class="identifier">m</span><span class="special">.</span><span class="identifier">close</span><span class="special">();</span>
+</pre>
+<p>
+      </p>
+<p>
+        The <code class="computeroutput"><span class="identifier">get</span><span class="special">()</span></code>
+        function returns a function pointer that can be wrapped in Boost.Function
+        objects or used by itself.
+      </p>
+<p>
+        Reference: <code class="literal"><code class="computeroutput">shared_library</code></code>
+      </p>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack, Mariano G. Consoni<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="shared_library_inefficiencies.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_inefficiencies.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_inefficiencies.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+      Possible Inefficiencies in Shared Libraries</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="cheese.html" title=" Chees Section">
+<link rel="next" href="shared_library_class.html" title="shared_library
+      class">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cheese.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries.shared_library_inefficiencies"></a><a href="shared_library_inefficiencies.html" title="
+      Possible Inefficiencies in Shared Libraries">
+      Possible Inefficiencies in Shared Libraries</a></h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+          Position Independent Code:
+          <div class="itemizedlist"><ul type="circle">
+<li>
+              Since the shared library could be loaded to any part of the address
+              space, it cannot hard code addresses of its functions and data. This
+              must be resolved when the library is loaded.
+            </li>
+<li>
+              They can take a really long time to load.
+            </li>
+<li>
+              OS's attempt to mitigate this in various ways.
+            </li>
+</ul></div>
+</li>
+<li>
+          Extra levels of indirection in non-virtual function calls.
+          <div class="itemizedlist"><ul type="circle"><li>
+              No inlining across library boundaries.
+            </li></ul></div>
+</li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="cheese.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="shared_library_class.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_issues.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries/shared_library_issues.html	2008-07-20 00:40:09 EDT (Sun, 20 Jul 2008)
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>
+      Other Issues with Shared Libraries</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.67.2">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Extension">
+<link rel="up" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="../shared_libraries.html" title=" Shared Libraries">
+<link rel="next" href="cheese.html" title=" Chees Section">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr>
+<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../boost.png"></td>
+<td align="center">Home</td>
+<td align="center">Libraries</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
+<td align="center">More</td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../shared_libraries.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="cheese.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.shared_libraries.shared_library_issues"></a><a href="shared_library_issues.html" title="
+      Other Issues with Shared Libraries">
+      Other Issues with Shared Libraries</a></h3></div></div></div>
+<div class="itemizedlist"><ul type="disc">
+<li>
+          Separate symbol tables are required in each shared library.
+        </li>
+<li>
+          RTTI merging: Some compilers do it. Some don't.
+        </li>
+<li>
+          Optimizations are harder because the code must be position independent.
+        </li>
+<li>
+          The following may break binary compatibility between an application and
+          a shared library (among other things):
+          <div class="itemizedlist"><ul type="circle">
+<li>
+              Any part of shared class changes. Variable ordering, public<span class="emphasis"><em>private</em></span>
+              protected, virtual function implementations, add<span class="emphasis"><em>remove variables</em></span>
+              functions etc.
+            </li>
+<li>
+              Different compiler or compiler options used, or headers included differently.
+            </li>
+</ul></div>
+</li>
+</ul></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 2008 Jeremy Pack<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../shared_libraries.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../shared_libraries.html"><img src="../../../../doc/html/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../doc/html/images/home.png" alt="Home"></a><a accesskey="n" href="cheese.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>