Boost logo

Boost-Commit :

From: oryol_at_[hidden]
Date: 2008-07-15 15:09:40


Author: jeremypack
Date: 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
New Revision: 47453
URL: http://svn.boost.org/trac/boost/changeset/47453

Log:
Doc changes, minor fixes etc.

Added:
   sandbox/libs/extension/doc/html/boost/
   sandbox/libs/extension/doc/html/boost/extensions/
   sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/
   sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/generic_map_holder.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/map_holder.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/factory.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/factory_map.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/load_single_library.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost/extensions/shared_library.html (contents, props changed)
   sandbox/libs/extension/doc/html/boost_extension/reference.html (contents, props changed)
   sandbox/libs/extension/doc/html/images/
   sandbox/libs/extension/doc/html/images/blank.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/caution.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/draft.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/home.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/important.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/next.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/next_disabled.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/note.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/prev.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/prev_disabled.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/tip.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/toc-blank.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/toc-minus.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/toc-plus.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/up.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/up_disabled.png (contents, props changed)
   sandbox/libs/extension/doc/html/images/warning.png (contents, props changed)
Binary files modified:
   sandbox/libs/extension/doc/html/boost_extension/appendices.html
Text files modified:
   sandbox/boost/extension/common.hpp | 4
   sandbox/boost/extension/convenience.hpp | 32 ++++-
   sandbox/boost/extension/extension.hpp | 13 +
   sandbox/boost/extension/factory.hpp | 74 ++++++++++++
   sandbox/boost/extension/factory_map.hpp | 64 ++++++++-
   sandbox/boost/extension/impl/factory.hpp | 31 +---
   sandbox/boost/extension/impl/library_impl.hpp | 10
   sandbox/boost/extension/impl/shared_library.hpp | 10 +
   sandbox/boost/extension/impl/typeinfo.hpp | 5
   sandbox/boost/extension/shared_library.hpp | 96 ++++++++++++++-
   sandbox/boost/reflection/adapter.hpp | 19 +++
   sandbox/boost/reflection/constructor_info.hpp | 2
   sandbox/boost/reflection/data.hpp | 4
   sandbox/boost/reflection/generic_constructor.hpp | 2
   sandbox/boost/reflection/impl/function.hpp | 6
   sandbox/boost/reflection/impl/reflection.hpp | 8
   sandbox/boost/reflection/impl/reflection_functions.hpp | 8
   sandbox/boost/reflection/parameter.hpp | 16 +-
   sandbox/boost/reflection/parameter_map.hpp | 2
   sandbox/libs/extension/doc/Jamfile.v2 | 48 ++++++--
   sandbox/libs/extension/doc/appendices.qbk | 2
   sandbox/libs/extension/doc/appendix_a.qbk | 2
   sandbox/libs/extension/doc/appendix_b.qbk | 2
   sandbox/libs/extension/doc/extension.qbk | 12 +
   sandbox/libs/extension/doc/factories.qbk | 2
   sandbox/libs/extension/doc/faq.qbk | 10
   sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_b.html | 22 ++-
   sandbox/libs/extension/doc/html/boost_extension/factories.html | 21 +-
   sandbox/libs/extension/doc/html/boost_extension/info.html | 132 ++++++++++-----------
   sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html | 31 ++--
   sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html | 75 +++++++-----
   sandbox/libs/extension/doc/html/boost_extension/tutorials.html | 162 +++++++++++++++++++++++++-
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html | 80 ++++++-------
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html | 106 ++++++++---------
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html | 141 ++++++++++-------------
   sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html | 236 +++++++++++++++++++--------------------
   sandbox/libs/extension/doc/html/index.html | 74 ++++++++++--
   sandbox/libs/extension/doc/info.qbk | 2
   sandbox/libs/extension/doc/introduction.qbk | 2
   sandbox/libs/extension/doc/performance_analysis.qbk | 2
   sandbox/libs/extension/doc/quick_start.qbk | 2
   sandbox/libs/extension/doc/shared_libraries.qbk | 2
   sandbox/libs/extension/doc/tutorial1.qbk | 2
   sandbox/libs/extension/doc/tutorial2.qbk | 2
   sandbox/libs/extension/doc/tutorial3.qbk | 2
   sandbox/libs/extension/doc/tutorial4.qbk | 2
   sandbox/libs/extension/doc/tutorial5.qbk | 2
   sandbox/libs/extension/doc/tutorial6.qbk | 2
   sandbox/libs/extension/doc/tutorials.qbk | 2
   sandbox/libs/extension/test/construction.cpp | 4
   sandbox/libs/extension/test/double_param_test.cpp | 7
   sandbox/libs/extension/test/single_param_test.cpp | 4
   sandbox/libs/reflection/examples/Jamfile.v2 | 2
   sandbox/libs/reflection/examples/extension/car_lib.cpp | 18 +-
   sandbox/libs/reflection/examples/extension/extension.cpp | 8
   sandbox/libs/reflection/test/shared_library_test.cpp | 25 ++-
   56 files changed, 1046 insertions(+), 610 deletions(-)

Modified: sandbox/boost/extension/common.hpp
==============================================================================
--- sandbox/boost/extension/common.hpp (original)
+++ sandbox/boost/extension/common.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -19,6 +19,10 @@
 #include <boost/preprocessor/repetition.hpp>
 #include <boost/preprocessor/iteration/iterate.hpp>
 #include <boost/concept_check.hpp>
+/** This determines the maximum number of parameters that a constructor
+ * or exported shared library function can have. 10 is the same default
+ * as Boost.Function.
+ */
 #ifndef BOOST_EXTENSION_MAX_FUNCTOR_PARAMS
 #define BOOST_EXTENSION_MAX_FUNCTOR_PARAMS 10
 #endif

Modified: sandbox/boost/extension/convenience.hpp
==============================================================================
--- sandbox/boost/extension/convenience.hpp (original)
+++ sandbox/boost/extension/convenience.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -18,20 +18,38 @@
 
 namespace boost {
 namespace extensions {
-
-inline void load_single_library(factory_map & current_factory_map,
- const char * library_path,
- const char * external_function_name) {
+/** \brief Load factories from the given library and function.
+ *
+ * Add any exported factories from the given library with the
+ * given function name. This uses shared_library::get internally.
+ * The function must have the signature void (factory_map&).
+ * For more general loading of shared libraries, use the shared_library
+ * class directly.
+ * If the function is not found, false is returned.
+ *
+ * \param current_factory_map The factory map to load classes into. It is
+ * not required to be empty.
+ * \param library_path The relative or absolute path to the library to load.
+ * \param external_function_name The name of an exported function in the library
+ * with the signature void (factory_map&).
+ * \return True on success.
+ * \pre None.
+ * \post None.
+ */
+inline bool load_single_library(factory_map& current_factory_map,
+ const std::string& library_path,
+ const std::string& external_function_name) {
     shared_library lib(library_path);
     if (!lib.open()) {
- return;
+ return false;
     }
- void (*func)(factory_map &) =
+ void (*func)(factory_map&) =
       lib.shared_library::get<void, factory_map &>(external_function_name);
     if (!func) {
- return;
+ return false;
     }
     (*func)(current_factory_map);
+ return true;
 }
 } // namespace extensions
 } // namespace boost

Modified: sandbox/boost/extension/extension.hpp
==============================================================================
--- sandbox/boost/extension/extension.hpp (original)
+++ sandbox/boost/extension/extension.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,6 +12,15 @@
 
 #ifndef BOOST_EXTENSION_EXTENSION_HPP
 #define BOOST_EXTENSION_EXTENSION_HPP
-
+#ifdef BOOST_EXTENSION_DOXYGEN_INVOKED
+/** Macro to place in a function definition to cause it
+ * to be exported, if necessary on the given platform and
+ * with the current compiler settings. This is always required
+ * for MSVC and other compilers, but only required depending on
+ * compiler settings for GCC and other compilers.
+ */
+#define BOOST_EXTENSION_EXPORT_DECL
+#else
 #include <boost/extension/impl/decl.hpp>
-#endif
+#endif // BOOST_EXTENSION_EXPORT_DECL
+#endif // BOOST_EXTENSION_EXTENSION_HPP

Modified: sandbox/boost/extension/factory.hpp
==============================================================================
--- sandbox/boost/extension/factory.hpp (original)
+++ sandbox/boost/extension/factory.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -17,16 +17,83 @@
 
 namespace boost {
 namespace extensions {
+/* For Doxygen, and for easier readability by users, a
+ * simplified version of this class is provided, but never
+ * compiled. The actual class definition is in impl/factory.hpp.
+ */
+#ifdef BOOST_EXTENSION_DOXYGEN_INVOKED
+/** This class is a function object that returns
+ * new instances of type T, using factories that
+ * take parameters described in the variable length
+ * list Params...
+ */
+template <class T, class Params... >
+class factory {
+public:
+ /** \brief Set the factory function for this factory.
+ *
+ * This sets the factory function
+ * to the constructor for type D.
+ * Example: factory<Base, int, int> f; f.set<Derived>();
+ */
+ template <class D>
+ void set() {
+ this->func = &impl::create_function<
+ T, D BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N,Param)
+ >::create;
+ }
+
+ /** \brief Default constructor.
+ * On creation, this factory is empty.
+ */
+ factory() : func(0) {}
+
+ /** \brief Standard copy constructor.
+ */
+ factory(factory<T> const& first) : func(first.func) {}
+
+ /** \brief Standard assignment operator.
+ */
+ factory& operator=(factory<T> const& first) {
+ this->func = first->func;
+ return *this;
+ }
+
+ /** \brief Returns true if set has been called.
+ *
+ * Until set is called, a factory cannot be used. This
+ * function can be used to determine if set has been called.
+ * \pre None.
+ * \post None.
+ * \return True if the factory is initialized (ie, set has been called).
+ */
+ bool is_valid() const { return this->func != 0; }
+
+ /** Returns an instance of T (but does NOT retain ownership of the instance).
+ * \param Params... The parameters described in the type of this factory.
+ * \return An instance of T.
+ * \pre is_valid() == true.
+ * \post None.
+ */
+ T* create(Params...) const {
+ if (this->func) {
+ return this->func(BOOST_PP_ENUM_PARAMS(N, p));
+ }
+ else {
+ return 0;
+ }
+ }
+};
 
-
+#else
 #define N BOOST_EXTENSION_MAX_FUNCTOR_PARAMS
-
+namespace impl {
 template <class T, class D
           BOOST_PP_COMMA_IF(N)
           BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( \
             BOOST_PP_INC(N), class Param, void) >
 struct create_function;
-
+} // namespace impl
 #undef N
 
 #define N BOOST_EXTENSION_MAX_FUNCTOR_PARAMS
@@ -44,6 +111,7 @@
   (0, BOOST_PP_INC(BOOST_EXTENSION_MAX_FUNCTOR_PARAMS) - 1)
 # define BOOST_PP_FILENAME_1 <boost/extension/impl/factory.hpp>
 # include BOOST_PP_ITERATE()
+#endif
 } // namespace extensions
 } // namespace boost
 

Modified: sandbox/boost/extension/factory_map.hpp
==============================================================================
--- sandbox/boost/extension/factory_map.hpp (original)
+++ sandbox/boost/extension/factory_map.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -20,12 +20,58 @@
 namespace boost {
 namespace extensions {
 
+/** \brief A collection of factories of various types.
+ * \tparam TypeInfo The type used for TypeInfo. By default,
+ * RTTI is used, but users can define their own TypeInfo.
+ * See impl/typeinfo.hpp.
+ */
 template <class TypeInfo>
-class basic_factory_map
-{
-
+class basic_factory_map {
 public:
+ ~basic_factory_map() {
+ for (typename std::map<TypeInfo, generic_map_holder*>::iterator
+ it =maps_.begin(); it != maps_.end(); ++it) {
+ delete it->second;
+ }
+ }
+/* Include simplified versions of the get and conversion member
+ * functions for Doxygen, and to make it easier for readers of
+ * this file.
+ */
+#ifdef BOOST_EXTENSION_DOXYGEN_INVOKED
+ /** \brief Return a map of the factories that match the given interface.
+ * \tparam Interface The type of the interface returned by factories in
+ * the requested map.
+ * \tparam Info An arbitrary type that is stored with each factory,
+ * to differentiate them. By default, strings are used.
+ * \tparam Params The constructor params for the requested factories.
+ * \return A map of the requested factory type.
+ *
+ * This returns a map of the given type of factories. It can return
+ * an empty map if no such factories are found.
+ */
+ template <class Interface, class Info, class Params...>
+ std::map<Info, factory<Interface, Params...> >& get() {
+ // EMPTY - THIS IS ONLY HERE FOR DOXYGEN.
+ }
+
+ /** \brief A conversion operator that calls get().
+ *
+ * A conversion operator for convenience in calling functions
+ * that take a map of factories.
+ * This is identical to the get() function.
+ */
+ template <class Interface, class Info, class Params...>
+ operator
+ std::map<
+ Info,
+ factory<Interface, Params...>
+ >
+ () {
+ // EMPTY - THIS IS ONLY HERE FOR DOXYGEN.
+ }
 
+#else
   // generate get and conversion template member functions from the
   // specification in impl/
 # define BOOST_PP_ITERATION_LIMITS (0, \
@@ -33,13 +79,6 @@
 # define BOOST_PP_FILENAME_1 <boost/extension/impl/factory_map.hpp>
 # include BOOST_PP_ITERATE()
 
- ~basic_factory_map() {
- for (typename std::map<TypeInfo, generic_map_holder*>::iterator
- it =maps_.begin(); it != maps_.end(); ++it) {
- delete it->second;
- }
- }
-
 private:
 
   struct generic_map_holder {
@@ -50,8 +89,11 @@
   struct map_holder : generic_map_holder, T {};
 
   std::map<TypeInfo, generic_map_holder*> maps_;
+#endif
 };
-
+/** A typedef for convenience - provides the most common
+ * type of basic_factory_map.
+ */
 typedef basic_factory_map<default_type_info> factory_map;
 
 } // namespace extensions

Modified: sandbox/boost/extension/impl/factory.hpp
==============================================================================
--- sandbox/boost/extension/impl/factory.hpp (original)
+++ sandbox/boost/extension/impl/factory.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -11,7 +11,7 @@
 // No header guard - this file is intended to be included multiple times.
 
 # define N BOOST_PP_ITERATION()
-
+namespace impl {
 template <
   class T,
   class D
@@ -21,14 +21,12 @@
   T,
   D
   BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, Param)
->
-{
- static T * create(BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p) )
- {
+> {
+ static T * create(BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p) ) {
     return new D(BOOST_PP_ENUM_PARAMS(N, p));
   }
 };
-
+} // namespace impl
 
 
 template <class T BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N, class Param) >
@@ -37,9 +35,8 @@
 public:
 
   template <class D>
- void set()
- {
- this->func = &create_function<
+ void set() {
+ this->func = &impl::create_function<
         T, D BOOST_PP_COMMA_IF(N) BOOST_PP_ENUM_PARAMS(N,Param)
>::create;
   }
@@ -48,31 +45,25 @@
 
   factory(factory<T> const& first) : func(first.func) {}
 
- factory& operator=(factory<T> const& first)
- {
+ factory& operator=(factory<T> const& first) {
     this->func = first->func;
     return *this;
   }
 
- bool is_valid() { return this->func != 0; }
+ bool is_valid() const { return this->func != 0; }
 
- T* create(BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p))
- {
- if (this->func)
- {
+ T* create(BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p)) const {
+ if (this->func) {
       return this->func(BOOST_PP_ENUM_PARAMS(N, p));
     }
- else
- {
+ else {
       return 0;
     }
   }
 
 private:
-
   typedef T* (*func_ptr_type)(BOOST_PP_ENUM_PARAMS(N, Param));
   func_ptr_type func;
-
 };
 
 #undef N
\ No newline at end of file

Modified: sandbox/boost/extension/impl/library_impl.hpp
==============================================================================
--- sandbox/boost/extension/impl/library_impl.hpp (original)
+++ sandbox/boost/extension/impl/library_impl.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -34,11 +34,11 @@
 namespace impl {
   typedef HMODULE library_handle;
   typedef FARPROC generic_function_ptr;
- inline library_handle load_shared_library(const char * libraryName) {
- return LoadLibraryA(libraryName);
+ inline library_handle load_shared_library(const char* library_name) {
+ return LoadLibraryA(library_name);
   }
   inline generic_function_ptr get_function(library_handle handle,
- const char * function_name) {
+ const char* function_name) {
     return GetProcAddress(handle, function_name);
   }
   inline bool close_shared_library(library_handle handle) {
@@ -56,11 +56,11 @@
 namespace impl {
   typedef void * library_handle;
   typedef void * generic_function_ptr;
- inline library_handle load_shared_library(const char * library_name) {
+ inline library_handle load_shared_library(const char* library_name) {
     return dlopen(library_name, RTLD_LAZY);
   }
   inline generic_function_ptr get_function(library_handle handle,
- const char * function_name) {
+ const char* function_name) {
     return dlsym(handle, function_name);
   }
   inline bool close_shared_library(library_handle handle) {

Modified: sandbox/boost/extension/impl/shared_library.hpp
==============================================================================
--- sandbox/boost/extension/impl/shared_library.hpp (original)
+++ sandbox/boost/extension/impl/shared_library.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -10,10 +10,14 @@
  */
 # define N BOOST_PP_ITERATION()
 // No ifndef headers - this is meant to be included multiple times.
-template <class ReturnValue BOOST_PP_COMMA_IF(N)
+template <class ReturnValue
+ BOOST_PP_COMMA_IF(N)
           BOOST_PP_ENUM_PARAMS(N, class Param) >
-ReturnValue (*get(const std::string& name))(BOOST_PP_ENUM_PARAMS(N, Param)) {
+ReturnValue (*get(const std::string& name))
+ (BOOST_PP_ENUM_PARAMS(N, Param)) {
+ // Cast the handle or pointer to the function to the correct type.
+ // This is NOT typesafe. See the documentation of shared_library::get
   return reinterpret_cast<ReturnValue (*)(BOOST_PP_ENUM_PARAMS(N, Param))>
       (impl::get_function(handle_, name.c_str()));
 }
-#undef N
\ No newline at end of file
+#undef N

Modified: sandbox/boost/extension/impl/typeinfo.hpp
==============================================================================
--- sandbox/boost/extension/impl/typeinfo.hpp (original)
+++ sandbox/boost/extension/impl/typeinfo.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -16,8 +16,7 @@
 #include <typeinfo>
 namespace boost { namespace extensions {
 template <class TypeInfo, class ClassType>
-struct type_info_handler
-{
+struct type_info_handler {
   static TypeInfo get_class_type();
 };
 
@@ -30,7 +29,7 @@
 template <class ClassType>
 struct type_info_handler<default_type_info, ClassType>
 {
- static default_type_info get_class_type(){
+ static default_type_info get_class_type() {
     return default_type_info(typeid(ClassType));
   }
 };

Modified: sandbox/boost/extension/shared_library.hpp
==============================================================================
--- sandbox/boost/extension/shared_library.hpp (original)
+++ sandbox/boost/extension/shared_library.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,6 +1,7 @@
 /*
  * Boost.Extension / shared_library:
- * functions for shared_library loading
+ * Functions for shared_library loading.
+ * A basic wrapper around the OS-specific calls.
  *
  * (C) Copyright Jeremy Pack 2008
  * Distributed under the Boost Software License, Version 1.0. (See
@@ -12,34 +13,111 @@
 
 #ifndef BOOST_EXTENSION_SHARED_LIBRARY_HPP
 #define BOOST_EXTENSION_SHARED_LIBRARY_HPP
+
 #include <string>
-#include <boost/extension/impl/library_impl.hpp>
+
 #include <boost/extension/common.hpp>
+#include <boost/extension/impl/library_impl.hpp>
 #include <boost/preprocessor/iteration/iterate.hpp>
 
-namespace boost { namespace extensions {
+namespace boost {
+namespace extensions {
 
-class shared_library
-{
+/** \brief A wrapper around OS-specific shared library functions.
+ * \warning This class is inherently not type-safe. Carefully
+ * check the signature of the function or type in the shared library
+ * against the template arguments of the get functions.
+ */
+class shared_library {
 public:
- bool is_open() { return handle_ != 0; }
+
+ /** shared_library constructor
+ * \param location The relative or absolute path of the shared library.
+ * \param auto_close An optional parameter which defaults to false.
+ * If set to true, the destructor will close this shared library
+ * if necessary.
+ */
+ shared_library(const std::string& location, bool auto_close = false)
+ : location_(location), handle_(0), auto_close_(auto_close) {
+ }
+
+ /** shared_library destructor
+ * If auto_close_ was set to true in the constructor, this closes
+ * the library if it is currently open.
+ */
+ ~shared_library() {
+ if (handle_ && auto_close_)
+ close();
+ }
+
+ /** \return true if the shared library is currently open
+ * and referenced by this object.
+ * \pre None.
+ * \post None.
+ */
+ bool is_open() const { return handle_ != 0; }
+
+ /** \brief Open the shared library.
+ * \return true if the shared library was opened successfully.
+ * \pre None.
+ * \post If true is returned, the shared library is opened and
+ * get() can be called.
+ */
   bool open() {
+ if (handle_)
+ close();
     return (handle_ = impl::load_shared_library(location_.c_str())) != 0;
   }
+
+ /** \brief Close the shared library.
+ * This calls the OS specific close function for shared libraries.
+ * Usually, this decrements the reference count of the shared library.
+ * Once a shared library has a reference count of 0, it can be actually
+ * unloaded at any time.
+ * \return true if the close function was successful.
+ * \pre is_open() == true.
+ * \post is_open() == false.
+ */
   bool close() {
     return impl::close_shared_library(handle_);
   }
- shared_library(const std::string& location, bool auto_close = false)
- : location_(location), handle_(0), auto_close_(auto_close) {
+
+// If Doxygen is being run, use more readable definitions for the
+// documentation.
+#ifdef BOOST_EXTENSION_DOXYGEN_INVOKED
+ /** \brief Get a function reference.
+ *
+ * A templated function taking as template arguments the
+ * type of the return value and parameters of a function
+ * to look up in the shared library.
+ *
+ * This function must have been declared with the same
+ * parameters and return type and marked as extern "C".
+ *
+ * Depending on platform and compiler settings, it may also
+ * be necessary to prefix the function with BOOST_EXTENSION_DECL,
+ * to make it externally visible.
+ *
+ * \warning If the function signature does not match, strange errors
+ * can occur.
+ * \pre is_open() == true.
+ * \post None.
+ */
+ template <class RetValue, class Params...>
+ FunctionPtr<ReturnValue (Params...)>
+ get(const std::string& name) const {
   }
+#else
 #define BOOST_PP_ITERATION_LIMITS (0, \
     BOOST_PP_INC(BOOST_EXTENSION_MAX_FUNCTOR_PARAMS) - 1)
 #define BOOST_PP_FILENAME_1 <boost/extension/impl/shared_library.hpp>
 #include BOOST_PP_ITERATE()
+#endif
 protected:
   std::string location_;
   impl::library_handle handle_;
   bool auto_close_;
 };
-}}
+} // namespace extensions
+} // namespace boost
 #endif // BOOST_EXTENSION_SHARED_LIBRARY_HPP

Modified: sandbox/boost/reflection/adapter.hpp
==============================================================================
--- sandbox/boost/reflection/adapter.hpp (original)
+++ sandbox/boost/reflection/adapter.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -45,7 +45,8 @@
   template <class D>
   std::vector<generic_parameter<TypeInfo>*> get(Info info) {
     std::vector<generic_parameter<TypeInfo>*> parameters;
- std::pair<typename map_type::iterator, typename map_type::iterator> its
+ std::pair<typename map_type::iterator,
+ typename map_type::iterator> its
       = equal_range(info);
     for (typename map_type::iterator current = its->first;
          current != its->second; ++current) {
@@ -56,6 +57,22 @@
     }
     return parameters;
   }
+
+ template <class D>
+ std::vector<const generic_parameter<TypeInfo>*> get(Info info) const {
+ std::vector<generic_parameter<TypeInfo>*> parameters;
+ std::pair<typename map_type::const_iterator,
+ typename map_type::const_iterator> its
+ = equal_range(info);
+ for (typename map_type::const_iterator current = its->first;
+ current != its->second; ++current) {
+ const generic_parameter<TypeInfo>& p = *current->second;
+ if (p.template can_cast<D>()) {
+ parameters.push_back(current->second);
+ }
+ }
+ return parameters;
+ }
 };
 typedef basic_parameter_map<> parameter_map;
 }}

Modified: sandbox/boost/reflection/constructor_info.hpp
==============================================================================
--- sandbox/boost/reflection/constructor_info.hpp (original)
+++ sandbox/boost/reflection/constructor_info.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -37,7 +37,7 @@
     : type_info_(s.type_info_) {
   }
 
- basic_constructor_info & operator=(basic_constructor_info & s) {
+ basic_constructor_info& operator=(basic_constructor_info & s) {
     type_info_ = s.type_info_;
   }
 

Modified: sandbox/boost/reflection/data.hpp
==============================================================================
--- sandbox/boost/reflection/data.hpp (original)
+++ sandbox/boost/reflection/data.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -35,10 +35,10 @@
     : data_ptr_(data_ptr),
       conversion_function_(conversion_function) {
   }
- T& operator()(instance & inst) {
+ T& operator()(instance & inst) const {
     return (*conversion_function_)(inst.val_, data_ptr_);
   }
- bool valid() {
+ bool valid() const {
     return conversion_function_ != 0 && data_ptr_ != 0;
   }
 private:

Modified: sandbox/boost/reflection/generic_constructor.hpp
==============================================================================
--- sandbox/boost/reflection/generic_constructor.hpp (original)
+++ sandbox/boost/reflection/generic_constructor.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -16,7 +16,7 @@
 class generic_constructor {
 public:
   virtual ~generic_constructor() {}
- virtual T * create(void ** params) = 0;
+ virtual T * create(void ** params) const = 0;
 };
 } // namespace reflections
 } // namespace boost

Modified: sandbox/boost/reflection/impl/function.hpp
==============================================================================
--- sandbox/boost/reflection/impl/function.hpp (original)
+++ sandbox/boost/reflection/impl/function.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -25,16 +25,16 @@
     member_function_(member_function) {
   }
   ReturnValue call(instance & inst BOOST_PP_COMMA_IF(N)
- BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p)) {
+ BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p)) const {
     return (*func_)(inst.val_, member_function_ BOOST_PP_COMMA_IF(N)
                     BOOST_PP_ENUM_PARAMS(N, p));
   }
   ReturnValue operator()(instance & inst BOOST_PP_COMMA_IF(N)
- BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p)) {
+ BOOST_PP_ENUM_BINARY_PARAMS(N, Param, p)) const {
     return (*func_)(inst.val_, member_function_ BOOST_PP_COMMA_IF(N)
                     BOOST_PP_ENUM_PARAMS(N, p));
   }
- bool valid() {
+ bool valid() const {
     return member_function_ != 0 && func_ != 0;
   }
 private:

Modified: sandbox/boost/reflection/impl/reflection.hpp
==============================================================================
--- sandbox/boost/reflection/impl/reflection.hpp (original)
+++ sandbox/boost/reflection/impl/reflection.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -95,10 +95,10 @@
     BOOST_PP_INC(BOOST_REFLECTION_MAX_FUNCTOR_PARAMS) - 1)
 #define BOOST_PP_FILENAME_1 <boost/reflection/impl/reflection_functions.hpp>
 #include BOOST_PP_ITERATE()
- instance_constructor<> get_constructor() {
+ instance_constructor<> get_constructor() const {
     constructor_info t(reflections::type_info_handler<TypeInfo,
     instance (*)()>::get_class_type());
- typename std::map<constructor_info, impl::FunctionPtr>::iterator it =
+ typename std::map<constructor_info, impl::FunctionPtr>::const_iterator it =
       constructors_.find(t);
     if (it == constructors_.end()) {
       return instance_constructor<>();
@@ -108,14 +108,14 @@
   }
 
   template <class Data>
- data<Data> get_data(Info info) {
+ data<Data> get_data(Info info) const {
     // Construct a data_info structure to look up the function in the map.
     data_info d(reflections::type_info_handler<TypeInfo, Data>
                             ::get_class_type(), info);
   
     // Look up the function.
     typename std::map<data_info,
- std::pair<impl::MemberPtr, impl::FunctionPtr> >::iterator it =
+ std::pair<impl::MemberPtr, impl::FunctionPtr> >::const_iterator it =
       data_.find(d);
   
     if (it == data_.end()) {

Modified: sandbox/boost/reflection/impl/reflection_functions.hpp
==============================================================================
--- sandbox/boost/reflection/impl/reflection_functions.hpp (original)
+++ sandbox/boost/reflection/impl/reflection_functions.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -16,7 +16,7 @@
 template <class ParamFirst BOOST_PP_COMMA_IF(N)
           BOOST_PP_ENUM_PARAMS(N, class Param)>
 instance_constructor<ParamFirst BOOST_PP_COMMA_IF(N)
- BOOST_PP_ENUM_PARAMS(N, Param)> get_constructor() {
+ BOOST_PP_ENUM_PARAMS(N, Param)> get_constructor() const {
   // Create a constructor_info structure to use for looking up
   // a constructor in the constructor map. Initialize it with the
   // function type requested.
@@ -26,7 +26,7 @@
                             ::get_class_type());
 
   // Determine whether or not such a constructor exists.
- typename std::map<constructor_info, impl::FunctionPtr>::iterator it =
+ typename std::map<constructor_info, impl::FunctionPtr>::const_iterator it =
     constructors_.find(ctr_info);
 
   if (it == constructors_.end()) {
@@ -45,7 +45,7 @@
 template <class ReturnValue BOOST_PP_COMMA_IF(N)
           BOOST_PP_ENUM_PARAMS(N, class Param)>
 function<ReturnValue BOOST_PP_COMMA_IF(N)
- BOOST_PP_ENUM_PARAMS(N, Param)> get_function(Info info) {
+ BOOST_PP_ENUM_PARAMS(N, Param)> get_function(Info info) const {
   // Construct a function_info structure to look up the function in the map.
   // has_return is set to true here because it makes no difference when doing
   // a lookup in the map.
@@ -55,7 +55,7 @@
 
   // Look up the function.
   typename std::map<function_info,
- std::pair<impl::MemberFunctionPtr, impl::FunctionPtr> >::iterator it =
+ std::pair<impl::MemberFunctionPtr, impl::FunctionPtr> >::const_iterator it =
     functions_.find(func_info);
 
   if (it == functions_.end()) {

Modified: sandbox/boost/reflection/parameter.hpp
==============================================================================
--- sandbox/boost/reflection/parameter.hpp (original)
+++ sandbox/boost/reflection/parameter.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -36,17 +36,17 @@
       delete it->second;
     }
   }
- virtual TypeInfo type() = 0;
+ virtual TypeInfo type() const = 0;
   template <class T>
- bool can_cast() {
+ bool can_cast() const {
     TypeInfo i = type_info_handler<TypeInfo, T>::get_class_type();
     return (converters_.find(i) != converters_.end());
   }
   template <class S>
- S cast() {
+ S cast() const {
     S dest;
     TypeInfo i = type_info_handler<TypeInfo, S>::get_class_type();
- typename std::map<TypeInfo, basic_converter*>::iterator it =
+ typename std::map<TypeInfo, basic_converter*>::const_iterator it =
       converters_.find(i);
     if (it != converters_.end()) {
       it->second->convert(value_, reinterpret_cast<void*>(&dest));
@@ -63,7 +63,7 @@
   }
   class basic_converter {
   public:
- virtual void convert(void* src, void* dest) = 0;
+ virtual void convert(void* src, void* dest) const = 0;
     virtual ~basic_converter() {}
   };
   std::map<TypeInfo, basic_converter*> converters_;
@@ -77,7 +77,7 @@
   template <class A, class B>
   friend class basic_parameter_map;
 
- virtual TypeInfo type() {
+ virtual TypeInfo type() const {
     return reflections::type_info_handler<TypeInfo, T>::get_class_type();
   }
   explicit parameter(T value)
@@ -109,7 +109,7 @@
   class default_converter :
     public generic_parameter<TypeInfo>::basic_converter {
   public:
- virtual void convert(void* val, void* dest) {
+ virtual void convert(void* val, void* dest) const {
       S* s = reinterpret_cast<S*>(dest);
       *s = static_cast<S>(*reinterpret_cast<T*>(val));
     }
@@ -121,7 +121,7 @@
     explicit specialized_converter(void (*convert_function)(T*, S*))
       : convert_function_(convert_function) {
     }
- virtual void convert(void* val, void* dest) {
+ virtual void convert(void* val, void* dest) const {
       S* s = reinterpret_cast<S*>(dest);
       (*convert_function_)(reinterpret_cast<T*>(val), s);
     }

Modified: sandbox/boost/reflection/parameter_map.hpp
==============================================================================
--- sandbox/boost/reflection/parameter_map.hpp (original)
+++ sandbox/boost/reflection/parameter_map.hpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -43,7 +43,7 @@
   using map_type::end;
   using map_type::insert;
   template <class D>
- std::vector<generic_parameter<TypeInfo>*> get(Info info) {
+ std::vector<generic_parameter<TypeInfo>*> get(Info info) const {
     std::vector<generic_parameter<TypeInfo>*> parameters;
     std::pair<typename map_type::iterator, typename map_type::iterator> its
       = equal_range(info);

Modified: sandbox/libs/extension/doc/Jamfile.v2
==============================================================================
--- sandbox/libs/extension/doc/Jamfile.v2 (original)
+++ sandbox/libs/extension/doc/Jamfile.v2 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,6 +1,6 @@
 # Boost.Extension - documentation Jamfile
 #
-# Copyright 2007 Jeremy Pack
+# Copyright 2008 Jeremy Pack
 # 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)
@@ -8,20 +8,44 @@
 # See http://www.boost.org/ for latest version.
 #
 
-using quickbook ;
-xml extension : extension.qbk : : :
- <xsl:param>toc.max.depth=5
- <xsl:param>toc.section.depth=5
- <xsl:param>chunk.section.depth=5 ;
+import doxygen ;
+import quickbook ;
+
+import os ;
+local BOOST_ROOT = [ os.environ BOOST_ROOT ] ;
+
+doxygen autodoc
+ :
+ [ glob ../../../boost/extension/*.hpp ]
+ :
+ <doxygen:param>EXTRACT_ALL=NO
+ <doxygen:param>"PREDEFINED=\"BOOST_EXTENSION_DOXYGEN_INVOKED\" \\
+ \"U_EXPORT2=\""
+ <doxygen:param>HIDE_UNDOC_MEMBERS=NO
+ <doxygen:param>EXTRACT_PRIVATE=NO
+ <doxygen:param>ENABLE_PREPROCESSING=YES
+ <doxygen:param>MACRO_EXPANSION=YES
+ <doxygen:param>EXPAND_ONLY_PREDEF=YES
+ <doxygen:param>SEARCH_INCLUDES=YES
+ <doxygen:param>INCLUDE_PATH=$(BOOST_ROOT)
+ ;
+
+xml extension : extension.qbk ;
+
 boostbook standalone
     :
         extension
     :
- <xsl:param>generate.section.toc.level=3
- <xsl:param>chunk.first.sections=1
- <xsl:param>admon.graphics=1
-
+ <xsl:param>toc.max.depth=3
+ <xsl:param>toc.section.depth=3
+ <xsl:param>chunk.section.depth=3
+ <dependency>autodoc
     ;
 
-install html : $(BOOST_ROOT)/doc/html/boostbook.css ;
-install ../ : $(BOOST_ROOT)/boost.png ;
+install css : [ glob $(BOOST_ROOT)/doc/src/*.css ]
+ : <location>html ;
+install images : [ glob $(BOOST_ROOT)/doc/src/images/*.png ]
+ : <location>html/images ;
+
+install main_image : [ glob $(BOOST_ROOT)/boost.png ]
+ : <location>../ ;
\ No newline at end of file

Modified: sandbox/libs/extension/doc/appendices.qbk
==============================================================================
--- sandbox/libs/extension/doc/appendices.qbk (original)
+++ sandbox/libs/extension/doc/appendices.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - appendices ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/appendix_a.qbk
==============================================================================
--- sandbox/libs/extension/doc/appendix_a.qbk (original)
+++ sandbox/libs/extension/doc/appendix_a.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - windows export and import decs ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/appendix_b.qbk
==============================================================================
--- sandbox/libs/extension/doc/appendix_b.qbk (original)
+++ sandbox/libs/extension/doc/appendix_b.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - optional libraries ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2008 Mariano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/extension.qbk
==============================================================================
--- sandbox/libs/extension/doc/extension.qbk (original)
+++ sandbox/libs/extension/doc/extension.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - main doc ]
-[/ Copyright 2007-2008 Jeremy Pack and Mariano Consoni ]
+[/ Copyright 2008-2008 Jeremy Pack and Mariano Consoni ]
 [/ 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) ]
@@ -7,7 +7,7 @@
 
 [library Boost.Extension
     [quickbook 1.4]
- [copyright 2007 Jeremy Pack, Mariano G. Consoni]
+ [copyright 2008 Jeremy Pack, Mariano G. Consoni]
     [purpose Factory management and facilities for using shared libraries]
     [license
         Distributed under the Boost Software License, Version 1.0.
@@ -19,14 +19,16 @@
 ]
 
 
-[def __linked_library [link boost_extension.linked_library linked_library]]
-[def __factory_map [link boost_extension.factory_map factory_map]]
-[def __factory [link boost_extension.factory factory]]
+[def _shared_library_ [^[classref boost::extensions::shared_library shared_library]]]
+[def _factory_map_ [^[classref boost::extensions::factory_map factory_map]]]
+[def _factory_ [^[classref boost::extensions::factory factory]]]
 
 [include introduction.qbk]
 [include tutorials.qbk]
 [include factories.qbk]
 [include shared_libraries.qbk]
+[xinclude autodoc.xml]
 [include info.qbk]
 [include performance_analysis.qbk]
+[include faq.qbk]
 [include appendices.qbk]

Modified: sandbox/libs/extension/doc/factories.qbk
==============================================================================
--- sandbox/libs/extension/doc/factories.qbk (original)
+++ sandbox/libs/extension/doc/factories.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - factories doc ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/faq.qbk
==============================================================================
--- sandbox/libs/extension/doc/faq.qbk (original)
+++ sandbox/libs/extension/doc/faq.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - faq ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]
@@ -14,7 +14,7 @@
 Answer: The simplest way is to change the name of your interface (or the
 namespace it is in) each time its contents change. This is actually what I would
 recommend. However, it is also possible to include such information as part
-of the `factory`. A `factory` can contain arbitrary information about the plugin
+of the _factory_. A _factory_ can contain arbitrary information about the plugin
 that it loads through the Info type. In the `hello_world` sample, the `Info`
 type is an `int`, and the `hello` class has a number (it could be a version) of
 1, and the `world` class has a version of 2. In the multiple_inheritance sample,
@@ -24,9 +24,9 @@
 Question: What if I want to have a library close automatically when I've
 destroyed all of the plugins in it?
 
-Answer: Wait for the `registry` class - which is almost done. It will take care
-of it. It is possible to do this with a `factory_map` currently, but the
-`registry` class will automate the process.
+Answer: I have not yet found a general enough way to do this that doesn't introduce too
+many constraints for programmers. I recommend developing a specific solution for your
+use case for now if you really need this.
 
 Question:
 

Added: sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,96 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template basic_factory_map</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="../../header/boost/extension/factory_map/hpp.html" title="Header &lt;boost/extension/factory_map.hpp&gt;">
+<link rel="prev" href="../../header/boost/extension/factory_map/hpp.html" title="Header &lt;boost/extension/factory_map.hpp&gt;">
+<link rel="next" href="factory_map.html" title="Type definition factory_map">
+</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="../../header/boost/extension/factory_map/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory_map/hpp.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="factory_map.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.basic_factory_map"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template basic_factory_map</span></h2>
+<p>boost::extensions::basic_factory_map &#8212; A collection of factories of various types. </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> TypeInfo&gt;
+<span class="bold"><strong>class</strong></span> basic_factory_map {
+<span class="bold"><strong>public</strong></span>:
+ <span class="emphasis"><em>// construct/copy/destruct</em></span>
+ ~basic_factory_map();
+
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> get() ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ operator std::map< Info, factory< Interface, Params...> >() ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id450849"></a><h2>Description</h2>
+<p>
+</p>
+<div class="refsect2" lang="en">
+<a name="id450856"></a><h3>
+<a name="boost.extensions.basic_factory_mapconstruct-copy-destruct"></a><code class="computeroutput">basic_factory_map</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id288577-bb"></a>~basic_factory_map();</pre></li></ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id450897"></a><h3>
+<a name="id288517-bb"></a><code class="computeroutput">basic_factory_map</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ <span class="type">std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt; &amp;</span> <a name="id288519-bb"></a>get() ;</pre>
+<p>
+
+This returns a map of the given type of factories. It can return an empty map if no such factories are found. </p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>A map of the requested factory type.</p></td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> Interface, <span class="bold"><strong>typename</strong></span> Info, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ <a name="id288551-bb"></a><span class="bold"><strong>operator</strong></span> std::map&lt; Info, factory&lt; Interface, Params...&gt; &gt;() ;</pre>
+<p>A conversion operator for convenience in calling functions that take a map of factories. This is identical to the get() function. </p>
+</li>
+</ol></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="../../header/boost/extension/factory_map/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory_map/hpp.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="factory_map.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/generic_map_holder.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/generic_map_holder.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,62 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct generic_map_holder</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="../basic_factory_map.html#id450848" title="Description">
+<link rel="prev" href="../../../header/boost/extension/factory_map/hpp.html" title="Header &lt;boost/extension/factory_map.hpp&gt;">
+<link rel="next" href="map_holder.html" title="Struct template map_holder">
+</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="../../../header/boost/extension/factory_map/hpp.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_factory_map.html#id450848"><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="map_holder.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.basic_factory_map.generic_map_holder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct generic_map_holder</span></h2>
+<p>boost::extensions::basic_factory_map::generic_map_holder &#8212; </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+
+<span class="bold"><strong>struct</strong></span> generic_map_holder {
+ <span class="emphasis"><em>// construct/copy/destruct</em></span>
+ ~generic_map_holder();
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id450953"></a><h2>Description</h2>
+<div class="refsect2" lang="en">
+<a name="id450958"></a><h3>
+<a name="boost.extensions.basic_factory_map.generic_map_holderconstruct-copy-destruct"></a><code class="computeroutput">generic_map_holder</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1"><li><pre class="literallayout"><a name="id288356-bb"></a>~generic_map_holder();</pre></li></ol></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="../../../header/boost/extension/factory_map/hpp.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_factory_map.html#id450848"><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="map_holder.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/map_holder.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/basic_factory_map/map_holder.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Struct template map_holder</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="../basic_factory_map.html#id450848" title="Description">
+<link rel="prev" href="generic_map_holder.html" title="Struct generic_map_holder">
+<link rel="next" href="../../../BOOST_PP_ITERATION_LIMITS_id288376.html" title="Macro BOOST_PP_ITERATION_LIMITS">
+</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="generic_map_holder.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_factory_map.html#id450848"><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="../../../BOOST_PP_ITERATION_LIMITS_id288376.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.basic_factory_map.map_holder"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Struct template map_holder</span></h2>
+<p>boost::extensions::basic_factory_map::map_holder &#8212; </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+<span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T&gt;
+<span class="bold"><strong>struct</strong></span> map_holder :
+ <span class="bold"><strong>public</strong></span> boost::extensions::basic_factory_map&lt; TypeInfo &gt;::generic_map_holder
+{
+};</pre></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="generic_map_holder.html"><img src="../../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../basic_factory_map.html#id450848"><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="../../../BOOST_PP_ITERATION_LIMITS_id288376.html"><img src="../../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/factory.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/factory.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,139 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class template factory</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="../../header/boost/extension/factory/hpp.html" title="Header &lt;boost/extension/factory.hpp&gt;">
+<link rel="prev" href="../../header/boost/extension/factory/hpp.html" title="Header &lt;boost/extension/factory.hpp&gt;">
+<link rel="next" href="../../header/boost/extension/factory_map/hpp.html" title="Header &lt;boost/extension/factory_map.hpp&gt;">
+</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="../../header/boost/extension/factory/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory/hpp.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="../../header/boost/extension/factory_map/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.factory"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class template factory</span></h2>
+<p>boost::extensions::factory &#8212; </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> T, <span class="bold"><strong>typename</strong></span> Params...&gt;
+<span class="bold"><strong>class</strong></span> factory {
+<span class="bold"><strong>public</strong></span>:
+ <span class="emphasis"><em>// construct/copy/destruct</em></span>
+ factory();
+ factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
+ factory&amp; operator=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp;);
+
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> set() ;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> is_valid() ;
+ <span class="type">T *</span> create(Params...) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id450310"></a><h2>Description</h2>
+<p>This class is a function object that returns new instances of type T, using factories that take parameters described in the variable length list Params... </p>
+<div class="refsect2" lang="en">
+<a name="id450320"></a><h3>
+<a name="boost.extensions.factoryconstruct-copy-destruct"></a><code class="computeroutput">factory</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li><pre class="literallayout"><a name="id288474-bb"></a>factory();</pre></li>
+<li><pre class="literallayout"><a name="id288478-bb"></a>factory(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+<li><pre class="literallayout">factory&amp; <a name="id288488-bb"></a><span class="bold"><strong>operator</strong></span>=(factory&lt; T &gt; <span class="bold"><strong>const</strong></span> &amp; first);</pre></li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id450426"></a><h3>
+<a name="id93876-bb"></a><code class="computeroutput">factory</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> D&gt; <span class="type"><span class="bold"><strong>void</strong></span></span> <a name="id93878-bb"></a>set() ;</pre>
+<p>This sets the factory function to the constructor for type D. Example: factory&lt;Base, int, int&gt; f; f.set&lt;Derived&gt;(); </p>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id89970-bb"></a>is_valid() ;</pre>
+<p>Until set is called, a factory cannot be used. This function can be used to determine if set has been called.
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>True if the factory is initialized (ie, set has been called). </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type">T *</span> <a name="id288450-bb"></a>create(Params...) ;</pre>
+<p>Returns an instance of T (but does NOT retain ownership of the instance).
+
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>is_valid() == true. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>An instance of T. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+</ol></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="../../header/boost/extension/factory/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory/hpp.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="../../header/boost/extension/factory_map/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/factory_map.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/factory_map.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,52 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Type definition factory_map</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="../../header/boost/extension/factory_map/hpp.html" title="Header &lt;boost/extension/factory_map.hpp&gt;">
+<link rel="prev" href="basic_factory_map.html" title="Class template basic_factory_map">
+<link rel="next" href="../../header/boost/extension/filesystem/hpp.html" title="Header &lt;boost/extension/filesystem.hpp&gt;">
+</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="basic_factory_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory_map/hpp.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="../../header/boost/extension/filesystem/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.factory_map"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Type definition factory_map</span></h2>
+<p>factory_map &#8212; </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+<span class="bold"><strong>typedef</strong></span> basic_factory_map&lt; default_type_info &gt; factory_map;</pre></div>
+<div class="refsect1" lang="en">
+<a name="id451075"></a><h2>Description</h2>
+<p>A typedef for convenience - provides the most common type of basic_factory_map. </p>
+</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="basic_factory_map.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/factory_map/hpp.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="../../header/boost/extension/filesystem/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/load_single_library.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/load_single_library.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,103 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Function load_single_library</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="../../header/boost/extension/convenience/hpp.html" title="Header &lt;boost/extension/convenience.hpp&gt;">
+<link rel="prev" href="../../header/boost/extension/convenience/hpp.html" title="Header &lt;boost/extension/convenience.hpp&gt;">
+<link rel="next" href="../../header/boost/extension/extension/hpp.html" title="Header &lt;boost/extension/extension.hpp&gt;">
+</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="../../header/boost/extension/convenience/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/convenience/hpp.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="../../header/boost/extension/extension/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.load_single_library"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Function load_single_library</span></h2>
+<p>boost::extensions::load_single_library &#8212; Load factories from the given library and function. </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+<span class="type"><span class="bold"><strong>bool</strong></span></span> load_single_library(factory_map &amp; current_factory_map,
+ <span class="bold"><strong>const</strong></span> std::string &amp; library_path,
+ <span class="bold"><strong>const</strong></span> std::string &amp; external_function_name);</pre></div>
+<div class="refsect1" lang="en">
+<a name="id449893"></a><h2>Description</h2>
+<p>Add any exported factories from the given library with the given function name. This uses shared_library::get internally. The function must have the signature void (factory_map&amp;). For more general loading of shared libraries, use the shared_library class directly. If the function is not found, false is returned.</p>
+<p>
+
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Parameters:</span></td>
+<td><div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term"><code class="computeroutput">current_factory_map</code></span></td>
+<td><p>The factory map to load classes into. It is not required to be empty. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term"><code class="computeroutput">external_function_name</code></span></td>
+<td><p>The name of an exported function in the library with the signature void (factory_map&amp;). </p></td>
+</tr>
+<tr>
+<td>
+<span class="term"><code class="computeroutput">library_path</code></span></td>
+<td><p>The relative or absolute path to the library to load. </p></td>
+</tr>
+</tbody>
+</table></div></td>
+</tr>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>True on success. </p></td>
+</tr>
+</tbody>
+</table></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="../../header/boost/extension/convenience/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/convenience/hpp.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="../../header/boost/extension/extension/hpp.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Added: sandbox/libs/extension/doc/html/boost/extensions/shared_library.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost/extensions/shared_library.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,219 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Class shared_library</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="../../header/boost/extension/shared_library/hpp.html" title="Header &lt;boost/extension/shared_library.hpp&gt;">
+<link rel="prev" href="../../header/boost/extension/shared_library/hpp.html" title="Header &lt;boost/extension/shared_library.hpp&gt;">
+<link rel="next" href="../../boost_extension/info.html" title=" Info Classes">
+</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="../../header/boost/extension/shared_library/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/shared_library/hpp.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="../../boost_extension/info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+<div class="refentry" lang="en">
+<a name="boost.extensions.shared_library"></a><div class="titlepage"></div>
+<div class="refnamediv">
+<h2><span class="refentrytitle">Class shared_library</span></h2>
+<p>boost::extensions::shared_library &#8212; A wrapper around OS-specific shared library functions. </p>
+</div>
+<h2 xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv-title">Synopsis</h2>
+<div xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="refsynopsisdiv"><pre class="synopsis">
+<span class="bold"><strong>class</strong></span> shared_library {
+<span class="bold"><strong>public</strong></span>:
+ <span class="emphasis"><em>// construct/copy/destruct</em></span>
+ shared_library(<span class="bold"><strong>const</strong></span> std::string &amp;, <span class="bold"><strong>bool</strong></span> = false);
+ ~shared_library();
+
+ <span class="emphasis"><em>// public member functions</em></span>
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> is_open() ;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> open() ;
+ <span class="type"><span class="bold"><strong>bool</strong></span></span> close() ;
+ <span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RetValue, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> get(<span class="bold"><strong>const</strong></span> std::string &amp;) ;
+};</pre></div>
+<div class="refsect1" lang="en">
+<a name="id451490"></a><h2>Description</h2>
+<p>This class is inherently not type-safe. Carefully check the signature of the function or type in the shared library against the template arguments of the get functions. </p>
+<p>
+</p>
+<div class="refsect2" lang="en">
+<a name="id451502"></a><h3>
+<a name="boost.extensions.shared_libraryconstruct-copy-destruct"></a><code class="computeroutput">shared_library</code>
+ public
+ construct/copy/destruct</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><a name="id288778-bb"></a>shared_library(<span class="bold"><strong>const</strong></span> std::string &amp; location, <span class="bold"><strong>bool</strong></span> auto_close = false);</pre>
+<p>shared_library constructor
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody><tr>
+<td>
+<span class="term">Parameters:</span></td>
+<td><div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term"><code class="computeroutput">auto_close</code></span></td>
+<td><p>An optional parameter which defaults to false. If set to true, the destructor will close this shared library if necessary. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term"><code class="computeroutput">location</code></span></td>
+<td><p>The relative or absolute path of the shared library. </p></td>
+</tr>
+</tbody>
+</table></div></td>
+</tr></tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><a name="id288771-bb"></a>~shared_library();</pre>
+<p>shared_library destructor If auto_close_ was set to true in the constructor, this closes the library if it is currently open. </p>
+</li>
+</ol></div>
+</div>
+<div class="refsect2" lang="en">
+<a name="id451617"></a><h3>
+<a name="id288656-bb"></a><code class="computeroutput">shared_library</code> public member functions</h3>
+<div class="orderedlist"><ol type="1">
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id288658-bb"></a>is_open() ;</pre>
+<p>
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>true if the shared library is currently open and referenced by this object. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id288677-bb"></a>open() ;</pre>
+<p>
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>None. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>If true is returned, the shared library is opened and get() can be called. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>true if the shared library was opened successfully. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="type"><span class="bold"><strong>bool</strong></span></span> <a name="id288700-bb"></a>close() ;</pre>
+<p>
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>is_open() == true. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>is_open() == false. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Returns:</span></td>
+<td><p>true if the close function was successful. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+<li>
+<pre class="literallayout"><span class="bold"><strong>template</strong></span>&lt;<span class="bold"><strong>typename</strong></span> RetValue, <span class="bold"><strong>typename</strong></span> Params...&gt;
+ <span class="type">FunctionPtr&lt; ReturnValue(Params...)&gt;</span> <a name="id288725-bb"></a>get(<span class="bold"><strong>const</strong></span> std::string &amp; name) ;</pre>
+<p>A templated function taking as template arguments the type of the return value and parameters of a function to look up in the shared library.</p>
+<p>This function must have been declared with the same parameters and return type and marked as extern "C".</p>
+<p>Depending on platform and compiler settings, it may also be necessary to prefix the function with BOOST_EXTENSION_DECL, to make it externally visible.</p>
+<p>If the function signature does not match, strange errors can occur. </p>
+<p>
+
+
+</p>
+<div class="variablelist"><table border="0">
+<col align="left" valign="top">
+<tbody>
+<tr>
+<td>
+<span class="term">Requires:</span></td>
+<td><p>is_open() == true. </p></td>
+</tr>
+<tr>
+<td>
+<span class="term">Postconditions:</span></td>
+<td><p>None. </p></td>
+</tr>
+</tbody>
+</table></div>
+</li>
+</ol></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="../../header/boost/extension/shared_library/hpp.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../../header/boost/extension/shared_library/hpp.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="../../boost_extension/info.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/libs/extension/doc/html/boost_extension/appendices.html
==============================================================================
Binary files. No diff available.

Modified: sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_b.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_b.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/appendices/appendix_b.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,30 +1,32 @@
 <html>
 <head>
 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title> Appendix B - Optional Dependencies</title>
+<title> Appendix B -
+ Optional Dependencies</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="../appendices.html" title=" Appendices">
-<link rel="prev" href="appendix_a.html" title=" Appendix A - Windows Export and Import Declarations">
-<link rel="next" href="appendix_c.html" title=" Appendix C - OS X Shared Libraries">
+<link rel="prev" href="../appendices.html" title=" Appendices">
 </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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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="appendix_a.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.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="appendix_c.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../appendices.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.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><h3 class="title">
-<a name="boost_extension.appendices.appendix_b"></a> Appendix B - Optional Dependencies</h3></div></div></div>
+<a name="boost_extension.appendices.appendix_b"></a><a href="appendix_b.html" title=" Appendix B -
+ Optional Dependencies"> Appendix B -
+ Optional Dependencies</a></h3></div></div></div>
 <p>
         As suggested by Boost guidelines and our thoughts, we tried to keep the number
         of dependencies of Boost.Extension at the minimum. But we also wanted to
@@ -44,7 +46,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -52,7 +54,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="appendix_a.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.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="appendix_c.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="../appendices.html"><img src="../../../../doc/html/images/prev.png" alt="Prev"></a><a accesskey="u" href="../appendices.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>

Modified: sandbox/libs/extension/doc/html/boost_extension/factories.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/factories.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/factories.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,10 +12,10 @@
 <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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h2 class="title" style="clear: both">
-<a name="boost_extension.factories"></a> Factories</h2></div></div></div>
+<a name="boost_extension.factories"></a> Factories</h2></div></div></div>
 <p>
       In normal usage, a <code class="computeroutput"><span class="identifier">factory</span></code>
       is initialized in a shared library, then returned to an application with a
@@ -35,7 +35,8 @@
       A factory has the following template options:
     </p>
 <p>
- <code class="computeroutput"><span class="identifier">factory</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="identifier">ARGS</span><span class="special">&gt;</span></code>
+ <code class="computeroutput"><span class="identifier">factory</span><span class="special">&lt;</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span>
+ <span class="identifier">ARGS</span><span class="special">&gt;</span></code>
     </p>
 <p>
       Where <code class="computeroutput"><span class="identifier">T</span></code> is the interface that
@@ -49,8 +50,8 @@
       are:
     </p>
 <a name="boost_extension.factories.void_set_lt_d_gt___"></a><h3>
-<a name="id934421"></a>
- void set&lt;D&gt;()
+<a name="id448963"></a>
+ void set<D>()
     </h3>
 <p>
       The <code class="computeroutput"><span class="identifier">set</span></code> function takes a template
@@ -59,8 +60,8 @@
       This function may be called multiple times, to change the factory function.
     </p>
 <a name="boost_extension.factories.bool_is_valid__"></a><h3>
-<a name="id934462"></a>
- bool is_valid()
+<a name="id449012"></a>
+ bool is_valid()
     </h3>
 <p>
       If set has been called, this returns true. Otherwise, it returns false.
@@ -68,7 +69,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>

Modified: sandbox/libs/extension/doc/html/boost_extension/info.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/info.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/info.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -6,25 +6,25 @@
 <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="shared_libraries.html" title=" Shared Libraries">
+<link rel="prev" href="../boost/extensions/shared_library.html" title="Class shared_library">
 <link rel="next" href="performance_analysis.html" title=" Performance Analysis">
 </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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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="../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="performance_analysis.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<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="performance_analysis.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.info"></a> Info Classes</h2></div></div></div>
+<a name="boost_extension.info"></a> Info Classes</h2></div></div></div>
 <p>
       In this section we explain how to use Info classes in Boost.Extension.
     </p>
@@ -51,54 +51,53 @@
 <p>
       
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">mundo</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">mundo</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"mundo!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"mundo!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">monde</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">monde</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"monde!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"monde!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">mondo</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">mondo</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"mondo!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"mondo!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
 
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">hola</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">hola</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hola"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hola"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">bonjour</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">bonjour</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"bonjour"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"bonjour"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">buonasera</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">buonasera</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"buonasera"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"buonasera"</span><span class="special">;}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -119,26 +118,24 @@
 <p>
       
 </p>
-<pre class="programlisting">
-<span class="keyword">struct</span> <span class="identifier">word_description</span>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">word_description</span>
 <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">language</span><span class="special">;</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">english_translation</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">language</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">english_translation</span><span class="special">;</span>
 
- <span class="identifier">word_description</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">language</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">english_translation</span><span class="special">)</span>
- <span class="special">:</span> <span class="identifier">language</span><span class="special">(</span><span class="identifier">language</span><span class="special">),</span> <span class="identifier">english_translation</span><span class="special">(</span><span class="identifier">english_translation</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="identifier">word_description</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">language</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">english_translation</span><span class="special">)</span>
+ <span class="special">:</span> <span class="identifier">language</span><span class="special">(</span><span class="identifier">language</span><span class="special">),</span> <span class="identifier">english_translation</span><span class="special">(</span><span class="identifier">english_translation</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
       We also need a less-than operator for this class, so it can be used as a map
       key.
 </p>
-<pre class="programlisting">
-<span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">word_description</span> <span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">word_description</span> <span class="special">&amp;</span> <span class="identifier">second</span><span class="special">)</span> <span class="special">{</span>
- <span class="keyword">return</span> <span class="identifier">first</span><span class="special">.</span><span class="identifier">language</span> <span class="special">&lt;</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">language</span> <span class="special">||</span>
- <span class="special">(</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">language</span> <span class="special">==</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">language</span> <span class="special">&amp;&amp;</span>
- <span class="identifier">first</span><span class="special">.</span><span class="identifier">english_translation</span> <span class="special">&lt;</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">english_translation</span><span class="special">);</span>
+<pre class="programlisting"><span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">word_description</span> <span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">word_description</span> <span class="special">&amp;</span> <span class="identifier">second</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">first</span><span class="special">.</span><span class="identifier">language</span> <span class="special">&lt;</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">language</span> <span class="special">||</span>
+ <span class="special">(</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">language</span> <span class="special">==</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">language</span> <span class="special">&amp;&amp;</span>
+ <span class="identifier">first</span><span class="special">.</span><span class="identifier">english_translation</span> <span class="special">&lt;</span> <span class="identifier">second</span><span class="special">.</span><span class="identifier">english_translation</span><span class="special">);</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -150,26 +147,25 @@
 <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_multilanguage_word</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>
+<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_multilanguage_word</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">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"spanish"</span><span class="special">,</span> <span class="string">"hello"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"spanish"</span><span class="special">,</span> <span class="string">"hello"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hola</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"spanish"</span><span class="special">,</span> <span class="string">"world!"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"spanish"</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">mundo</span><span class="special">&gt;();</span>
 
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"french"</span><span class="special">,</span> <span class="string">"hello"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"french"</span><span class="special">,</span> <span class="string">"hello"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bonjour</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"french"</span><span class="special">,</span> <span class="string">"world!"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"french"</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">monde</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"italian"</span><span class="special">,</span> <span class="string">"hello"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"italian"</span><span class="special">,</span> <span class="string">"hello"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">buonasera</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"italian"</span><span class="special">,</span> <span class="string">"world!"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"italian"</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">mondo</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"english"</span><span class="special">,</span> <span class="string">"hello"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"english"</span><span class="special">,</span> <span class="string">"hello"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"english"</span><span class="special">,</span> <span class="string">"world!"</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">word</span><span class="special">,</span> <span class="identifier">word_description</span><span class="special">&gt;()[</span><span class="identifier">word_description</span><span class="special">(</span><span class="string">"english"</span><span class="special">,</span> <span class="string">"world!"</span><span class="special">)]</span>
     <span class="special">.</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
 <span class="special">}</span>
 
@@ -188,35 +184,33 @@
 <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">map</span><span class="special">&lt;</span><span class="identifier">word_description</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</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_word</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_word</span><span class="special">)</span> <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</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">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
- <span class="special">&lt;&lt;</span> <span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">english_translation</span>
- <span class="special">&lt;&lt;</span> <span class="string">" in "</span> <span class="special">&lt;&lt;</span> <span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">language</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>
+<pre class="programlisting"><span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">word_description</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</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_word</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_word</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</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">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" is "</span>
+ <span class="special">&lt;&lt;</span> <span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">english_translation</span>
+ <span class="special">&lt;&lt;</span> <span class="string">" in "</span> <span class="special">&lt;&lt;</span> <span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">.</span><span class="identifier">language</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="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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 </pre>
 <p>
     </p>
 <p>
       And we get the following output:
     </p>
-<div class="informaltable">
-<h4>
-<a name="id937633"></a>
- </h4>
-<table class="table">
+<div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<tbody><tr><td><code class="literal">hola is hello in spanish<br> mundo! is world! in spanish<br>
- bonjour is hello in french<br> monde! is world! in french<br> buonasera
- is hello in italian<br> mondo! is world! in italian<br> hello is
- hello in english<br> world! is world! in english<br> </code></td></tr></tbody>
-</table>
-</div>
+<tbody><tr><td>
+ <p>
+ <code class="literal">hola is hello in spanish<br> mundo! is world! in spanish<br>
+ bonjour is hello in french<br> monde! is world! in french<br> buonasera
+ is hello in italian<br> mondo! is world! in italian<br> hello is
+ hello in english<br> world! is world! in english<br> </code>
+ </p>
+ </td></tr></tbody>
+</table></div>
 <p>
       Now that we have described our example the major parts could be summarized:
     </p>
@@ -242,7 +236,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -250,7 +244,7 @@
 </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="../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="performance_analysis.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<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="performance_analysis.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/performance_analysis.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -7,24 +7,24 @@
 <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="info.html" title=" Info Classes">
-<link rel="next" href="appendices.html" title=" Appendices">
+<link rel="next" href="faq.html" title=" FAQ">
 </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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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="info.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="appendices.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="info.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="faq.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.performance_analysis"></a> Performance Analysis</h2></div></div></div>
+<a name="boost_extension.performance_analysis"></a> Performance Analysis</h2></div></div></div>
 <p>
       In this section we will discuss the performance of the library. We'll focus
       on the overhead added in comparison with <code class="literal">dlopen/dlclose</code>
@@ -41,8 +41,9 @@
       Boost) more optimization will be performed.
     </p>
 <a name="boost_extension.performance_analysis.first_comparison"></a><h1>
-<a name="id937772"></a>
- First comparison
+<a name="id454829"></a>
+ <a href="performance_analysis.html#boost_extension.performance_analysis.first_comparison">First
+ comparison</a>
     </h1>
 <p>
       The first benchmarks show how much overhead is incurred by using Boost.Extension
@@ -73,8 +74,9 @@
       So Boost.Extension is (aprox.) three times slower.
     </p>
 <a name="boost_extension.performance_analysis.multiple_calls_and_libraries"></a><h1>
-<a name="id937849"></a>
- Multiple calls and libraries
+<a name="id454916"></a>
+ <a href="performance_analysis.html#boost_extension.performance_analysis.multiple_calls_and_libraries">Multiple
+ calls and libraries</a>
     </h1>
 <p>
       Having a first idea about the comparison we advanced with two new benchmarks.
@@ -122,8 +124,9 @@
       RTTI works across shared libraries.
     </p>
 <a name="boost_extension.performance_analysis.boost__function_overhead"></a><h1>
-<a name="id937844"></a>
- boost::function overhead
+<a name="id454923"></a>
+ <a href="performance_analysis.html#boost_extension.performance_analysis.boost__function_overhead">boost::function
+ overhead</a>
     </h1>
 <p>
       Besides the comparison of Boost.Extension vs. direct system calls we evaluated
@@ -145,7 +148,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -153,7 +156,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="info.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="appendices.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="info.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="faq.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Added: sandbox/libs/extension/doc/html/boost_extension/reference.html
==============================================================================
--- (empty file)
+++ sandbox/libs/extension/doc/html/boost_extension/reference.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -0,0 +1,59 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Reference</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="shared_libraries.html" title=" Shared Libraries">
+<link rel="next" href="../BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html" title="Macro BOOST_EXTENSION_MAX_FUNCTOR_PARAMS">
+</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="../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="../BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.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.reference"></a>Reference</h2></div></div></div>
+<div class="toc"><dl>
+<dt><span class="section">Header <boost/extension/common.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/convenience.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/extension.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/factory.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/factory_map.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/filesystem.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/functor.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/shared_library.hpp></span></dt>
+</dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="header.boost.extension.common.hpp"></a>Header &lt;boost/extension/common.hpp&gt;</h3></div></div></div>
+<pre class="synopsis">
+
+BOOST_EXTENSION_MAX_FUNCTOR_PARAMS</pre>
+</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_libraries.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="../BOOST_EXTENSION_MAX_FUNCTOR_PARAMS.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>

Modified: sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/shared_libraries.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -7,24 +7,24 @@
 <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="factories.html" title=" Factories">
-<link rel="next" href="info.html" title=" Info Classes">
+<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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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="factories.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="info.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="factories.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.shared_libraries"></a> Shared Libraries</h2></div></div></div>
+<a name="boost_extension.shared_libraries"></a> Shared Libraries</h2></div></div></div>
 <p>
       A <code class="computeroutput"><span class="identifier">shared_library</span></code> refers to
       a loadable module, the type of which depends on the platform:
@@ -40,9 +40,10 @@
         Mac OS X: .dylib or .bundle (See Appendix C)
       </li>
 </ul></div>
-<a name="boost_extension.shared_libraries._code__phrase_role__identifier__shared_library__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase__nbsp__phrase_role__keyword__char__phrase__nbsp__phrase_role__special_____phrase__nbsp__phrase_role__identifier__location__phrase__phrase_role__special_____phrase__nbsp__phrase_role__keyword__bool__phrase__nbsp__phrase_role__identifier__auto_close__phrase__nbsp__phrase_role__special_____phrase__nbsp__phrase_role__keyword__false__phrase__phrase_role__special_____phrase___code_"></a><h4>
-<a name="id934530"></a>
- <code class="computeroutput"><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">location</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">auto_close</span> <span class="special">=</span> <span class="keyword">false</span><span class="special">)</span></code>
+<a name="boost_extension.shared_libraries._code__phrase_role__identifier__shared_library__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase___phrase_role__keyword__char__phrase___phrase_role__special_____phrase___phrase_role__identifier__location__phrase__phrase_role__special_____phrase___phrase_role__keyword__bool__phrase___phrase_role__identifier__auto_close__phrase___phrase_role__special_____phrase___phrase_role__keyword__false__phrase__phrase_role__special_____phrase___code_"></a><h4>
+<a name="id449093"></a>
+ <a href="shared_libraries.html#boost_extension.shared_libraries._code__phrase_role__identifier__shared_library__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase___phrase_role__keyword__char__phrase___phrase_role__special_____phrase___phrase_role__identifier__location__phrase__phrase_role__special_____phrase___phrase_role__keyword__bool__phrase___phrase_role__identifier__auto_close__phrase___phrase_role__special_____phrase___phrase_role__keyword__false__phrase__phrase_role__special_____phrase___code_"><code class="computeroutput"><span class="identifier">shared_library</span><span class="special">(</span><span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">location</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">auto_close</span>
+ <span class="special">=</span> <span class="keyword">false</span><span class="special">)</span></code></a>
     </h4>
 <p>
       <code class="computeroutput"><span class="identifier">location</span></code> is the relative path
@@ -50,23 +51,23 @@
       sets whether or not the library will be automatically closed when the <code class="computeroutput"><span class="identifier">shared_library</span></code> is destroyed. This function
       does not open the library.
     </p>
-<a name="boost_extension.shared_libraries._code__phrase_role__keyword__bool__phrase__nbsp__phrase_role__identifier__open__phrase__phrase_role__special______phrase___code_"></a><h4>
-<a name="id934654"></a>
- <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">open</span><span class="special">()</span></code>
+<a name="boost_extension.shared_libraries._code__phrase_role__keyword__bool__phrase___phrase_role__identifier__open__phrase__phrase_role__special______phrase___code_"></a><h4>
+<a name="id449221"></a>
+ bool open()
     </h4>
 <p>
       Returns true if the library is opened successfully.
     </p>
-<a name="boost_extension.shared_libraries._code__phrase_role__keyword__bool__phrase__nbsp__phrase_role__identifier__is_open__phrase__phrase_role__special______phrase___code_"></a><h4>
-<a name="id934697"></a>
- <code class="computeroutput"><span class="keyword">bool</span> <span class="identifier">is_open</span><span class="special">()</span></code>
+<a name="boost_extension.shared_libraries._code__phrase_role__keyword__bool__phrase___phrase_role__identifier__is_open__phrase__phrase_role__special______phrase___code_"></a><h4>
+<a name="id449276"></a>
+ bool is_open()
     </h4>
 <p>
       Returns true if the library is open.
     </p>
-<a name="boost_extension.shared_libraries._code__phrase_role__keyword__void__phrase__nbsp__phrase_role__identifier__close__phrase__phrase_role__special______phrase___code_"></a><h4>
-<a name="id934741"></a>
- <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">close</span><span class="special">()</span></code>
+<a name="boost_extension.shared_libraries._code__phrase_role__keyword__void__phrase___phrase_role__identifier__close__phrase__phrase_role__special______phrase___code_"></a><h4>
+<a name="id449331"></a>
+ void close()
     </h4>
 <p>
       Close the library. Note that an OS specific shared library usually keeps a
@@ -76,35 +77,43 @@
       the library even then. As such, this function can sometimes give a performance
       boost, by freeing up RAM, but will often do nothing.
     </p>
-<a name="boost_extension.shared_libraries._code__phrase_role__identifier__returnvalue__phrase__nbsp__phrase_role__special______phrase__phrase_role__identifier__get__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase__nbsp__phrase_role__keyword__char__phrase__nbsp__phrase_role__special_____phrase__nbsp__phrase_role__identifier__name__phrase__phrase_role__special_______phrase__phrase_role__identifier__args__phrase__phrase_role__special_____phrase___code_"></a><h4>
-<a name="id934786"></a>
- <code class="computeroutput"><span class="identifier">ReturnValue</span> <span class="special">(*</span><span class="identifier">get</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="identifier">ARGS</span><span class="special">)</span></code>
+<a name="boost_extension.shared_libraries._code__phrase_role__identifier__returnvalue__phrase___phrase_role__special______phrase__phrase_role__identifier__get__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase___phrase_role__keyword__char__phrase___phrase_role__special_____phrase___phrase_role__identifier__name__phrase__phrase_role__special_______phrase__phrase_role__identifier__args__phrase__phrase_role__special_____phrase___code_"></a><h4>
+<a name="id449389"></a>
+ <a href="shared_libraries.html#boost_extension.shared_libraries._code__phrase_role__identifier__returnvalue__phrase___phrase_role__special______phrase__phrase_role__identifier__get__phrase__phrase_role__special_____phrase__phrase_role__keyword__const__phrase___phrase_role__keyword__char__phrase___phrase_role__special_____phrase___phrase_role__identifier__name__phrase__phrase_role__special_______phrase__phrase_role__identifier__args__phrase__phrase_role__special_____phrase___code_"><code class="computeroutput"><span class="identifier">ReturnValue</span> <span class="special">(*</span><span class="identifier">get</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="identifier">ARGS</span><span class="special">)</span></code></a>
     </h4>
 <p>
       This function returns a pointer to a function in a dll with <code class="computeroutput"><span class="identifier">name</span></code>.
- Note that a C++ function needs to have <code class="computeroutput"><span class="keyword">extern</span> <span class="string">"C"</span></code> before it in order for this to
- work. To get a function like this:
+ Note that a C++ function needs to have <code class="computeroutput"><span class="keyword">extern</span>
+ <span class="string">"C"</span></code> before it in order for
+ this to work. To get a function like this:
 </p>
-<pre class="programlisting">
-<span class="keyword">extern</span> <span class="string">"C"</span>
-<span class="keyword">int</span> <span class="identifier">get_value</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="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">extern</span> <span class="string">"C"</span>
+<span class="keyword">int</span> <span class="identifier">get_value</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="keyword">return</span> <span class="number">0</span><span class="special">;</span>
 <span class="special">}</span>
 </pre>
 <p>
       You would call:
 </p>
-<pre class="programlisting">
-<span class="identifier">mySharedLibrary</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*&gt;(</span><span class="string">"get_value"</span><span class="special">);</span>
+<pre class="programlisting"><span class="identifier">mySharedLibrary</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*&gt;(</span><span class="string">"get_value"</span><span class="special">);</span>
 </pre>
 <p>
- [note It is recommended that you use Boost.Function to capture the return values
- of <code class="computeroutput"><span class="identifier">get</span></code>, but not required.]
     </p>
+<div class="note"><table border="0" summary="Note">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../doc/html/images/note.png"></td>
+<th align="left">Note</th>
+</tr>
+<tr><td colspan="2" align="left" valign="top"><p>
+ It is recommended that you use Boost.Function to capture the return values
+ of <code class="computeroutput"><span class="identifier">get</span></code>, but not required.
+ </p></td></tr>
+</table></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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -112,7 +121,7 @@
 </tr></table>
 <hr>
 <div class="spirit-nav">
-<a accesskey="p" href="factories.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="info.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
+<a accesskey="p" href="factories.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>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -6,32 +6,174 @@
 <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="introduction.html" title=" Introduction">
-<link rel="next" href="tutorials/tutorial01.html" title=" Tutorial 1">
+<link rel="prev" href="../index.html" title="Chapter 1. Boost.Extension">
+<link rel="next" 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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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>
+<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/tutorial02.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.tutorials"></a>Tutorials</h2></div></div></div>
+<a name="boost_extension.tutorials"></a>Tutorials</h2></div></div></div>
 <div class="toc"><dl>
-<dt><span class="section"> Tutorial 1</span></dt>
+<dt><span class="section"> Tutorial 1</span></dt>
 <dt><span class="section"> Tutorial 2</span></dt>
 <dt><span class="section"> Tutorial 3</span></dt>
 <dt><span class="section"> Tutorial 4</span></dt>
 <dt><span class="section"> Tutorial 5</span></dt>
 </dl></div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="boost_extension.tutorials.tutorial01"></a> Tutorial 1</h3></div></div></div>
+<p>
+ Create a class that we will later subclass and put it into a header file
+ called word.hpp.
+</p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">word</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">word</span><span class="special">(){}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">""</span><span class="special">;}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ This file will be included by both the shared library in which classes implement
+ this interface, and in the executable that will load these implementations.
+ The destructor ought to be virtual, just to ensure proper deletion. We create
+ one virtual function. We could actually add data to this class as well.
+ </p>
+<p>
+ Now create a file called hello_world.cpp. This will be compiled into a shared
+ library:
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="string">"word.hpp"</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">factory_map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+
+<span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
+<span class="special">};</span>
+<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="special">{</span>
+<span class="keyword">public</span><span class="special">:</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
+<span class="special">};</span>
+</pre>
+<p>
+ Now we have two classes that are derived from word, and that both implement
+ the virtual function get_val. All that's left is to declare them for exporting.
+ Normally, we just put one function in the entire shared library that exports
+ all exportable classes in the library.
+</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_word</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">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
+<span class="special">}</span>
+</pre>
+<p>
+ <code class="computeroutput"><span class="keyword">extern</span> <span class="string">"C"</span></code>
+ is required to keep the function name from being mangled. <code class="computeroutput"><span class="identifier">BOOST_EXTENSION_EXPORT_DECL</span></code>
+ is only necessary on Windows - on other platforms it does nothing. On Windows,
+ it declares that the function should be exported. This is the default in
+ shared libraries on other platforms.
+ </p>
+<p>
+ The <code class="computeroutput"><span class="identifier">factory_map</span><span class="special">::</span><span class="identifier">get</span></code> function takes two template arguments:
+ the type of factory to get (the interface returned by it), and what type
+ of info is used to identify it (which can be an arbitrary type).
+ </p>
+<p>
+ This returns a <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span></code>, in this case, <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="special">&gt;</span></code>.
+ We then index the map to find (and perhaps create) the appropriate factory,
+ and set the type of class it instantiates to the template argument of the
+ <code class="computeroutput"><span class="identifier">set</span></code> function. The argument
+ is the value for that identification info.
+ </p>
+<p>
+ Now we can write the executable.
+ </p>
+<p>
+
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">factory_map</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">shared_library</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">convenience</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="string">"word.hpp"</span>
+<span class="keyword">int</span> <span class="identifier">main</span><span class="special">()</span>
+<span class="special">{</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
+ <span class="comment">// Create the factory_map object - it will hold all of the available
+</span> <span class="comment">// constructors. Multiple factory_maps can be constructed.
+</span> <span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
+ <span class="comment">// load the shared library with
+</span> <span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLib.extension"</span><span class="special">,</span>
+ <span class="string">"extension_export_word"</span><span class="special">);</span>
+ <span class="comment">// Get a reference to the list of constructors for words.
+</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">word</span><span class="special">,</span> <span class="keyword">int</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">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;();</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;</span> <span class="number">2</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">"Error - the classes were not found."</span><span class="special">;</span>
+ <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">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</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_word</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_word</span><span class="special">)</span> <span class="special">{</span>
+ <span class="comment">// Using auto_ptr to avoid needing delete. Using smart_ptrs is recommended.
+</span> <span class="comment">// Note that this has a zero argument constructor - currently constructors
+</span> <span class="comment">// with up to six arguments can be used.
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">create</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">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</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">"\n"</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+ Now we just need to write the build file. You may have noticed above that
+ the name of the library is assumed to be libHelloWorld.extension - we'll
+ need to rename whatever shared library is compiled to that. Boost.Build can
+ do this automatically.
+ </p>
+<p>
+
+</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">extension</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">import</span> <span class="identifier">os</span> <span class="special">;</span>
+
+<span class="identifier">local</span> <span class="identifier">BOOST_ROOT</span> <span class="special">=</span> <span class="special">[</span> <span class="identifier">os</span><span class="special">.</span><span class="identifier">environ</span> <span class="identifier">BOOST_ROOT</span> <span class="special">]</span> <span class="special">;</span>
+<span class="identifier">project</span>
+ <span class="special">:</span> <span class="identifier">requirements</span>
+ <span class="special">&lt;</span><span class="identifier">include</span><span class="special">&gt;../../../</span>
+ <span class="special">&lt;</span><span class="identifier">include</span><span class="special">&gt;</span>#<span class="special">(</span><span class="identifier">BOOST_ROOT</span><span class="special">)</span>
+ <span class="special">:</span>
+ <span class="special">;</span>
+
+<span class="identifier">exe</span> <span class="identifier">HelloWorld</span> <span class="special">:</span> <span class="identifier">main</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">HelloWorldLib</span> <span class="special">:</span> <span class="identifier">hello_world</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">install</span> <span class="special">../</span><span class="identifier">bin</span> <span class="special">:</span> <span class="identifier">HelloWorld</span> <span class="identifier">HelloWorldLib</span> <span class="special">;</span>
+</pre>
+<p>
+ If you use another build system, you'll need to make sure that the output
+ shared library (dll, so, dylib etc.) is renamed correctly.
+ </p>
+</div>
 <p>
       There are currently five tutorials.
     </p>
@@ -60,7 +202,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -68,7 +210,7 @@
 </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>
+<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/tutorial02.html"><img src="../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial02.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -6,25 +6,25 @@
 <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="../tutorials.html" title="Tutorials">
-<link rel="prev" href="tutorial01.html" title=" Tutorial 1">
+<link rel="prev" href="../tutorials.html" title="Tutorials">
 <link rel="next" href="tutorial03.html" title=" Tutorial 3">
 </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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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="tutorial03.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<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="tutorial03.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.tutorials.tutorial02"></a> Tutorial 2</h3></div></div></div>
+<a name="boost_extension.tutorials.tutorial02"></a> Tutorial 2</h3></div></div></div>
 <p>
         This tutorial shows more advanced class loading. The example described here
         is contrived, and such a convoluted design is not used as an example of good
@@ -75,11 +75,10 @@
 <p>
         
 </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">extension</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>
+<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">extension</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>
 </pre>
 <p>
       </p>
@@ -90,9 +89,8 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="identifier">lib</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">vehicle</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
-<span class="identifier">lib</span> <span class="identifier">Car</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">car</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<pre class="programlisting"><span class="identifier">lib</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">vehicle</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">Car</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">car</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
 </pre>
 <p>
       </p>
@@ -106,23 +104,22 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="identifier">lib</span> <span class="identifier">Plane</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">plane</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
-<span class="identifier">lib</span> <span class="identifier">Boat</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">boat</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
-<span class="identifier">lib</span> <span class="identifier">Computer</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">computer</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
-<span class="identifier">lib</span> <span class="identifier">FlyingCar</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">flying_car</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Plane</span> <span class="identifier">Car</span> <span class="identifier">Vehicle</span>
- <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
-<span class="identifier">lib</span> <span class="identifier">CarOfTheFuture</span> <span class="special">:</span>
+<pre class="programlisting"><span class="identifier">lib</span> <span class="identifier">Plane</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">plane</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">Boat</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">boat</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Vehicle</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">Computer</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">computer</span><span class="special">.</span><span class="identifier">cpp</span> <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">FlyingCar</span> <span class="special">:</span> <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">flying_car</span><span class="special">.</span><span class="identifier">cpp</span> <span class="identifier">Plane</span> <span class="identifier">Car</span> <span class="identifier">Vehicle</span>
+ <span class="special">:</span> <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span> <span class="special">;</span>
+<span class="identifier">lib</span> <span class="identifier">CarOfTheFuture</span> <span class="special">:</span>
   <span class="identifier">multiple_inheritance</span><span class="special">/</span><span class="identifier">car_of_the_future</span><span class="special">.</span><span class="identifier">cpp</span>
- <span class="identifier">Plane</span> <span class="identifier">Car</span> <span class="identifier">Vehicle</span>
- <span class="identifier">FlyingCar</span> <span class="identifier">Computer</span> <span class="identifier">Boat</span>
+ <span class="identifier">Plane</span> <span class="identifier">Car</span> <span class="identifier">Vehicle</span>
+ <span class="identifier">FlyingCar</span> <span class="identifier">Computer</span> <span class="identifier">Boat</span>
   <span class="special">:</span>
   <span class="special">&lt;</span><span class="identifier">link</span><span class="special">&gt;</span><span class="identifier">shared</span>
 <span class="special">;</span>
 
-<span class="identifier">install</span> <span class="special">../</span><span class="identifier">bin</span> <span class="special">:</span>
- <span class="identifier">HelloWorld</span> <span class="identifier">HelloWorldLib</span> <span class="identifier">Vehicle</span> <span class="identifier">Boat</span> <span class="identifier">FlyingCar</span>
- <span class="identifier">CarOfTheFuture</span> <span class="identifier">MultipleInheritance</span>
+<span class="identifier">install</span> <span class="special">../</span><span class="identifier">bin</span> <span class="special">:</span>
+ <span class="identifier">HelloWorld</span> <span class="identifier">HelloWorldLib</span> <span class="identifier">Vehicle</span> <span class="identifier">Boat</span> <span class="identifier">FlyingCar</span>
+ <span class="identifier">CarOfTheFuture</span> <span class="identifier">MultipleInheritance</span>
   <span class="special">:</span>
   <span class="special">;</span>
 </pre>
@@ -143,22 +140,21 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_FLYING_CAR_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_BOAT_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
-<span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_COMPUTER_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
-<span class="preprocessor">#include</span> <span class="string">"flying_car.hpp"</span>
-<span class="preprocessor">#include</span> <span class="string">"boat.hpp"</span>
-<span class="preprocessor">#include</span> <span class="string">"computer.hpp"</span>
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
-<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">typeinfo</span><span class="special">&gt;</span>
-<span class="keyword">class</span> <span class="identifier">BOOST_EXTENSION_CAR_OF_THE_FUTURE_DECL</span>
- <span class="identifier">car_of_the_future</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">flying_car</span><span class="special">,</span> <span class="keyword">public</span> <span class="identifier">boat</span><span class="special">,</span> <span class="keyword">public</span> <span class="identifier">computer</span>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_FLYING_CAR_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_BOAT_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
+<span class="preprocessor">#define</span> <span class="identifier">BOOST_EXTENSION_COMPUTER_DECL</span> <span class="identifier">BOOST_EXTENSION_IMPORT_DECL</span>
+<span class="preprocessor">#include</span> <span class="string">"flying_car.hpp"</span>
+<span class="preprocessor">#include</span> <span class="string">"boat.hpp"</span>
+<span class="preprocessor">#include</span> <span class="string">"computer.hpp"</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">iostream</span><span class="special">&gt;</span>
+<span class="preprocessor">#include</span> <span class="special">&lt;</span><span class="identifier">typeinfo</span><span class="special">&gt;</span>
+<span class="keyword">class</span> <span class="identifier">BOOST_EXTENSION_CAR_OF_THE_FUTURE_DECL</span>
+ <span class="identifier">car_of_the_future</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">flying_car</span><span class="special">,</span> <span class="keyword">public</span> <span class="identifier">boat</span><span class="special">,</span> <span class="keyword">public</span> <span class="identifier">computer</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">car_of_the_future</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">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nCreated a Car of the Future"</span><span class="special">;}</span>
- <span class="special">~</span><span class="identifier">car_of_the_future</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">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nDestroyed a Car of the Future"</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">list_capabilities</span><span class="special">(</span><span class="keyword">void</span><span class="special">);</span>
+ <span class="identifier">car_of_the_future</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">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nCreated a Car of the Future"</span><span class="special">;}</span>
+ <span class="special">~</span><span class="identifier">car_of_the_future</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">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\nDestroyed a Car of the Future"</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">list_capabilities</span><span class="special">(</span><span class="keyword">void</span><span class="special">);</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -166,7 +162,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>
@@ -174,7 +170,7 @@
 </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="tutorial03.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
+<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="tutorial03.html"><img src="../../../../doc/html/images/next.png" alt="Next"></a>
 </div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial03.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,10 +12,10 @@
 <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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_extension.tutorials.tutorial03"></a> Tutorial 3</h3></div></div></div>
+<a name="boost_extension.tutorials.tutorial03"></a> Tutorial 3</h3></div></div></div>
 <p>
         This tutorial shows how to register and instantiate classes that have multi-argument
         constructors (not default constructors) in Boost.Extension. In the example
@@ -46,26 +46,25 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">six_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">lots_of_parameters_interface</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">six_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">lots_of_parameters_interface</span>
 <span class="special">{</span>
   <span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">six_parameters</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">ptr_a</span><span class="special">)</span>
- <span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">ptr_a</span><span class="special">)</span>
+ <span class="identifier">six_parameters</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">ptr_a</span><span class="special">)</span>
+ <span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="identifier">b</span><span class="special">,</span> <span class="identifier">i</span><span class="special">,</span> <span class="identifier">c</span><span class="special">,</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">a</span><span class="special">,</span> <span class="identifier">ptr_a</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">"Constructor called."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Parameters:"</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tbool: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">b</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tunsigned int: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tchar: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tstring: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tA.i: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">a</span><span class="special">.</span><span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tptr_a-&gt;i: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ptr_a</span><span class="special">-&gt;</span><span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Constructor called."</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Parameters:"</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tbool: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">b</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tunsigned int: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tchar: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">c</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tstring: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">s</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tA.i: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">a</span><span class="special">.</span><span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"\tptr_a-&gt;i: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">ptr_a</span><span class="special">-&gt;</span><span class="identifier">i</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">std</span><span class="special">::</span><span class="identifier">cout</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="special">}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">six_parameters</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">six_parameters</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -75,22 +74,21 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">A</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">A</span>
 <span class="special">{</span>
   <span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">A</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">i</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{}</span>
- <span class="keyword">int</span> <span class="identifier">i</span><span class="special">;</span>
+ <span class="identifier">A</span><span class="special">(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">)</span> <span class="special">:</span> <span class="identifier">i</span><span class="special">(</span><span class="identifier">i</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">int</span> <span class="identifier">i</span><span class="special">;</span>
 <span class="special">};</span>
 
 
-<span class="keyword">class</span> <span class="identifier">lots_of_parameters_interface</span>
+<span class="keyword">class</span> <span class="identifier">lots_of_parameters_interface</span>
 <span class="special">{</span>
   <span class="keyword">public</span><span class="special">:</span>
- <span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">c</span><span class="special">,</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">ptr_a</span><span class="special">)</span> <span class="special">{}</span>
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">b</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">i</span><span class="special">,</span> <span class="keyword">char</span> <span class="identifier">c</span><span class="special">,</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">s</span><span class="special">,</span> <span class="identifier">A</span> <span class="identifier">a</span><span class="special">,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="identifier">ptr_a</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">lots_of_parameters_interface</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -102,13 +100,12 @@
 <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</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>
+<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</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">get</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span>
- <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</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">A</span><span class="special">,</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;()[</span><span class="number">6</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">six_parameters</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span>
+ <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</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">A</span><span class="special">,</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;()[</span><span class="number">6</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">six_parameters</span><span class="special">&gt;();</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -117,36 +114,35 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
 
   <span class="comment">// Create the factory_map object - it will hold all of the available
-</span> <span class="comment">// constructors. Multiple factory_maps can be constructed.
-</span> <span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
+</span> <span class="comment">// constructors. Multiple factory_maps can be constructed.
+</span> <span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
 
   <span class="comment">// load the shared library with
-</span> <span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libParametersLib.extension"</span><span class="special">,</span> <span class="string">"extension_export"</span><span class="special">);</span>
+</span> <span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libParametersLib.extension"</span><span class="special">,</span> <span class="string">"extension_export"</span><span class="special">);</span>
 
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</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">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;();</span>
- <span class="keyword">if</span> <span class="special">(</span><span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">!=</span> <span class="number">1</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">"Error - the class was not found."</span><span class="special">;</span>
- <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span>
+ <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</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">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;();</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">!=</span> <span class="number">1</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">"Error - the class was not found."</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
   <span class="special">}</span>
 
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span>
- <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">par</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">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">,</span> <span class="keyword">bool</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">,</span>
+ <span class="keyword">char</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">A</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">par</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">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">lots_of_parameters_interface</span><span class="special">&gt;</span>
- <span class="identifier">par_ptr</span><span class="special">(</span><span class="identifier">par</span><span class="special">-&gt;</span><span class="identifier">create</span><span class="special">(</span><span class="keyword">true</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="char">'c'</span><span class="special">,</span> <span class="string">"test"</span><span class="special">,</span> <span class="identifier">A</span><span class="special">(</span><span class="number">2</span><span class="special">),</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">A</span><span class="special">(</span><span class="number">15</span><span class="special">))));</span>
+ <span class="identifier">par_ptr</span><span class="special">(</span><span class="identifier">par</span><span class="special">-&gt;</span><span class="identifier">create</span><span class="special">(</span><span class="keyword">true</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="char">'c'</span><span class="special">,</span> <span class="string">"test"</span><span class="special">,</span> <span class="identifier">A</span><span class="special">(</span><span class="number">2</span><span class="special">),</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">A</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">A</span><span class="special">(</span><span class="number">15</span><span class="special">))));</span>
 
- <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -177,7 +173,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial04.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,10 +12,10 @@
 <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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_extension.tutorials.tutorial04"></a> Tutorial 4</h3></div></div></div>
+<a name="boost_extension.tutorials.tutorial04"></a> Tutorial 4</h3></div></div></div>
 <p>
         In this tutorial we will see different features of the library related to
         multiple loading of the same library, instance or interface.
@@ -46,24 +46,23 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"hello"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<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_word</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="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_word</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">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -79,25 +78,24 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">world</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world! v2"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"world! v2"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
+<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">word</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"| v2 hello"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">get_val</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">"| v2 hello"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<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_word</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="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_word</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">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">22</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">22</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">world</span><span class="special">&gt;();</span>
  <span class="comment">// int could be used as version (v2 word 2)
-</span> <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">21</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
+</span> <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">21</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
  <span class="comment">// int could be used as version (v2 word 1)
 </span><span class="special">}</span>
 </pre>
@@ -111,19 +109,18 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
+<pre class="programlisting"><span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
 
 <span class="comment">// load hello world first version
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLib.extension"</span><span class="special">,</span>
+</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLib.extension"</span><span class="special">,</span>
                      <span class="string">"extension_export_word"</span><span class="special">);</span>
 
 <span class="comment">// load hello world second version
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
+</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
                      <span class="string">"extension_export_word"</span><span class="special">);</span>
 
 <span class="comment">// load hello world second version again
-</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
+</span><span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libHelloWorldLibv2.extension"</span><span class="special">,</span>
                      <span class="string">"extension_export_word"</span><span class="special">);</span>
 </pre>
 <p>
@@ -138,32 +135,28 @@
 <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">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</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_word</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_word</span><span class="special">)</span> <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">create</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">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span><span class="special">;</span>
+<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">word</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_word</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_word</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_word</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">word</span><span class="special">&gt;</span> <span class="identifier">word_ptr</span><span class="special">(</span><span class="identifier">current_word</span><span class="special">-&gt;</span><span class="identifier">create</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">word_ptr</span><span class="special">-&gt;</span><span class="identifier">get_val</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</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>
 </pre>
 <p>
       </p>
 <p>
         We get the following output:
       </p>
-<div class="informaltable">
-<h4>
-<a name="id928153"></a>
- </h4>
-<table class="table">
+<div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td>
-<code class="literal">words:</code><br> <code class="literal">hello world! | v2 hello
- world! v2 | v2 hello world! v2</code>
-</td></tr></tbody>
-</table>
-</div>
+ <p>
+ <code class="literal">words:</code><br> <code class="literal">hello world! | v2 hello
+ world! v2 | v2 hello world! v2</code>
+ </p>
+ </td></tr></tbody>
+</table></div>
 <p>
         The first "hello world" is returned by the first version of the
         library, and the second and third returned by the second version.
@@ -179,12 +172,11 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">salute</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">salute</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">salute</span><span class="special">(){}</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">say</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">""</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">salute</span><span class="special">(){}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span> <span class="identifier">say</span><span class="special">(){</span><span class="keyword">return</span> <span class="string">""</span><span class="special">;}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -195,25 +187,24 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">hello</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</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">"hello"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</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">"hello"</span><span class="special">;}</span>
 <span class="special">};</span>
 
-<span class="keyword">class</span> <span class="identifier">bye</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
+<span class="keyword">class</span> <span class="identifier">bye</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">salute</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</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">"bye!"</span><span class="special">;}</span>
+ <span class="keyword">virtual</span> <span class="keyword">const</span> <span class="keyword">char</span> <span class="special">*</span><span class="identifier">say</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">"bye!"</span><span class="special">;}</span>
 <span class="special">};</span>
 
 
-<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_salute</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="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_salute</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">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
- <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bye</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">1</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">hello</span><span class="special">&gt;();</span>
+ <span class="identifier">fm</span><span class="special">.</span><span class="identifier">get</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;()[</span><span class="number">2</span><span class="special">].</span><span class="identifier">set</span><span class="special">&lt;</span><span class="identifier">bye</span><span class="special">&gt;();</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -233,36 +224,32 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">salute_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">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;();</span>
+<pre class="programlisting"><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">salute_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">salute</span><span class="special">,</span> <span class="keyword">int</span><span class="special">&gt;();</span>
 
-<span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"salutes: "</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">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_salute</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">"salutes: "</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">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="keyword">int</span><span class="special">,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="special">&gt;::</span><span class="identifier">iterator</span> <span class="identifier">current_salute</span> <span class="special">=</span>
      <span class="identifier">salute_factory_list</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
- <span class="identifier">current_salute</span> <span class="special">!=</span> <span class="identifier">salute_factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
- <span class="special">++</span><span class="identifier">current_salute</span><span class="special">)</span> <span class="special">{</span>
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="identifier">salute_ptr</span><span class="special">(</span><span class="identifier">current_salute</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</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">salute_ptr</span><span class="special">-&gt;</span><span class="identifier">say</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</span><span class="special">;</span>
+ <span class="identifier">current_salute</span> <span class="special">!=</span> <span class="identifier">salute_factory_list</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+ <span class="special">++</span><span class="identifier">current_salute</span><span class="special">)</span> <span class="special">{</span>
+ <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">salute</span><span class="special">&gt;</span> <span class="identifier">salute_ptr</span><span class="special">(</span><span class="identifier">current_salute</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</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">salute_ptr</span><span class="special">-&gt;</span><span class="identifier">say</span><span class="special">()</span> <span class="special">&lt;&lt;</span> <span class="string">" "</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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 </pre>
 <p>
       </p>
 <p>
         The output is:
       </p>
-<div class="informaltable">
-<h4>
-<a name="id929257"></a>
- </h4>
-<table class="table">
+<div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
 <tbody><tr><td>
-<code class="literal">salutes:</code> <br> <code class="literal">hello bye!</code>
-</td></tr></tbody>
-</table>
-</div>
+ <p>
+ <code class="literal">salutes:</code> <br> <code class="literal">hello bye!</code>
+ </p>
+ </td></tr></tbody>
+</table></div>
 <p>
         In conclusion, with Boost.Extension we can implement the same class in different
         libraries, the same class for different interfaces and load multiple libraries
@@ -271,7 +258,7 @@
 </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>

Modified: sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html
==============================================================================
--- sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html (original)
+++ sandbox/libs/extension/doc/html/boost_extension/tutorials/tutorial05.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,10 +12,10 @@
 <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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</td>
+<td align="center">People</td>
+<td align="center">FAQ</td>
 <td align="center">More</td>
 </tr></table>
 <hr>
@@ -24,7 +24,7 @@
 </div>
 <div class="section" lang="en">
 <div class="titlepage"><div><div><h3 class="title">
-<a name="boost_extension.tutorials.tutorial05"></a> Tutorial 5</h3></div></div></div>
+<a name="boost_extension.tutorials.tutorial05"></a> Tutorial 5</h3></div></div></div>
 <p>
         In this tutorial we will describe an advanced example using the Info class.
         The basics of Info classes are explained in the specific section. We expect
@@ -42,17 +42,16 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">class</span> <span class="identifier">protocol</span>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">protocol</span>
 <span class="special">{</span>
  <span class="keyword">public</span><span class="special">:</span>
 
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</span><span class="special">)</span> <span class="special">{}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">);</span> <span class="special">}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">""</span><span class="special">);</span> <span class="special">}</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</span><span class="special">)</span> <span class="special">{}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">protocol</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">protocol</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -63,47 +62,46 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="comment">// MSN protocol implementation
-</span><span class="keyword">class</span> <span class="identifier">MSN</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">protocol</span>
+<pre class="programlisting"><span class="comment">// MSN protocol implementation
+</span><span class="keyword">class</span> <span class="identifier">MSN</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">protocol</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</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">"MSN: Logged In"</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">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</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">"MSN: Logged In"</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="special">}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">"MSN: message ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="string">"] sent"</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">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">"MSN: message ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="string">"] sent"</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="special">}</span>
- <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"MSN: hello! msg received"</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">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"MSN: hello! msg received"</span><span class="special">);</span>
         <span class="special">}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</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">"MSN: Status changed to ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">new_status</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">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</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">"MSN: Status changed to ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">new_status</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="special">}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">MSN</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">MSN</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 
 <span class="comment">// Jabber protocol implementation
-</span><span class="keyword">class</span> <span class="identifier">Jabber</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">protocol</span>
+</span><span class="keyword">class</span> <span class="identifier">Jabber</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">protocol</span>
 <span class="special">{</span>
 <span class="keyword">public</span><span class="special">:</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</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">"Jabber: Logged In"</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">virtual</span> <span class="keyword">void</span> <span class="identifier">login</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="special">&amp;</span><span class="identifier">user</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="special">&amp;</span><span class="identifier">pass</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">"Jabber: Logged In"</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="special">}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">"Jabber: message ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="string">"] sent"</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">virtual</span> <span class="keyword">void</span> <span class="identifier">send</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="special">&amp;</span><span class="identifier">msg</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">"Jabber: message ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">msg</span> <span class="special">&lt;&lt;</span> <span class="string">"] sent"</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="special">}</span>
- <span class="keyword">virtual</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Jabber: hello! msg received"</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">receive</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="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">(</span><span class="string">"Jabber: hello! msg received"</span><span class="special">);</span>
         <span class="special">}</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</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">"Jabber: Status changed to ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">new_status</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">virtual</span> <span class="keyword">void</span> <span class="identifier">change_status</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="special">&amp;</span><span class="identifier">new_status</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">"Jabber: Status changed to ["</span> <span class="special">&lt;&lt;</span> <span class="identifier">new_status</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="special">}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Jabber</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Jabber</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -125,16 +123,15 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="comment">// interface for the parameters of each plugin
-</span><span class="keyword">class</span> <span class="identifier">network_parameters</span>
+<pre class="programlisting"><span class="comment">// interface for the parameters of each plugin
+</span><span class="keyword">class</span> <span class="identifier">network_parameters</span>
 <span class="special">{</span>
  <span class="keyword">public</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">hostname</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</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">port</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</span><span class="special">(</span><span class="keyword">void</span><span class="special">)=</span> <span class="number">0</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">hostname</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</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">port</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</span><span class="special">(</span><span class="keyword">void</span><span class="special">)=</span> <span class="number">0</span><span class="special">;</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">network_parameters</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{};</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">network_parameters</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span> <span class="special">{};</span>
 <span class="special">};</span>
 </pre>
 <p>
@@ -145,46 +142,44 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="comment">// MSN implementation
-</span><span class="keyword">class</span> <span class="identifier">MSN_network_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">network_parameters</span>
+<pre class="programlisting"><span class="comment">// MSN implementation
+</span><span class="keyword">class</span> <span class="identifier">MSN_network_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">network_parameters</span>
 <span class="special">{</span>
  <span class="keyword">public</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">hostname</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">"msn.messenger.com"</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">port</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">"1863"</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">hostname</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">"msn.messenger.com"</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">port</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">"1863"</span><span class="special">;</span> <span class="special">}</span>
 
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</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="string">"http mode set"</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="special">}</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</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="string">"http mode set"</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="special">}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">MSN_network_parameters</span><span class="special">()</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">MSN_network_parameters</span><span class="special">()</span> <span class="special">{}</span>
 <span class="special">};</span>
 
 
 <span class="comment">// Jabber implementation
-</span><span class="keyword">class</span> <span class="identifier">Jabber_network_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">network_parameters</span>
+</span><span class="keyword">class</span> <span class="identifier">Jabber_network_parameters</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">network_parameters</span>
 <span class="special">{</span>
  <span class="keyword">public</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">hostname</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">"jabber.org"</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">port</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">"7063"</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">hostname</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">"jabber.org"</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">port</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">"7063"</span><span class="special">;</span> <span class="special">}</span>
 
- <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</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="string">"http mode not supported"</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="special">}</span>
+ <span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">set_http_mode</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="string">"http mode not supported"</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="special">}</span>
 
- <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Jabber_network_parameters</span><span class="special">()</span> <span class="special">{}</span>
+ <span class="keyword">virtual</span> <span class="special">~</span><span class="identifier">Jabber_network_parameters</span><span class="special">()</span> <span class="special">{}</span>
 <span class="special">};</span>
 </pre>
 <p>
         We want to be able to compare smart pointers to <code class="computeroutput"><span class="identifier">network_parameters</span></code>:
         
 </p>
-<pre class="programlisting">
-<span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span>
- <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">second</span><span class="special">)</span> <span class="special">{</span>
- <span class="keyword">int</span> <span class="identifier">comp</span> <span class="special">=</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">first</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">(),</span> <span class="identifier">second</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">());</span>
- <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">comp</span><span class="special">)</span> <span class="special">{</span>
- <span class="keyword">return</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">first</span><span class="special">-&gt;</span><span class="identifier">port</span><span class="special">(),</span> <span class="identifier">second</span><span class="special">-&gt;</span><span class="identifier">port</span><span class="special">())</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</span>
+<pre class="programlisting"><span class="keyword">inline</span> <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">&lt;(</span><span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">first</span><span class="special">,</span>
+ <span class="keyword">const</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&amp;</span> <span class="identifier">second</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">int</span> <span class="identifier">comp</span> <span class="special">=</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">first</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">(),</span> <span class="identifier">second</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">());</span>
+ <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">comp</span><span class="special">)</span> <span class="special">{</span>
+ <span class="keyword">return</span> <span class="identifier">strcmp</span><span class="special">(</span><span class="identifier">first</span><span class="special">-&gt;</span><span class="identifier">port</span><span class="special">(),</span> <span class="identifier">second</span><span class="special">-&gt;</span><span class="identifier">port</span><span class="special">())</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</span>
   <span class="special">}</span>
- <span class="keyword">else</span> <span class="keyword">return</span> <span class="identifier">comp</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</span>
+ <span class="keyword">else</span> <span class="keyword">return</span> <span class="identifier">comp</span> <span class="special">&lt;</span> <span class="number">0</span><span class="special">;</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -194,14 +189,13 @@
 <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_plugins</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>
+<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_plugins</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">MSN</span><span class="special">,</span> <span class="identifier">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">MSN_network_parameters</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">Jabber</span><span class="special">,</span> <span class="identifier">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">Jabber_network_parameters</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">MSN</span><span class="special">,</span> <span class="identifier">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">MSN_network_parameters</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">Jabber</span><span class="special">,</span> <span class="identifier">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;(</span><span class="keyword">new</span> <span class="identifier">Jabber_network_parameters</span><span class="special">));</span>
 <span class="special">}</span>
 </pre>
 <p>
@@ -212,78 +206,77 @@
 <p>
         
 </p>
-<pre class="programlisting">
-<span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">void</span><span class="special">)</span>
 <span class="special">{</span>
- <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
+ <span class="keyword">using</span> <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">extensions</span><span class="special">;</span>
 
   <span class="comment">// create the factory_map object - it will hold all of the available
-</span> <span class="comment">// constructors. Multiple factory_maps can be constructed.
-</span> <span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
+</span> <span class="comment">// constructors. Multiple factory_maps can be constructed.
+</span> <span class="identifier">factory_map</span> <span class="identifier">fm</span><span class="special">;</span>
 
   <span class="comment">// load the shared library with
-</span> <span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libIMPlugins.extension"</span><span class="special">,</span>
+</span> <span class="identifier">load_single_library</span><span class="special">(</span><span class="identifier">fm</span><span class="special">,</span> <span class="string">"libIMPlugins.extension"</span><span class="special">,</span>
                       <span class="string">"extension_export_plugins"</span><span class="special">);</span>
 
   <span class="comment">// get a reference to the list of constructors for protocols
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">protocol</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">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;();</span>
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">protocol</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">protocol</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="special">&gt;();</span>
 
- <span class="keyword">if</span> <span class="special">(</span><span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;</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">&lt;&lt;</span> <span class="string">"Error - the classes were not found."</span><span class="special">;</span>
- <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
+ <span class="keyword">if</span> <span class="special">(</span><span class="identifier">factory_list</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span> <span class="special">&lt;</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">&lt;&lt;</span> <span class="string">"Error - the classes were not found."</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">1</span><span class="special">;</span>
   <span class="special">}</span>
 
- <span class="identifier">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="special">&gt;</span>
- <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">current_plugin</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">std</span><span class="special">::</span><span class="identifier">map</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;,</span> <span class="identifier">factory</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="special">&gt;</span>
+ <span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">current_plugin</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="comment">// MSN plugin
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="identifier">MSN_ptr</span><span class="special">(</span><span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</span><span class="special">());</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="identifier">msn_parameters</span> <span class="special">=</span>
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="identifier">MSN_ptr</span><span class="special">(</span><span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</span><span class="special">());</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="identifier">msn_parameters</span> <span class="special">=</span>
     <span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">;</span>
   <span class="identifier">current_plugin</span><span class="special">++;</span>
 
   <span class="comment">// Jabber plugin
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="identifier">Jabber_ptr</span><span class="special">(</span><span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</span><span class="special">());</span>
- <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="identifier">jabber_parameters</span> <span class="special">=</span>
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span><span class="special">&lt;</span><span class="identifier">protocol</span><span class="special">&gt;</span> <span class="identifier">Jabber_ptr</span><span class="special">(</span><span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">second</span><span class="special">.</span><span class="identifier">create</span><span class="special">());</span>
+ <span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special">&lt;</span><span class="identifier">network_parameters</span><span class="special">&gt;</span> <span class="identifier">jabber_parameters</span> <span class="special">=</span>
     <span class="identifier">current_plugin</span><span class="special">-&gt;</span><span class="identifier">first</span><span class="special">;</span>
 
   <span class="comment">// server
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"MSN hostname: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">msn_parameters</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Jabber hostname: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">jabber_parameters</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</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> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"MSN hostname: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">msn_parameters</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"Jabber hostname: "</span> <span class="special">&lt;&lt;</span> <span class="identifier">jabber_parameters</span><span class="special">-&gt;</span><span class="identifier">hostname</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</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="comment">// http_mode: note that one of the implementations doesn't support it,
-</span> <span class="comment">// having a base class
-</span> <span class="comment">// and different specific concrete network parameters allow us to handle this
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"MSN: "</span><span class="special">;</span>
+</span> <span class="comment">// having a base class
+</span> <span class="comment">// and different specific concrete network parameters allow us to handle this
+</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="string">"MSN: "</span><span class="special">;</span>
   <span class="identifier">msn_parameters</span><span class="special">-&gt;</span><span class="identifier">set_http_mode</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">"Jabber: "</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">"Jabber: "</span><span class="special">;</span>
   <span class="identifier">jabber_parameters</span><span class="special">-&gt;</span><span class="identifier">set_http_mode</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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
   
   <span class="comment">// login
-</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">login</span><span class="special">(</span><span class="string">"testuser"</span><span class="special">,</span> <span class="string">"testpass"</span><span class="special">);</span>
- <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">login</span><span class="special">(</span><span class="string">"testuser"</span><span class="special">,</span> <span class="string">"testpass"</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">login</span><span class="special">(</span><span class="string">"testuser"</span><span class="special">,</span> <span class="string">"testpass"</span><span class="special">);</span>
+ <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">login</span><span class="special">(</span><span class="string">"testuser"</span><span class="special">,</span> <span class="string">"testpass"</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
         
   <span class="comment">// send message
-</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">send</span><span class="special">(</span><span class="string">"hi"</span><span class="special">);</span>
+</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">send</span><span class="special">(</span><span class="string">"hi"</span><span class="special">);</span>
   <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">send</span><span class="special">(</span><span class="string">"hi"</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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
         
   <span class="comment">// change status
-</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">change_status</span><span class="special">(</span><span class="string">"away"</span><span class="special">);</span>
+</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">change_status</span><span class="special">(</span><span class="string">"away"</span><span class="special">);</span>
   <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">change_status</span><span class="special">(</span><span class="string">"away"</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">std</span><span class="special">::</span><span class="identifier">endl</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">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
 
   <span class="comment">// wait for message
-</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">receive</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">receive</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</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> <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">MSN_ptr</span><span class="special">-&gt;</span><span class="identifier">receive</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special">&lt;&lt;</span> <span class="identifier">Jabber_ptr</span><span class="special">-&gt;</span><span class="identifier">receive</span><span class="special">()</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">std</span><span class="special">::</span><span class="identifier">cout</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="number">0</span><span class="special">;</span>
+ <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
 <span class="special">}</span>
 
 </pre>
@@ -292,28 +285,27 @@
 <p>
         And we get the following output:
       </p>
-<div class="informaltable">
-<h4>
-<a name="id934158"></a>
- </h4>
-<table class="table">
+<div class="informaltable"><table class="table">
 <colgroup><col></colgroup>
-<tbody><tr><td><code class="literal">MSN hostname: msn.messenger.com<br> Jabber hostname:
- jabber.org<br> <br> MSN: http mode set<br> Jabber: http mode
- not supported<br> <br> MSN: Logged In<br> Jabber: Logged In<br>
- <br> MSN: message [hi] sent<br> Jabber: message [hi] sent<br>
- <br> MSN: Status changed to [away]<br> Jabber: Status changed to
- [away]<br> <br> MSN: hello! msg received<br> Jabber: hello! msg
- received<br> </code></td></tr></tbody>
-</table>
-</div>
+<tbody><tr><td>
+ <p>
+ <code class="literal">MSN hostname: msn.messenger.com<br> Jabber hostname: jabber.org<br>
+ <br> MSN: http mode set<br> Jabber: http mode not supported<br>
+ <br> MSN: Logged In<br> Jabber: Logged In<br> <br> MSN: message
+ [hi] sent<br> Jabber: message [hi] sent<br> <br> MSN: Status
+ changed to [away]<br> Jabber: Status changed to [away]<br> <br>
+ MSN: hello! msg received<br> Jabber: hello! msg received<br>
+ </code>
+ </p>
+ </td></tr></tbody>
+</table></div>
 <p>
         The complete code is in the <code class="literal">examples/info/im</code> directory.
       </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 © 2007 Jeremy Pack, Mariano G. Consoni<p>
+<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>

Added: sandbox/libs/extension/doc/html/images/blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/caution.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/draft.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/home.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/important.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/next.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/next_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/note.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/prev.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/prev_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/tip.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/toc-blank.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/toc-minus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/toc-plus.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/up.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/up_disabled.png
==============================================================================
Binary file. No diff available.

Added: sandbox/libs/extension/doc/html/images/warning.png
==============================================================================
Binary file. No diff available.

Modified: sandbox/libs/extension/doc/html/index.html
==============================================================================
--- sandbox/libs/extension/doc/html/index.html (original)
+++ sandbox/libs/extension/doc/html/index.html 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -5,26 +5,26 @@
 <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="next" href="boost_extension/introduction.html" title=" Introduction">
+<link rel="next" href="boost_extension/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">Home</td>
 <td align="center">Libraries</td>
-<td align="center">People</td>
-<td align="center">FAQ</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_extension/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_extension/tutorials.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_extension"></a>Chapter 1. Boost.Extension</h2></div>
-<div><p class="copyright">Copyright © 2007 Jeremy Pack, Mariano G. Consoni</p></div>
+<div><p class="copyright">Copyright © 2008 Jeremy Pack, Mariano G. Consoni</p></div>
 <div><div class="legalnotice">
-<a name="id903160"></a><p>
+<a name="id435092"></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>
@@ -33,10 +33,10 @@
 <div class="toc">
 <p><b>Table of Contents</b></p>
 <dl>
-<dt><span class="section"> Introduction</span></dt>
+<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 1</span></dt>
 <dt><span class="section"> Tutorial 2</span></dt>
 <dt><span class="section"> Tutorial 3</span></dt>
 <dt><span class="section"> Tutorial 4</span></dt>
@@ -44,22 +44,70 @@
 </dl></dd>
 <dt><span class="section"> Factories</span></dt>
 <dt><span class="section"> Shared Libraries</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dd><dl>
+<dt><span class="section">Header <boost/extension/common.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/convenience.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/extension.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/factory.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/factory_map.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/filesystem.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/functor.hpp></span></dt>
+<dt><span class="section">Header <boost/extension/shared_library.hpp></span></dt>
+</dl></dd>
 <dt><span class="section"> Info Classes</span></dt>
 <dt><span class="section"> Performance Analysis</span></dt>
+<dt><span class="section"> FAQ</span></dt>
 <dt><span class="section"> Appendices</span></dt>
 <dd><dl>
-<dt><span class="section"> Appendix A - Windows Export and Import Declarations</span></dt>
-<dt><span class="section"> Appendix B - Optional Dependencies</span></dt>
-<dt><span class="section"> Appendix C - OS X Shared Libraries</span></dt>
+<dt><span class="section"><a href="boost_extension/appendices.html#boost_extension.appendices.appendix_a"> Appendix A -
+ Windows Export and Import Declarations</a></span></dt>
+<dt><span class="section"><a href="boost_extension/appendices/appendix_b.html"> Appendix B -
+ Optional Dependencies</a></span></dt>
 </dl></dd>
 </dl>
 </div>
+<div class="section" lang="en">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="boost_extension.introduction"></a> Introduction</h2></div></div></div>
+<p>
+ The Boost.Extension library has been developed to ease the development of plugins
+ and similar extensions to software. Classes can be made available from shared
+ libraries and loaded by the application.
+ </p>
+<p>
+ Among others, the library has the following features:
+ </p>
+<div class="itemizedlist"><ul type="disc">
+<li>
+ Multiple and virtual inheritance are supported
+ </li>
+<li>
+ Library users do not need to use any macros (besides those required by Windows
+ for exported functions)
+ </li>
+<li>
+ Only one external function required per shared library to export classes
+ </li>
+<li>
+ RTTI is used by default, but it is possible to use user-defined type identification
+ </li>
+<li>
+ Classes do not need to be modified to be loadable
+ </li>
+</ul></div>
+<p>
+ This library is currently in development in preparation for a review for inclusion
+ in the Boost C++ Libraries. For ongoing status updates, check <a href="http://boost-extension.blogspot.com/" target="_top">C++
+ Plugins and Reflection</a>.
+ </p>
+</div>
 </div>
 <table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
 <td align="left"><p><small>Last revised: February 12, 2008 at 19:25:00 GMT</small></p></td>
 <td align="right"><div class="copyright-footer"></div></td>
 </tr></table>
 <hr>
-<div class="spirit-nav"><a accesskey="n" href="boost_extension/introduction.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
+<div class="spirit-nav"><a accesskey="n" href="boost_extension/tutorials.html"><img src="../../doc/html/images/next.png" alt="Next"></a></div>
 </body>
 </html>

Modified: sandbox/libs/extension/doc/info.qbk
==============================================================================
--- sandbox/libs/extension/doc/info.qbk (original)
+++ sandbox/libs/extension/doc/info.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - info class doc ]
-[/ Copyright 2007 Marano G. Consoni ]
+[/ Copyright 2008 Marano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/introduction.qbk
==============================================================================
--- sandbox/libs/extension/doc/introduction.qbk (original)
+++ sandbox/libs/extension/doc/introduction.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - intro ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/performance_analysis.qbk
==============================================================================
--- sandbox/libs/extension/doc/performance_analysis.qbk (original)
+++ sandbox/libs/extension/doc/performance_analysis.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - performance analysis ]
-[/ Copyright 2007 Mariano G. Consoni and Jeremy Pack]
+[/ Copyright 2008 Mariano G. Consoni and Jeremy Pack]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/quick_start.qbk
==============================================================================
--- sandbox/libs/extension/doc/quick_start.qbk (original)
+++ sandbox/libs/extension/doc/quick_start.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - quick start ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/shared_libraries.qbk
==============================================================================
--- sandbox/libs/extension/doc/shared_libraries.qbk (original)
+++ sandbox/libs/extension/doc/shared_libraries.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - shared libraries ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial1.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial1.qbk (original)
+++ sandbox/libs/extension/doc/tutorial1.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - first tutorial ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial2.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial2.qbk (original)
+++ sandbox/libs/extension/doc/tutorial2.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - second tutorial ]
-[/ Copyright 2007 Jeremy Pack ]
+[/ Copyright 2008 Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial3.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial3.qbk (original)
+++ sandbox/libs/extension/doc/tutorial3.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - third tutorial ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2008 Mariano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial4.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial4.qbk (original)
+++ sandbox/libs/extension/doc/tutorial4.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - fourth tutorial ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2008 Mariano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial5.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial5.qbk (original)
+++ sandbox/libs/extension/doc/tutorial5.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - fifth tutorial ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2008 Mariano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorial6.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorial6.qbk (original)
+++ sandbox/libs/extension/doc/tutorial6.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - sixth tutorial ]
-[/ Copyright 2007 Mariano G. Consoni ]
+[/ Copyright 2008 Mariano G. Consoni ]
 [/ 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) ]

Modified: sandbox/libs/extension/doc/tutorials.qbk
==============================================================================
--- sandbox/libs/extension/doc/tutorials.qbk (original)
+++ sandbox/libs/extension/doc/tutorials.qbk 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -1,5 +1,5 @@
 [/ Boost.Extension - tutorials ]
-[/ Copyright 2007 Mariano G. Consoni and Jeremy Pack ]
+[/ Copyright 2008 Mariano G. Consoni and Jeremy Pack ]
 [/ 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) ]

Modified: sandbox/libs/extension/test/construction.cpp
==============================================================================
--- sandbox/libs/extension/test/construction.cpp (original)
+++ sandbox/libs/extension/test/construction.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -81,7 +81,7 @@
     (m["An unloaded car!"].create(),
      (Automobile*)0);
 }
-
+/*
 namespace boost { namespace extensions {
 template <>
 Automobile * create_function<Automobile, Racecar>::create()
@@ -97,7 +97,7 @@
   BOOST_CHECK(f.is_valid());
   std::auto_ptr<Automobile> racecar(f.create());
   BOOST_CHECK_EQUAL(racecar->getSpeed(), 101);
-}
+}*/
 
 BOOST_AUTO_TEST_CASE(factory_map_argless)
 {

Modified: sandbox/libs/extension/test/double_param_test.cpp
==============================================================================
--- sandbox/libs/extension/test/double_param_test.cpp (original)
+++ sandbox/libs/extension/test/double_param_test.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -82,14 +82,15 @@
     (m["An unloaded car!"].create(30, 1.5f),
      (Automobile*)0);
 }
-
-namespace boost { namespace extensions {
+/*
+namespace boost { namespace extensions { namespace impl {
 template <>
 Automobile * create_function<Automobile, Racecar>::create()
 {
   return new Racecar(25, 2.0f);
 }
-}} // namespace boost::extensions
+}}} // namespace boost::extensions::impl
+*/
 
 BOOST_AUTO_TEST_CASE(factory_template)
 {

Modified: sandbox/libs/extension/test/single_param_test.cpp
==============================================================================
--- sandbox/libs/extension/test/single_param_test.cpp (original)
+++ sandbox/libs/extension/test/single_param_test.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -82,7 +82,7 @@
     (m["An unloaded car!"].create(30),
      (Automobile*)0);
 }
-
+/*
 namespace boost { namespace extensions {
 template <>
 Automobile * create_function<Automobile, Racecar>::create()
@@ -98,7 +98,7 @@
   BOOST_CHECK(f.is_valid());
   std::auto_ptr<Automobile> racecar(f.create(60));
   BOOST_CHECK_EQUAL(racecar->getSpeed(), 180);
-}
+}*/
 
 BOOST_AUTO_TEST_CASE(factory_map_single_param)
 {

Modified: sandbox/libs/reflection/examples/Jamfile.v2
==============================================================================
--- sandbox/libs/reflection/examples/Jamfile.v2 (original)
+++ sandbox/libs/reflection/examples/Jamfile.v2 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -15,10 +15,12 @@
 import os ;
 
 local BOOST_ROOT = [ os.environ BOOST_ROOT ] ;
+local BOOST_SANDBOX_ROOT = [ os.environ BOOST_SANDBOX_ROOT ] ;
 project
     : requirements
       <include>../../../
       <include>$(BOOST_ROOT)
+ <include>$(BOOST_SANDBOX_ROOT)
       <toolset>gcc:<find-shared-library>dl
       <toolset>gcc:<linkflags>"-Wl,-rpath,'$ORIGIN'"
       <toolset>darwin:<define>DYLD_LIBRARY_PATH=./

Modified: sandbox/libs/reflection/examples/extension/car_lib.cpp
==============================================================================
--- sandbox/libs/reflection/examples/extension/car_lib.cpp (original)
+++ sandbox/libs/reflection/examples/extension/car_lib.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -10,19 +10,20 @@
  */
 
 #include "../car.hpp"
-#include <boost/extension/impl/decl.hpp>
+#include <boost/extension/extension.hpp>
 #include <boost/reflection/reflection.hpp>
 using namespace boost::reflections;
 
 // Although both of these classes are derived from a common
 // base, this is certainly not necessary. If we were using
 // Boost.Extension factories, this would be required.
-class suv : public car
-{
+class suv {
 public:
- suv(const char * name) : car(name) {}
- virtual const char * get_type(void) { return "It's an SUV."; }
- virtual ~suv(void) {}
+ suv(const char * name) {}
+ const char* get_type(void) { return "It's an SUV."; }
+ void start() {}
+ bool start(int target_speed) {}
+ short year;
 };
 
 class compact : public car
@@ -39,7 +40,10 @@
 extension_export_car(std::map<std::string, reflection> reflection_map) {
   reflection_map["suv"].reflect<suv>()
     .constructor<const char*>()
- .function(&suv::get_type, "get_type");
+ .function(&suv::get_type, "get_type")
+ .data(&suv::year, "year")
+ .function<void>(&suv::start, "start")
+ .function<bool, int>(&suv::start, "start");
 
   reflection_map["compact"].reflect<compact>()
     .constructor<const char*>()

Modified: sandbox/libs/reflection/examples/extension/extension.cpp
==============================================================================
--- sandbox/libs/reflection/examples/extension/extension.cpp (original)
+++ sandbox/libs/reflection/examples/extension/extension.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -12,12 +12,13 @@
 
 #include <string>
 
+#include <iostream>
 #include <boost/extension/factory_map.hpp>
 #include <boost/extension/shared_library.hpp>
 #include <boost/extension/convenience.hpp>
 #include <boost/reflection/reflection.hpp>
 #include <boost/reflection/reflection.hpp>
-#include <iostream>
+#include <boost/function.hpp>
 
 
 int main(void)
@@ -42,9 +43,8 @@
   }
   // Call an exported function to populate
   // reflection_map
- lib.get<void, std::map<std::string,
- reflection> &>
- ("extension_export_car")(reflection_map);
+ lib.get<void, std::map<std::string, reflection> &>
+ ("extension_export_car")(reflection_map);
   if (reflection_map.size() != size_t(2) ||
       reflection_map.find("suv") == reflection_map.end() ||
       reflection_map.find("compact") == reflection_map.end()) {

Modified: sandbox/libs/reflection/test/shared_library_test.cpp
==============================================================================
--- sandbox/libs/reflection/test/shared_library_test.cpp (original)
+++ sandbox/libs/reflection/test/shared_library_test.cpp 2008-07-15 15:09:34 EDT (Tue, 15 Jul 2008)
@@ -25,33 +25,36 @@
 #include <iostream>cd
 #include <boost/function.hpp>
 
+using namespace boost::reflections;
+using namespace boost::extensions;
+
 BOOST_AUTO_TEST_CASE(shared_library_basic_test) {
- std::map<std::string, boost::reflections::reflection> reflection_map;
- boost::extensions::shared_library lib
+ std::map<std::string, reflection> reflection_map;
+ shared_library lib
     ("libcar_lib.extension");
   BOOST_CHECK(lib.open());
- lib.get<void, std::map<std::string, boost::reflections::reflection>&>
+ lib.get<void, std::map<std::string, reflection>&>
     ("extension_export_car")(reflection_map);
   BOOST_CHECK_EQUAL(reflection_map.size(), size_t(2));
   // Let's create the reflection and add the methods
- boost::reflections::reflection & first_reflection =
+ reflection & first_reflection =
     reflection_map["suv"];
- boost::reflections::reflection & second_reflection =
+ reflection & second_reflection =
     reflection_map["compact"];
 
- boost::reflections::instance_constructor<const char *> first_constructor =
+ instance_constructor<const char *> first_constructor =
     first_reflection.get_constructor<const char *>();
- boost::reflections::instance first_instance =
+ instance first_instance =
     first_constructor("First Instance");
- boost::reflections::function<const char *> first_function =
+ function<const char *> first_function =
     first_reflection.get_function<const char *>("get_type");
   BOOST_CHECK_EQUAL(first_function(first_instance), "It's an SUV.");
 
- boost::reflections::instance_constructor<const char *> second_constructor =
+ instance_constructor<const char *> second_constructor =
     second_reflection.get_constructor<const char *>();
- boost::reflections::instance second_instance =
+ instance second_instance =
     second_constructor("Second Instance");
- boost::reflections::function<const char *> second_function =
+ function<const char *> second_function =
     second_reflection.get_function<const char *>("get_type");
   BOOST_CHECK_EQUAL(second_function(second_instance), "It's a compact.");
 }


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