Boost logo

Boost-Commit :

From: sixtrillion_at_[hidden]
Date: 2007-09-04 20:28:31


Author: sixtrillion
Date: 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
New Revision: 39123
URL: http://svn.boost.org/trac/boost/changeset/39123

Log:
Boost.Reflection initial docs
interpreter.qbk had some sort of error - I merely removed the offending text, which will probably have ruined the formatting. This will need to be looked into.

Added:
   sandbox/libs/reflection/doc/html/
   sandbox/libs/reflection/doc/html/HTML.manifest (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/
   sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/introduction.html (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html (contents, props changed)
   sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html (contents, props changed)
   sandbox/libs/reflection/doc/html/boostbook.css (contents, props changed)
   sandbox/libs/reflection/doc/html/index.html (contents, props changed)
Text files modified:
   sandbox/libs/reflection/doc/interpreter.qbk | 4 ++--
   1 files changed, 2 insertions(+), 2 deletions(-)

Added: sandbox/libs/reflection/doc/html/HTML.manifest
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/HTML.manifest 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,6 @@
+index.html
+boost_reflection/introduction.html
+boost_reflection/tutorials.html
+boost_reflection/tutorials/tutorial01.html
+boost_reflection/tutorials/tutorial02.html
+boost_reflection/interpreter.html

Added: sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/interpreter.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,111 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Interpreter prototype</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="tutorials/tutorial02.html" title=" Tutorial 2">
+</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="tutorials/tutorial02.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>
+</div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_reflection.interpreter"></a> Interpreter prototype</h2></div></div></div>
+<p>
+ In this section we will describe one of the examples. This example is special
+ because it is one of the reasons that motivated the development of the library.
+ </p>
+<p>
+ The example is a prototype of a C++ interpreter. Its main goal is to allow
+ the user to create instances of the reflected interfaces and then call its
+ methods via the reflection too.
+ </p>
+<p>
+ Nowadays the interpreter is just work-in-progress of a prototype. So you should
+ understand its uncompleteness, but now it has the following features:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ Instance creation with parameters.
+ </li>
+<li>
+ Method call with parameters.
+ </li>
+</ol></div>
+<p>
+ Anyway this features are limited to one interface (car interface) and also
+ constrained by the number of parameters (mostly because of pattern matching
+ issues).
+ </p>
+<p>
+ To show the current syntax we think that the best is to show an example session.
+ </p>
+<p>
+ In this session we create some instances and call the car::start method. Also
+ we show what happens when we predicated over unknown instances.
+ </p>
+<p>
+ Let's see the session:
+ </p>
+<div class="informaltable"><table class="table">
+<colgroup></colgroup>
+<tbody></tbody>
+</table></div>
+<p>
+ ^Boost.Reflection example - Prototype C++ interpreter.<br> <br> &gt; beetle=Compact(VWBeetle)<br>
+ Instance [beetle] created.<br> &gt; beetle.start()<br> VWBeetle started.<br>
+ --&gt; 1<br> &gt; betle.start()<br> Instance betle not found.<br> &gt;
+ test<br> The command "test" is invalid.<br> &gt; Cherokee=SUV(GrandCherokee)<br>
+ Instance [Cherokee] created.<br> &gt; Cherokee.start()<br> GrandCherokee
+ started.<br> --&gt; 1<br> &gt; Ch.start()<br> Instance Ch not found.<br>
+ ]
+ </p>
+<p>
+ In this session you could see:
+ </p>
+<div class="orderedlist"><ol type="1">
+<li>
+ we create a new Compact car instance. Its name is VWBeetle and we store it
+ in a instance variable called beetle.
+ </li>
+<li>
+ we call start in the newly created instance. It yields true.
+ </li>
+<li>
+ we try to call an unknown instance.
+ </li>
+<li>
+ we type a wrong command.
+ </li>
+<li>
+ then we create another instance and we start it.
+ </li>
+</ol></div>
+<p>
+ Of course this interpreter is very limited, but it shows the potential of Boost.Reflection
+ to develop software that use the meta-information of its structure.
+ </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorials/tutorial02.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>
+</div>
+</body>
+</html>

Added: sandbox/libs/reflection/doc/html/boost_reflection/introduction.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/introduction.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Introduction</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="next" href="tutorials.html" title="Tutorials">
+</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="../index.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="tutorials.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_reflection.introduction"></a> Introduction</h2></div></div></div>
+<p>
+ Reflection is the ability of a computer program to observe its structure and
+ possibly modify it. Our library tries to achieve that objective, easing the
+ development of this kind of programs and releasing the programmer of the task
+ of constructing a meta-level layer describing the classes and methods.
+ </p>
+<p>
+ In short, Boost.Reflection has a set of classes that allows the programmer
+ to store information about their C++ classes and methods, and use (call) them
+ using run-time identifiers. For example, we can create a class, attach some
+ meta-level information and then use run-time strings to select the method that
+ we want to call.
+ </p>
+<p>
+ Unfortunately, the library is not fully developed yet. It only has the basic
+ functionalities and it's not much than an interesting prototype on the subject.
+ </p>
+<p>
+ The documentation is, also, completely incomplete. Sorry. Look at tutorial
+ #1 for examples of basic usage.
+ </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../index.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="tutorials.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,49 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Tutorials</title>
+<link rel="stylesheet" href="../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="prev" href="introduction.html" title=" Introduction">
+<link rel="next" href="tutorials/tutorial01.html" title=" Tutorial 1">
+</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="introduction.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="tutorials/tutorial01.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_reflection.tutorials"></a>Tutorials</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section"> Tutorial 1</span></dt>
+<dt><span class="section"> Tutorial 2</span></dt>
+</dl></div>
+<p>
+ We only have two tutorials for now. The first is the basic example and it shows
+ the implemented functionalities. The second is about Boost.Extension integration.
+ </p>
+<p>
+ The tutorials code can be found in the examples folder.
+ </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="introduction.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="tutorials/tutorial01.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial01.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,210 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial 1</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="../tutorials.html" title="Tutorials">
+<link rel="next" href="tutorial02.html" title=" Tutorial 2">
+</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="../tutorials.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.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="tutorial02.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_reflection.tutorials.tutorial01"></a> Tutorial 1</h3></div></div></div>
+<p>
+ Let's create a car class. This will later be our reflected class.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="keyword">class</span> <span class="identifier">car</span> <span class="special">{</span>
+<span class="keyword">private</span><span class="special">:</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">name_</span><span class="special">;</span>
+ <span class="keyword">bool</span> <span class="identifier">started_</span><span class="special">;</span>
+
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="identifier">car</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">car_name</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">name_</span><span class="special">(</span><span class="identifier">car_name</span><span class="special">),</span> <span class="identifier">started_</span><span class="special">(</span><span class="keyword">false</span><span class="special">)</span> <span class="special">{}</span>
+
+ <span class="keyword">bool</span> <span class="identifier">start</span><span class="special">(</span><span class="keyword">void</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">&lt;&lt;</span> <span class="identifier">name_</span> <span class="special">&lt;&lt;</span> <span class="string">" started."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="identifier">started_</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
+ <span class="special">}</span>
+
+ <span class="keyword">bool</span> <span class="identifier">turn</span><span class="special">(</span><span class="keyword">float</span> <span class="identifier">angle</span><span class="special">)</span>
+ <span class="special">{</span>
+ <span class="keyword">if</span><span class="special">(</span><span class="identifier">started_</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">&lt;&lt;</span> <span class="string">"Turning "</span> <span class="special">&lt;&lt;</span> <span class="identifier">name_</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span><span class="special">&lt;&lt;</span> <span class="identifier">angle</span> <span class="special">&lt;&lt;</span> <span class="string">" degrees."</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="keyword">true</span><span class="special">;</span>
+ <span class="special">}</span> <span class="keyword">else</span> <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Cannot turn before starting the engine of "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">name_</span> <span class="special">&lt;&lt;</span> <span class="string">"."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="keyword">false</span><span class="special">;</span>
+ <span class="special">}</span>
+ <span class="special">}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">car</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>
+ It has methods for starting the engine and turning the car. Note that you
+ can't turn before starting the engine (it has state).
+ </p>
+<p>
+ Now we will create the reflection for this class. Let's note that we don't
+ have to add any MACRO to the original header file.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">reflection</span><span class="special">&lt;</span><span class="identifier">car</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">car_reflection</span><span class="special">(</span><span class="string">"A Car!"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ With this instruction we create a reflection. The template parameters describe
+ the reflected class and the type that we will use to store additional data
+ (the Info class). The parameter of the constructor is an instance of this
+ class, in this case we use it to store a short description.
+ </p>
+<p>
+ Now that we have created the reflection (i.e. the place where we will store
+ the meta-information of the class) we can start to add the methods.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;(&amp;</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">start</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">float</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(&amp;</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">turn</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ We are adding here the two methods. First we add the start method. The template
+ parameters indicate that we will identify this method by an int (3 in this
+ case) and that the return type is bool. We also have to provide a pointer
+ to the method.
+ </p>
+<p>
+ Then we add the second method. It's described by an string ("turn"
+ in this case), and it returns a bool. Also we say that it receives a float
+ and it's described by a string ("turn_angle").
+ </p>
+<p>
+ Having the methods stored in our reflection we can now see how to call them.
+ We have two ways.
+ </p>
+<p>
+ First, let's define one instance to use the reflection on:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">car</span> <span class="identifier">porsche_911</span><span class="special">(</span><span class="string">"Porsche 911"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ The simplest one is the following:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;(&amp;</span><span class="identifier">porsche_911</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ We just invoke the "call" method of the reflection. We provide
+ the instance and the description of the method. Let's see how to use it when
+ the method has parameters:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span>
+ <span class="keyword">float</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(&amp;</span><span class="identifier">porsche_911</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="special">.</span><span class="number">5f</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now we have to define with template arguments the way that we describe the
+ method and the parameters. Also we have to provide the instance, the method
+ description and the value of the parameter.
+ </p>
+<p>
+ Of course, this approach is a bit limited, because we have to provide a lot
+ of information to call the actual method.
+ </p>
+<p>
+ Using meta-level programming we are trying to achieve a flexibility that
+ could be mined with that requirements. Simply we don't have such information
+ most of the time. Because of that we implemented a second way to call methods.
+ </p>
+<p>
+ First we define a parameter_map. We will store there the possible parameters.
+ Note that we're defining an unneeded parameter. It'll be simply ignored.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">parameter_map</span> <span class="identifier">pm</span><span class="special">;</span>
+<span class="identifier">pm</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="keyword">float</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(.</span><span class="number">15f</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+<span class="identifier">pm</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="number">50</span><span class="special">,</span> <span class="string">"acceleration"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ Then we use this parameter_map to call the method and provide the needed
+ parameters. In this way we just have to know the method ID.
+ </p>
+<p>
+ For example in the case of turn we could now call it with:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="string">"turn"</span><span class="special">,</span> <span class="special">&amp;</span><span class="identifier">porsche_911</span><span class="special">,</span> <span class="identifier">pm</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ This are the basic functionalities of the library that allows the programmer
+ to generate the meta-class layer and use them dynamically at run-time.
+ </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../tutorials.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.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="tutorial02.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boost_reflection/tutorials/tutorial02.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,153 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title> Tutorial 2</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="../../index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="up" href="../tutorials.html" title="Tutorials">
+<link rel="prev" href="tutorial01.html" title=" Tutorial 1">
+<link rel="next" href="../interpreter.html" title=" Interpreter prototype">
+</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="tutorial01.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.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="../interpreter.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_reflection.tutorials.tutorial02"></a> Tutorial 2</h3></div></div></div>
+<p>
+ In this tutorial we show how Boost.Extension could be integrated with Boost.Reflection.
+ This relationship is important because we can load different factories with
+ Boost.Extension (from dynamic link libraries) and then reflect its instances
+ using Boost.Reflection.
+ </p>
+<p>
+ This example is based in the first tutorial , specially in the Reflection
+ part. So it's preferred that the reader is familiarized with that tutorial,
+ and of course has a basic understanding of Boost.Extension.
+ </p>
+<p>
+ First, we create a Boost.Extension based in our car interface. It defines
+ two derived classes, and has the export declaration.
+ </p>
+<p>
+
+</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="identifier">car</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="identifier">std</span><span class="special">::</span><span class="identifier">string</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">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</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 SUV."</span><span class="special">;</span> <span class="special">}</span>
+ <span class="keyword">virtual</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="identifier">car</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="identifier">std</span><span class="special">::</span><span class="identifier">string</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">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</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="keyword">virtual</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>
+
+</p>
+<pre class="programlisting">
+<span class="keyword">extern</span> <span class="string">"C"</span>
+<span class="keyword">void</span> <span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span>
+<span class="identifier">extension_export_car</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">::</span><span class="identifier">factory_map</span> <span class="special">&amp;</span> <span class="identifier">fm</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="identifier">suv</span><span class="special">,</span> <span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="string">"SUV"</span><span class="special">);</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="identifier">compact</span><span class="special">,</span> <span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(</span><span class="string">"Compact"</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ We compile it as a dynamic link library that will be loaded from the main
+ program.
+ </p>
+<p>
+ Having the library we could start our main program. We'll define our reflection
+ (creating it and adding methods) and them we'll cycle the factories, create
+ some instances and use our reflection to call methods.
+ </p>
+<p>
+ Let's define the reflection, very similar to the one in tutorial 1:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">boost</span><span class="special">::</span><span class="identifier">extension</span><span class="special">::</span><span class="identifier">reflection</span><span class="special">&lt;</span><span class="identifier">car</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="identifier">car_reflection</span><span class="special">(</span><span class="string">"A Car!"</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;(&amp;</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">start</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+<span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">add</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">float</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;(&amp;</span><span class="identifier">car</span><span class="special">::</span><span class="identifier">turn</span><span class="special">,</span> <span class="string">"turn"</span><span class="special">,</span> <span class="string">"turn_angle"</span><span class="special">);</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now we load the dynamic link library:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libcar_lib.extension"</span><span class="special">,</span>
+ <span class="string">"extension_export_car"</span><span class="special">);</span>
+<span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">factory_list</span> <span class="special">=</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;();</span>
+</pre>
+<p>
+ </p>
+<p>
+ Now, the interesting part. We iterate the factories searching for a Compacts
+ factory. When we find it we create an instance, and then we use our car reflection
+ to call the 3 method (start).
+ </p>
+<p>
+
+</p>
+<pre class="programlisting">
+<span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">car</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">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">current_car</span> <span class="special">=</span> <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+ <span class="identifier">current_car</span> <span class="special">!=</span> <span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+ <span class="special">++</span><span class="identifier">current_car</span><span class="special">)</span>
+<span class="special">{</span>
+ <span class="keyword">if</span><span class="special">(</span><span class="identifier">current_car</span><span class="special">-&gt;</span><span class="identifier">get_info</span><span class="special">()</span> <span class="special">==</span> <span class="string">"Compact"</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">car</span> <span class="special">*</span><span class="identifier">beetle</span><span class="special">(</span><span class="identifier">current_car</span><span class="special">-&gt;</span><span class="identifier">create</span><span class="special">(</span><span class="string">"VW New Beetle"</span><span class="special">));</span>
+ <span class="identifier">car_reflection</span><span class="special">.</span><span class="identifier">call</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">&gt;(</span><span class="identifier">beetle</span><span class="special">,</span> <span class="number">3</span><span class="special">);</span>
+ <span class="keyword">delete</span> <span class="identifier">beetle</span><span class="special">;</span>
+ <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+ </p>
+<p>
+ In this way you can load instance factories dynamically, and then use your
+ reflections to access your methods.
+ </p>
+</div>
+<table width="100%"><tr>
+<td align="left"></td>
+<td align="right"><small>Copyright © 2007 Mariano G. Consoni, Jeremy Pack</small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tutorial01.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../tutorials.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="../interpreter.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/reflection/doc/html/boostbook.css
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/boostbook.css 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,511 @@
+/*=============================================================================
+ Copyright (c) 2004 Joel de Guzman
+ http://spirit.sourceforge.net/
+
+ Use, modification and distribution is subject to 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)
+=============================================================================*/
+
+/*=============================================================================
+ Body defaults
+=============================================================================*/
+
+ body
+ {
+ margin: 1em;
+ font-family: sans-serif;
+ }
+
+/*=============================================================================
+ Paragraphs
+=============================================================================*/
+
+ p
+ {
+ text-align: left;
+ font-size: 10pt;
+ line-height: 1.15;
+ }
+
+/*=============================================================================
+ Program listings
+=============================================================================*/
+
+ /* Code on paragraphs */
+ p tt.computeroutput
+ {
+ font-size: 9pt;
+ }
+
+ pre.synopsis
+ {
+ font-size: 90%;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ .programlisting,
+ .screen
+ {
+ font-size: 9pt;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ /* Program listings in tables don't get borders */
+ td .programlisting,
+ td .screen
+ {
+ margin: 0pc 0pc 0pc 0pc;
+ padding: 0pc 0pc 0pc 0pc;
+ }
+
+/*=============================================================================
+ Headings
+=============================================================================*/
+
+ h1, h2, h3, h4, h5, h6
+ {
+ text-align: left;
+ margin: 1em 0em 0.5em 0em;
+ font-weight: bold;
+ }
+
+ h1 { font: 140% }
+ h2 { font: bold 140% }
+ h3 { font: bold 130% }
+ h4 { font: bold 120% }
+ h5 { font: italic 110% }
+ h6 { font: italic 100% }
+
+ /* Top page titles */
+ title,
+ h1.title,
+ h2.title
+ h3.title,
+ h4.title,
+ h5.title,
+ h6.title,
+ .refentrytitle
+ {
+ font-weight: bold;
+ margin-bottom: 1pc;
+ }
+
+ h1.title { font-size: 140% }
+ h2.title { font-size: 140% }
+ h3.title { font-size: 130% }
+ h4.title { font-size: 120% }
+ h5.title { font-size: 110% }
+ h6.title { font-size: 100% }
+
+ .section h1
+ {
+ margin: 0em 0em 0.5em 0em;
+ font-size: 140%;
+ }
+
+ .section h2 { font-size: 140% }
+ .section h3 { font-size: 130% }
+ .section h4 { font-size: 120% }
+ .section h5 { font-size: 110% }
+ .section h6 { font-size: 100% }
+
+ /* Code on titles */
+ h1 tt.computeroutput { font-size: 140% }
+ h2 tt.computeroutput { font-size: 140% }
+ h3 tt.computeroutput { font-size: 130% }
+ h4 tt.computeroutput { font-size: 120% }
+ h5 tt.computeroutput { font-size: 110% }
+ h6 tt.computeroutput { font-size: 100% }
+
+/*=============================================================================
+ Author
+=============================================================================*/
+
+ h3.author
+ {
+ font-size: 100%
+ }
+
+/*=============================================================================
+ Lists
+=============================================================================*/
+
+ li
+ {
+ font-size: 10pt;
+ line-height: 1.3;
+ }
+
+ /* Unordered lists */
+ ul
+ {
+ text-align: left;
+ }
+
+ /* Ordered lists */
+ ol
+ {
+ text-align: left;
+ }
+
+/*=============================================================================
+ Links
+=============================================================================*/
+
+ a
+ {
+ text-decoration: none; /* no underline */
+ }
+
+ a:hover
+ {
+ text-decoration: underline;
+ }
+
+/*=============================================================================
+ Spirit style navigation
+=============================================================================*/
+
+ .spirit-nav
+ {
+ text-align: right;
+ }
+
+ .spirit-nav a
+ {
+ color: white;
+ padding-left: 0.5em;
+ }
+
+ .spirit-nav img
+ {
+ border-width: 0px;
+ }
+
+/*=============================================================================
+ Table of contents
+=============================================================================*/
+
+ .toc
+ {
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.1pc 1pc 0.1pc 1pc;
+ font-size: 80%;
+ line-height: 1.15;
+ }
+
+ .boost-toc
+ {
+ float: right;
+ padding: 0.5pc;
+ }
+
+/*=============================================================================
+ Tables
+=============================================================================*/
+
+ .table-title,
+ div.table p.title
+ {
+ margin-left: 4%;
+ padding-right: 0.5em;
+ padding-left: 0.5em;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ width: 92%;
+ margin-left: 4%;
+ margin-right: 4%;
+ }
+
+ div.informaltable table,
+ div.table table
+ {
+ padding: 4px;
+ }
+
+ /* Table Cells */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ padding: 0.5em;
+ text-align: left;
+ font-size: 9pt;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ padding: 0.5em 0.5em 0.5em 0.5em;
+ border: 1pt solid white;
+ font-size: 80%;
+ }
+
+/*=============================================================================
+ Blurbs
+=============================================================================*/
+
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ font-size: 9pt; /* A little bit smaller than the main text */
+ line-height: 1.2;
+ display: block;
+ margin: 1pc 4% 0pc 4%;
+ padding: 0.5pc 0.5pc 0.5pc 0.5pc;
+ }
+
+ p.blurb img
+ {
+ padding: 1pt;
+ }
+
+/*=============================================================================
+ Variable Lists
+=============================================================================*/
+
+ /* Make the terms in definition lists bold */
+ div.variablelist dl dt,
+ span.term
+ {
+ font-weight: bold;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td
+ {
+ text-align: left;
+ vertical-align: top;
+ padding: 0em 2em 0em 0em;
+ font-size: 10pt;
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+ div.variablelist dl dt
+ {
+ margin-bottom: 0.2em;
+ }
+
+ div.variablelist dl dd
+ {
+ margin: 0em 0em 0.5em 2em;
+ font-size: 10pt;
+ }
+
+ div.variablelist table tbody tr td p,
+ div.variablelist dl dd p
+ {
+ margin: 0em 0em 0.5em 0em;
+ line-height: 1;
+ }
+
+/*=============================================================================
+ Misc
+=============================================================================*/
+
+ /* Title of books and articles in bibliographies */
+ span.title
+ {
+ font-style: italic;
+ }
+
+ span.underline
+ {
+ text-decoration: underline;
+ }
+
+ span.strikethrough
+ {
+ text-decoration: line-through;
+ }
+
+ /* Copyright, Legal Notice */
+ div div.legalnotice p
+ {
+ text-align: left
+ }
+
+/*=============================================================================
+ Colors
+=============================================================================*/
+
+ @media screen
+ {
+ /* Links */
+ a
+ {
+ color: #005a9c;
+ }
+
+ a:visited
+ {
+ color: #9c5a9c;
+ }
+
+ h1 a, h2 a, h3 a, h4 a, h5 a, h6 a,
+ h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover,
+ h1 a:visited, h2 a:visited, h3 a:visited, h4 a:visited, h5 a:visited, h6 a:visited
+ {
+ text-decoration: none; /* no underline */
+ color: #000000;
+ }
+
+ /* Syntax Highlighting */
+ .keyword { color: #0000AA; }
+ .identifier { color: #000000; }
+ .special { color: #707070; }
+ .preprocessor { color: #402080; }
+ .char { color: teal; }
+ .comment { color: #800000; }
+ .string { color: teal; }
+ .number { color: teal; }
+ .white_bkd { background-color: #FFFFFF; }
+ .dk_grey_bkd { background-color: #999999; }
+
+ /* Copyright, Legal Notice */
+ .copyright
+ {
+ color: #666666;
+ font-size: small;
+ }
+
+ div div.legalnotice p
+ {
+ color: #666666;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Blurbs */
+ div.note,
+ div.tip,
+ div.important,
+ div.caution,
+ div.warning,
+ p.blurb
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid #DCDCDC;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ background-color: #F0F0F0;
+ border: 1px solid #DCDCDC;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ color: #00A000;
+ }
+ }
+
+ @media print
+ {
+ /* Links */
+ a
+ {
+ color: black;
+ }
+
+ a:visited
+ {
+ color: black;
+ }
+
+ .spirit-nav
+ {
+ display: none;
+ }
+
+ /* Program listing */
+ pre.synopsis
+ {
+ border: 1px solid gray;
+ }
+
+ .programlisting,
+ .screen
+ {
+ border: 1px solid gray;
+ }
+
+ td .programlisting,
+ td .screen
+ {
+ border: 0px solid #DCDCDC;
+ }
+
+ /* Table of contents */
+ .toc
+ {
+ border: 1px solid gray;
+ }
+
+ .informaltable table,
+ .table table
+ {
+ border: 1px solid gray;
+ border-collapse: collapse;
+ }
+
+ /* Tables */
+ div.informaltable table tr td,
+ div.table table tr td
+ {
+ border: 1px solid gray;
+ }
+
+ div.informaltable table tr th,
+ div.table table tr th
+ {
+ border: 1px solid gray;
+ }
+
+ /* Misc */
+ span.highlight
+ {
+ font-weight: bold;
+ }
+ }

Added: sandbox/libs/reflection/doc/html/index.html
==============================================================================
--- (empty file)
+++ sandbox/libs/reflection/doc/html/index.html 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Chapter 1. Boost.Reflection 1.0</title>
+<link rel="stylesheet" href="boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.68.1">
+<link rel="start" href="index.html" title="Chapter 1. Boost.Reflection 1.0">
+<link rel="next" href="boost_reflection/introduction.html" title=" Introduction">
+</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="n" href="boost_reflection/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="chapter" lang="en">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="boost_reflection"></a>Chapter 1. Boost.Reflection 1.0</h2></div>
+<div><p class="copyright">Copyright © 2007 Mariano G. Consoni, Jeremy Pack</p></div>
+<div><div class="legalnotice">
+<a name="id2555061"></a><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></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section"> Introduction</span></dt>
+<dt><span class="section">Tutorials</span></dt>
+<dd><dl>
+<dt><span class="section"> Tutorial 1</span></dt>
+<dt><span class="section"> Tutorial 2</span></dt>
+</dl></dd>
+<dt><span class="section"> Interpreter prototype</span></dt>
+</dl>
+</div>
+</div>
+<table width="100%"><tr>
+<td align="left"><p><small>Last revised: April 30, 2007 at 12:00:00 GMT</small></p></td>
+<td align="right"><small></small></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="boost_reflection/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+</body>
+</html>

Modified: sandbox/libs/reflection/doc/interpreter.qbk
==============================================================================
--- sandbox/libs/reflection/doc/interpreter.qbk (original)
+++ sandbox/libs/reflection/doc/interpreter.qbk 2007-09-04 20:28:30 EDT (Tue, 04 Sep 2007)
@@ -35,7 +35,7 @@
 Let's see the session:
 
 [table
-[[[^Boost.Reflection example - Prototype C++ interpreter.\n
+^Boost.Reflection example - Prototype C++ interpreter.\n
 \n
> beetle=Compact(VWBeetle)\n
 Instance [beetle] created.\n
@@ -52,7 +52,7 @@
 GrandCherokee started.\n
  --> 1\n
> Ch.start()\n
-Instance Ch not found.\n]]]]
+Instance Ch not found.\n]
 
 In this session you could see:
 


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk