Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r48889 - in sandbox/dataflow-rewrite: boost/dataflow/generic boost/dataflow/generic/framework_entity boost/dataflow/generic/port libs/dataflow/build/xcodeide/dataflow.xcodeproj libs/dataflow/doc libs/dataflow/doc/generic libs/dataflow/doc/generic/concepts libs/dataflow/doc/generic/examples libs/dataflow/test/generic
From: stipe_at_[hidden]
Date: 2008-09-19 06:29:41


Author: srajko
Date: 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
New Revision: 48889
URL: http://svn.boost.org/trac/boost/changeset/48889

Log:
framework in good shape, started moving port
Added:
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/category.hpp (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/category.hpp
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/port.hpp (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/port.hpp
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/traits.hpp (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/traits.hpp
   sandbox/dataflow-rewrite/libs/dataflow/doc/Jamfile (contents, props changed)
      - copied, changed from r48654, /sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2
   sandbox/dataflow-rewrite/libs/dataflow/doc/dataflow.qbk (contents, props changed)
      - copied, changed from r48654, /sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/ (props changed)
      - copied from r48363, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/binary_operable.qbk
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/binary_operable.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/component.qbk
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/component.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework.qbk (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework_entity.qbk (contents, props changed)
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/port.qbk
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/port.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/unary_operable.qbk
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/unary_operable.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/examples.qbk
      - copied unchanged from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/examples.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/examples/vtk_example.qbk
      - copied, changed from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/examples/vtk_example.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/generic.qbk (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/support.qbk
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port.cpp (contents, props changed)
      - copied, changed from r48363, /sandbox/SOC/2007/signals/libs/dataflow/test/test_port.cpp
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port_categories.cpp (contents, props changed)
Removed:
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/general.qbk
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/support.qbk
Text files modified:
   sandbox/dataflow-rewrite/boost/dataflow/generic/framework.hpp | 6
   sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity.hpp | 10 +
   sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits.hpp | 6
   sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_of.hpp | 2
   sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_sequence_intrusive_registration.hpp | 10
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/category.hpp | 34 +++++
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/port.hpp | 21 +-
   sandbox/dataflow-rewrite/boost/dataflow/generic/port/traits.hpp | 18 +-
   sandbox/dataflow-rewrite/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj | 68 +++++++++++
   sandbox/dataflow-rewrite/libs/dataflow/doc/Jamfile | 105 +---------------
   sandbox/dataflow-rewrite/libs/dataflow/doc/dataflow.qbk | 243 +++++++++++++++++++++------------------
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/binary_operable.qbk | 4
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/component.qbk | 12
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/concepts.qbk | 11 +
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework.qbk | 182 +++--------------------------
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework_entity.qbk | 218 +++++++----------------------------
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/port.qbk | 32 ++--
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/unary_operable.qbk | 4
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/examples/vtk_example.qbk | 26 ++--
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/generic.qbk | 6
   sandbox/dataflow-rewrite/libs/dataflow/doc/generic/introduction.qbk | 22 +-
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/Jamfile | 3
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_default_framework_of.cpp | 2
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework.cpp | 2
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity.cpp | 2
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity_traits_of.cpp | 2
   sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port.cpp | 163 ++------------------------
   27 files changed, 431 insertions(+), 783 deletions(-)

Modified: sandbox/dataflow-rewrite/boost/dataflow/generic/framework.hpp
==============================================================================
--- sandbox/dataflow-rewrite/boost/dataflow/generic/framework.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/framework.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -15,15 +15,15 @@
 namespace boost { namespace dataflow {
 
 /// Base class for Framework types.
-struct framework {};
+struct framework_base {};
 
 /// The default Framework argument for Dataflow templates.
-struct default_framework : framework {};
+struct default_framework : framework_base {};
 
 /// Boolean metafunction determining whether a type is a Framework.
 template<typename T>
 struct is_framework
- : public is_base_of<framework, T> {};
+ : public is_base_of<framework_base, T> {};
 
 
 } } // namespace boost::dataflow

Modified: sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity.hpp
==============================================================================
--- sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -23,7 +23,7 @@
     struct enable_guard;
 }
 
-/// Boolean Metafunction determining whether a type has traits.
+/// Boolean Metafunction determining whether a type is a FrameworkEntity.
 template<typename T, typename Framework=typename default_framework_of<T>::type, typename Enable=detail::enable_guard>
 struct is_framework_entity : public mpl::false_
 {
@@ -51,6 +51,14 @@
     : public mpl::true_
 {};
 
+/// Convenience base class for FrameworkEntity types.
+template<typename Traits>
+struct framework_entity
+{
+ /// The FrameworkEntityTraits of the framework_entity.
+ typedef Traits dataflow_traits;
+};
+
 } } // namespace boost::dataflow
 
 #endif // BOOST__DATAFLOW__GENERIC__FRAMEWORK_ENTITY_HPP

Modified: sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits.hpp
==============================================================================
--- sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -19,11 +19,11 @@
 
 namespace boost { namespace dataflow {
 
-/// Convenience class for Traits types.
+/// Convenience base class for FrameworkEntityTraits types.
 template<typename Framework>
 struct traits
 {
- /// The Framework of the port.
+ /// The Framework of the FrameworkEntityTraits.
     typedef Framework framework;
     /// INTERNAL ONLY
     BOOST_MPL_ASSERT(( is_framework<Framework> ));
@@ -33,7 +33,7 @@
     struct enable_guard;
 }
 
-/// Boolean Metafunction determining whether a type is a Traits.
+/// Boolean Metafunction determining whether a type is a FrameworkEntityTraits.
 template<typename Traits, typename Enable=detail::enable_guard>
 struct is_traits : public mpl::false_
 {

Modified: sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_of.hpp
==============================================================================
--- sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_of.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_of.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -24,7 +24,7 @@
 
 namespace boost { namespace dataflow {
 
-/// Metafunction returning the Traits of a type.
+/// Metafunction returning the FrameworkEntityTraits of a type.
 template<typename T, typename Framework=typename default_framework_of<T>::type, typename Enable=void>
 struct traits_of
 {

Modified: sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_sequence_intrusive_registration.hpp
==============================================================================
--- sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_sequence_intrusive_registration.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/framework_entity/traits_sequence_intrusive_registration.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -23,10 +23,10 @@
 
 namespace detail {
 
- template<typename Tag, typename T, int N>
+ template<typename Framework, typename T, int N>
     struct lazy_is_same_traits_tag
     {
- typedef typename is_same<Tag, typename mpl::at_c<typename T::dataflow_traits, N>::type::tag>::type type;
+ typedef typename is_same<Framework, typename mpl::at_c<typename T::dataflow_traits, N>::type::tag>::type type;
     };
     
 }
@@ -43,10 +43,10 @@
 namespace boost { namespace dataflow {
 
 
-template<typename T, typename Tag>
+template<typename T, typename Framework>
 struct traits_of<
     T,
- Tag,
+ Framework,
     typename enable_if<
         mpl::and_<
             mpl::is_sequence<typename T::dataflow_traits>,
@@ -54,7 +54,7 @@
                 mpl::int_<BOOST_PP_ITERATION()>,
                 typename mpl::size<typename T::dataflow_traits>::type
>::type,
- detail::lazy_is_same_traits_tag<Tag, T, BOOST_PP_ITERATION()>
+ detail::lazy_is_same_traits_tag<Framework, T, BOOST_PP_ITERATION()>
>
>::type
>

Copied: sandbox/dataflow-rewrite/boost/dataflow/generic/port/category.hpp (from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/category.hpp)
==============================================================================
--- /sandbox/SOC/2007/signals/boost/dataflow/support/port/category.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/port/category.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -3,14 +3,41 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_DATAFLOW_SUPPORT_PORT_CATEGORY_HPP
-#define BOOST_DATAFLOW_SUPPORT_PORT_CATEGORY_HPP
+#ifndef BOOST__DATAFLOW__GENERIC__PORT__CATEGORY_HPP
+#define BOOST__DATAFLOW__GENERIC__PORT__CATEGORY_HPP
+
 
 #include <boost/dataflow/utility/enable_if_type.hpp>
 #include <boost/mpl/bool.hpp>
 
+
 namespace boost { namespace dataflow {
 
+/// PortCategory types.
+namespace ports
+{
+ struct producer;
+ struct consumer;
+
+ /// producer PortCategory.
+ struct producer
+ {
+ typedef consumer complement; ///< complement PortCategory type.
+ };
+
+ /// consumer PortCategory.
+ struct consumer
+ {
+ typedef producer complement; ///< complement PortCategory type.
+ };
+
+ /// consumer PortCategory.
+ struct producer_consumer
+ {
+ typedef producer_consumer complement; ///< complement PortCategory type.
+ };
+}
+
 /// Boolean Metafunction determining whether a type is a PortCategory.
 /** is_port_category<T> is an Integral Constant of type bool.
     It evaluates to true if T models PortCategory, false otherwise.
@@ -40,4 +67,5 @@
 
 } } // namespace boost::dataflow
 
-#endif // BOOST_DATAFLOW_SUPPORT_PORT_CATEGORY_HPP
+
+#endif // BOOST__DATAFLOW__GENERIC__PORT__CATEGORY_HPP

Copied: sandbox/dataflow-rewrite/boost/dataflow/generic/port/port.hpp (from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/port.hpp)
==============================================================================
--- /sandbox/SOC/2007/signals/boost/dataflow/support/port/port.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/port/port.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -3,12 +3,13 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_DATAFLOW_SUPPORT_PORT_PORT_HPP
-#define BOOST_DATAFLOW_SUPPORT_PORT_PORT_HPP
+#ifndef BOOST__DATAFLOW__GENERIC__PORT__PORT_HPP
+#define BOOST__DATAFLOW__GENERIC__PORT__PORT_HPP
 
+#include <boost/dataflow/generic/framework_entity/default_framework_of.hpp>
+#include <boost/dataflow/generic/framework_entity/traits_of.hpp>
+#include <boost/dataflow/generic/port/traits.hpp>
 #include <boost/dataflow/utility/enable_if_type.hpp>
-#include <boost/dataflow/support/port/traits.hpp>
-#include <boost/dataflow/support/tags.hpp>
 
 #include <boost/mpl/assert.hpp>
 #include <boost/mpl/bool.hpp>
@@ -16,10 +17,10 @@
 namespace boost { namespace dataflow {
 
 /// Boolean Metafunction determining whether a type is a Port.
-/** is_port<T, Tag> is an Integral Constant of type bool.
+/** is_port<T, Framework> is an Integral Constant of type bool.
     It evaluates to true if T models Port, false otherwise.
 */
-template<typename T, typename Tag=default_tag, typename Enable=void>
+template<typename T, typename Framework=typename default_framework_of<T>::type, typename Enable=void>
 struct is_port
     : public mpl::false_
 {
@@ -34,12 +35,12 @@
 };
 
 /// INTERNAL ONLY
-template<typename T, typename Tag>
+template<typename T, typename Framework>
 struct is_port<
     T,
- Tag,
+ Framework,
     typename enable_if<
- is_port_traits<typename traits_of<T, Tag>::type>
+ is_port_traits<typename traits_of<T, Framework>::type>
>::type >
     : public mpl::true_ {};
 
@@ -55,4 +56,4 @@
 
 } } // namespace boost::dataflow
 
-#endif // BOOST_DATAFLOW_SUPPORT_PORT_PORT_HPP
+#endif // BOOST__DATAFLOW__GENERIC__PORT__PORT_HPP

Copied: sandbox/dataflow-rewrite/boost/dataflow/generic/port/traits.hpp (from r48363, /sandbox/SOC/2007/signals/boost/dataflow/support/port/traits.hpp)
==============================================================================
--- /sandbox/SOC/2007/signals/boost/dataflow/support/port/traits.hpp (original)
+++ sandbox/dataflow-rewrite/boost/dataflow/generic/port/traits.hpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -3,18 +3,18 @@
 // accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#ifndef BOOST_DATAFLOW_SUPPORT_PORT_TRAITS_HPP
-#define BOOST_DATAFLOW_SUPPORT_PORT_TRAITS_HPP
+#ifndef BOOST__DATAFLOW__GENERIC__PORT__TRAITS_HPP
+#define BOOST__DATAFLOW__GENERIC__PORT__TRAITS_HPP
 
-#include <boost/dataflow/support/port/category.hpp>
-#include <boost/dataflow/support/traits.hpp>
+#include <boost/dataflow/generic/port/category.hpp>
+#include <boost/dataflow/generic/framework_entity/traits.hpp>
 
 
 namespace boost { namespace dataflow {
 
 /// Convenience class for PortTraits types.
-template<typename PortCategory, typename Tag=default_tag>
-struct port_traits : public traits<Tag>
+template<typename PortCategory, typename Framework=default_framework>
+struct port_traits : public traits<Framework>
 {
     /// The PortCategory of the port.
     typedef PortCategory category;
@@ -37,7 +37,7 @@
     typename utility::enable_if_type<
         utility::all_of<
             typename PortTraits::category,
- typename PortTraits::tag
+ typename PortTraits::framework
>,
         detail::enable_guard
>::type>
@@ -46,11 +46,11 @@
     /// INTERNAL ONLY
     BOOST_MPL_ASSERT(( is_port_category<typename PortTraits::category> ));
     /// INTERNAL ONLY
- BOOST_MPL_ASSERT(( is_tag<typename PortTraits::tag>));
+ BOOST_MPL_ASSERT(( is_framework<typename PortTraits::framework>));
 };
 
 
 } } // namespace boost::dataflow
 
 
-#endif // BOOST_DATAFLOW_SUPPORT_PORT_TRAITS_HPP
+#endif // BOOST__DATAFLOW__GENERIC__PORT__TRAITS_HPP

Modified: sandbox/dataflow-rewrite/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/build/xcodeide/dataflow.xcodeproj/project.pbxproj 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -76,6 +76,18 @@
 /* End PBXAggregateTarget section */
 
 /* Begin PBXFileReference section */
+ 0897C7860E838AEA00DD0CF9 /* framework.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = framework.qbk; sourceTree = "<group>"; };
+ 089971740E83014B00284E42 /* dataflow.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = dataflow.qbk; sourceTree = "<group>"; };
+ 089971750E83014B00284E42 /* Jamfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.jam; path = Jamfile; sourceTree = "<group>"; };
+ 089971830E83058D00284E42 /* binary_operable.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = binary_operable.qbk; sourceTree = "<group>"; };
+ 089971840E83058D00284E42 /* component.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = component.qbk; sourceTree = "<group>"; };
+ 089971850E83058D00284E42 /* concepts.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = concepts.qbk; sourceTree = "<group>"; };
+ 089971870E83058D00284E42 /* port.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = port.qbk; sourceTree = "<group>"; };
+ 089971880E83058D00284E42 /* unary_operable.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = unary_operable.qbk; sourceTree = "<group>"; };
+ 0899718A0E83058D00284E42 /* vtk_example.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = vtk_example.qbk; sourceTree = "<group>"; };
+ 0899718B0E83058D00284E42 /* examples.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = examples.qbk; sourceTree = "<group>"; };
+ 0899718C0E83058D00284E42 /* introduction.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = introduction.qbk; sourceTree = "<group>"; };
+ 0899718F0E83065400284E42 /* generic.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = generic.qbk; sourceTree = "<group>"; };
                 08A77AB30E4F91AA00B8793E /* Jamroot */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Jamroot; path = ../../../../Jamroot; sourceTree = SOURCE_ROOT; };
                 08A77AB40E4F91AB00B8793E /* LICENSE_1_0.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = LICENSE_1_0.txt; path = ../../../../LICENSE_1_0.txt; sourceTree = SOURCE_ROOT; };
                 08A77ADC0E4FB06600B8793E /* framework.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = framework.hpp; sourceTree = "<group>"; };
@@ -89,6 +101,12 @@
                 08B8F1BE0E512E72000545B8 /* traits.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = traits.hpp; sourceTree = "<group>"; };
                 08B8F1C00E512F45000545B8 /* test_framework_entity_traits.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_framework_entity_traits.cpp; sourceTree = "<group>"; };
                 08B8F1D00E513569000545B8 /* test_framework.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_framework.cpp; sourceTree = "<group>"; };
+ 08D965820E83A2F900087C6F /* framework_entity.qbk */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = framework_entity.qbk; sourceTree = "<group>"; };
+ 08D965C80E83A94E00087C6F /* category.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = category.hpp; sourceTree = "<group>"; };
+ 08D965C90E83A94E00087C6F /* port.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = port.hpp; sourceTree = "<group>"; };
+ 08D965CA0E83A94E00087C6F /* traits.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = traits.hpp; sourceTree = "<group>"; };
+ 08D965DB0E83AD4900087C6F /* test_port.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_port.cpp; sourceTree = "<group>"; };
+ 08D9667F0E83B40B00087C6F /* test_port_categories.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_port_categories.cpp; sourceTree = "<group>"; };
                 08DD9DF90E7B22CA008DC46A /* default_framework_of.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = default_framework_of.hpp; sourceTree = "<group>"; };
                 08DD9DFA0E7B22DD008DC46A /* test_default_framework_of.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = test_default_framework_of.cpp; sourceTree = "<group>"; };
                 08DD9DFB0E7B22EF008DC46A /* traits_of.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = traits_of.hpp; sourceTree = "<group>"; };
@@ -117,6 +135,40 @@
                         path = ../../example;
                         sourceTree = SOURCE_ROOT;
                 };
+ 089971810E83058D00284E42 /* generic */ = {
+ isa = PBXGroup;
+ children = (
+ 0899718F0E83065400284E42 /* generic.qbk */,
+ 089971820E83058D00284E42 /* concepts */,
+ 089971890E83058D00284E42 /* examples */,
+ 0899718B0E83058D00284E42 /* examples.qbk */,
+ 0899718C0E83058D00284E42 /* introduction.qbk */,
+ );
+ path = generic;
+ sourceTree = "<group>";
+ };
+ 089971820E83058D00284E42 /* concepts */ = {
+ isa = PBXGroup;
+ children = (
+ 0897C7860E838AEA00DD0CF9 /* framework.qbk */,
+ 08D965820E83A2F900087C6F /* framework_entity.qbk */,
+ 089971830E83058D00284E42 /* binary_operable.qbk */,
+ 089971840E83058D00284E42 /* component.qbk */,
+ 089971850E83058D00284E42 /* concepts.qbk */,
+ 089971870E83058D00284E42 /* port.qbk */,
+ 089971880E83058D00284E42 /* unary_operable.qbk */,
+ );
+ path = concepts;
+ sourceTree = "<group>";
+ };
+ 089971890E83058D00284E42 /* examples */ = {
+ isa = PBXGroup;
+ children = (
+ 0899718A0E83058D00284E42 /* vtk_example.qbk */,
+ );
+ path = examples;
+ sourceTree = "<group>";
+ };
                 08A439340E295B35009845FD /* build */ = {
                         isa = PBXGroup;
                         children = (
@@ -138,6 +190,7 @@
                 08A77ACD0E4F941C00B8793E /* generic */ = {
                         isa = PBXGroup;
                         children = (
+ 08D965C50E83A83600087C6F /* port */,
                                 08A77ADC0E4FB06600B8793E /* framework.hpp */,
                                 08B8F1AD0E512D31000545B8 /* framework_entity.hpp */,
                                 08B8F1AB0E512CF7000545B8 /* framework_entity */,
@@ -163,6 +216,8 @@
                                 08B8F1B60E512DA3000545B8 /* test_framework_entity.cpp */,
                                 08B8F1C00E512F45000545B8 /* test_framework_entity_traits.cpp */,
                                 08DD9E020E7B23AA008DC46A /* test_framework_entity_traits_of.cpp */,
+ 08D965DB0E83AD4900087C6F /* test_port.cpp */,
+ 08D9667F0E83B40B00087C6F /* test_port_categories.cpp */,
                         );
                         path = generic;
                         sourceTree = "<group>";
@@ -188,9 +243,22 @@
                         path = ../../test;
                         sourceTree = SOURCE_ROOT;
                 };
+ 08D965C50E83A83600087C6F /* port */ = {
+ isa = PBXGroup;
+ children = (
+ 08D965C80E83A94E00087C6F /* category.hpp */,
+ 08D965C90E83A94E00087C6F /* port.hpp */,
+ 08D965CA0E83A94E00087C6F /* traits.hpp */,
+ );
+ path = port;
+ sourceTree = "<group>";
+ };
                 08FD5DE40C1BA60700F00877 /* doc */ = {
                         isa = PBXGroup;
                         children = (
+ 089971810E83058D00284E42 /* generic */,
+ 089971740E83014B00284E42 /* dataflow.qbk */,
+ 089971750E83014B00284E42 /* Jamfile */,
                         );
                         name = doc;
                         path = ../../doc;

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/Jamfile (from r48654, /sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/Jamfile.v2 (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/Jamfile 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -10,104 +10,22 @@
 using quickbook ;
 
 local loc = [ path.native [ path.pwd ] ] ;
-local root = [ path.native [ path.join [ path.pwd ] ../../.. ] ] ;
 
 xml dataflow_xml : dataflow.qbk ;
 
-doxygen dataflow_signals_doxygen
+doxygen dataflow_generic_doxygen
    :
- [ glob ../../../boost/dataflow/signals/component/filter.hpp ]
- [ glob ../../../boost/dataflow/signals/component/storage.hpp ]
- [ glob ../../../boost/dataflow/signals/component/counter.hpp ]
- [ glob ../../../boost/dataflow/signals/component/junction.hpp ]
- [ glob ../../../boost/dataflow/signals/component/multiplexer.hpp ]
- [ glob ../../../boost/dataflow/signals/component/mutex.hpp ]
- [ glob ../../../boost/dataflow/signals/component/condition.hpp ]
- [ glob ../../../boost/dataflow/signals/component/timed_generator.hpp ]
- [ glob ../../../boost/dataflow/signals/component/function.hpp ]
- [ glob ../../../boost/dataflow/signals/component/socket_sender.hpp ]
- [ glob ../../../boost/dataflow/signals/component/socket_receiver.hpp ]
+ [ glob ../../../boost/dataflow/generic/framework.hpp ]
+ [ glob ../../../boost/dataflow/generic/framework_entity.hpp ]
+ [ glob ../../../boost/dataflow/generic/framework_entity/default_framework.hpp ]
+ [ glob ../../../boost/dataflow/generic/framework_entity/traits.hpp ]
+ [ glob ../../../boost/dataflow/generic/framework_entity/traits_of.hpp ]
    :
         <doxygen:param>TAB_SIZE=4
         <doxygen:param>EXAMPLE_PATH=../test
         <doxygen:param>EXAMPLE_PATH=../example
- <doxygen:param>STRIP_FROM_PATH=$(root)
- <doxygen:param>STRIP_FROM_INC_PATH=$(root)
- <doxygen:param>EXTRACT_ALL=NO
- <doxygen:param>HIDE_UNDOC_MEMBERS=YES
- <doxygen:param>INHERIT_DOCS=YES
- <doxygen:param>EXTRACT_PRIVATE=NO
- <doxygen:param>ENABLE_PREPROCESSING=YES
- <doxygen:param>MACRO_EXPANSION=YES
- <doxygen:param>SEARCH_INCLUDES=YES
- <doxygen:param>INCLUDE_PATH=../../..
- <doxygen:param>INCLUDE_PATH=$(BOOST_ROOT)
- <doxygen:param>PREDEFINED=DOXYGEN_DOCS_BUILD
- ;
-
-doxygen dataflow_blueprint_doxygen
- :
- [ glob ../../../boost/dataflow/blueprint/port.hpp ]
- [ glob ../../../boost/dataflow/blueprint/component.hpp ]
- [ glob ../../../boost/dataflow/blueprint/binary_operation.hpp ]
- :
- <doxygen:param>TAB_SIZE=4
- <doxygen:param>EXAMPLE_PATH=../test
- <doxygen:param>EXAMPLE_PATH=../example
- <doxygen:param>STRIP_FROM_PATH=$(root)
- <doxygen:param>STRIP_FROM_INC_PATH=$(root)
- <doxygen:param>EXTRACT_ALL=NO
- <doxygen:param>HIDE_UNDOC_MEMBERS=YES
- <doxygen:param>INHERIT_DOCS=YES
- <doxygen:param>EXTRACT_PRIVATE=NO
- <doxygen:param>ENABLE_PREPROCESSING=YES
- <doxygen:param>MACRO_EXPANSION=YES
- <doxygen:param>SEARCH_INCLUDES=YES
- <doxygen:param>INCLUDE_PATH=../../..
- <doxygen:param>INCLUDE_PATH=$(BOOST_ROOT)
- <doxygen:param>PREDEFINED=DOXYGEN_DOCS_BUILD
- ;
-
-doxygen dataflow_support_doxygen
- :
- [ glob ../../../boost/dataflow/support/traits.hpp ]
- [ glob ../../../boost/dataflow/support/port/category.hpp ]
- [ glob ../../../boost/dataflow/support/port/traits.hpp ]
- [ glob ../../../boost/dataflow/support/port/port.hpp ]
- [ glob ../../../boost/dataflow/support/complemented_port.hpp ]
- [ glob ../../../boost/dataflow/support/default_port_provider.hpp ]
- [ glob ../../../boost/dataflow/support/tags.hpp ]
- [ glob ../../../boost/dataflow/support/component.hpp ]
- [ glob ../../../boost/dataflow/support/fusion_component.hpp ]
- [ glob ../../../boost/dataflow/support/vector_port.hpp ]
- [ glob ../../../boost/dataflow/support/keyed_port.hpp ]
- :
- <doxygen:param>TAB_SIZE=4
- <doxygen:param>EXAMPLE_PATH=../test
- <doxygen:param>EXAMPLE_PATH=../example
- <doxygen:param>STRIP_FROM_PATH=$(root)
- <doxygen:param>STRIP_FROM_INC_PATH=$(root)
- <doxygen:param>EXTRACT_ALL=NO
- <doxygen:param>HIDE_UNDOC_MEMBERS=NO
- <doxygen:param>INHERIT_DOCS=YES
- <doxygen:param>EXTRACT_PRIVATE=NO
- <doxygen:param>ENABLE_PREPROCESSING=YES
- <doxygen:param>MACRO_EXPANSION=YES
- <doxygen:param>SEARCH_INCLUDES=YES
- <doxygen:param>INCLUDE_PATH=../../..
-# <doxygen:param>INCLUDE_PATH=$(BOOST_ROOT)
- <doxygen:param>PREDEFINED=DOXYGEN_DOCS_BUILD
- ;
-
-doxygen dataflow_utility_doxygen
- :
- [ glob ../../../boost/dataflow/utility/*.hpp ]
- :
- <doxygen:param>TAB_SIZE=4
- <doxygen:param>EXAMPLE_PATH=../test/utility
- <doxygen:param>EXAMPLE_PATH=../example
- <doxygen:param>STRIP_FROM_PATH=$(root)
- <doxygen:param>STRIP_FROM_INC_PATH=$(root)
+ <doxygen:param>STRIP_FROM_PATH=$(TOP)
+ <doxygen:param>STRIP_FROM_INC_PATH=$(TOP)
         <doxygen:param>EXTRACT_ALL=NO
         <doxygen:param>HIDE_UNDOC_MEMBERS=NO
         <doxygen:param>INHERIT_DOCS=YES
@@ -123,10 +41,7 @@
 boostbook standalone
    :
       dataflow_xml
- dataflow_utility_doxygen
- dataflow_support_doxygen
- dataflow_blueprint_doxygen
- dataflow_signals_doxygen
+ dataflow_generic_doxygen
     :
         # pull in the online .css and images
         <xsl:param>project.root=http://dancinghacker.com
@@ -141,5 +56,5 @@
         <xsl:param>toc.max.depth=2
         <xsl:param>generate.section.toc.level=4
     ;
-
+
 install png : [ glob *.png ] : <location>html ;

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/dataflow.qbk (from r48654, /sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/dataflow.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/dataflow.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,6 +1,6 @@
-[article Dataflow
+[article Boost.Dataflow
     [quickbook 1.4]
- [version 0.9.1]
+ [version 1.0]
     [authors [Rajko, Stjepan]]
     [copyright 2007 2008 Stjepan Rajko]
     [purpose Generic dataflow lirary providing support for data producers,
@@ -12,100 +12,109 @@
     ]
 ]
 
-[template concepts[] [link dataflow.support.concepts concepts]]
-[template Tag[] [link dataflow.support.concepts.general.tag [^Tag]]]
-[template Traits[] [link dataflow.support.concepts.general.entity [^Traits]]]
-[template Side[] [link dataflow.support.concepts.general.side [^Side]]]
-[template Entity[] [link dataflow.support.concepts.general.entity [^Entity]]]
-[template PortCategory[] [link dataflow.support.concepts.port_related.portcategory [^PortCategory]]]
-[template Mechanism[] [link dataflow.support.concepts.port_related.mechanism [^Mechanism]]]
-[template PortTraits[] [link dataflow.support.concepts.port_related.port [^PortTraits]]]
-[template Port[] [link dataflow.support.concepts.port_related.port [^Port]]]
-[template ProducerPort[] [link dataflow.support.concepts.port_related.port [^ProducerPort]]]
-[template ConsumerPort[] [link dataflow.support.concepts.port_related.port [^ConsumerPort]]]
-[template ComplementedPort[] [link dataflow.support.concepts.port_related.complementedport [^ComplementedPort]]]
-[template ComplementedPortTraits[] [link dataflow.support.concepts.port_related.complementedport [^ComplementedPortTraits]]]
-[template PortVector[] [link dataflow.support.concepts.component_related.portvector [^PortVector]]]
-[template PortVectorTraits[] [link dataflow.support.concepts.component_related.portvector [^PortVectorTraits]]]
-[template VectorPort[] [link dataflow.support.concepts.port_related.vectorport [^VectorPort]]]
-[template VectorPortTraits[] [link dataflow.support.concepts.port_related.vectorport [^VectorPortTraits]]]
-[template KeyedPort[] [link dataflow.support.concepts.port_related.keyedport [^KeyedPort]]]
-[template KeyedPortTraits[] [link dataflow.support.concepts.port_related.keyedport [^KeyedPortTraits]]]
-[template DynamicPort[] [link dataflow.support.concepts.port_related.dynamicport [^DynamicPort]]]
-[template DynamicPortTraits[] [link dataflow.support.concepts.port_related.dynamicport [^DynamicPortTraits]]]
-
-[template ProxyPortTraits[] [link dataflow.support.concepts.port_related.proxyporttraits [^ProxyPortTraits]]]
-[template ProxyPort[] [link dataflow.support.concepts.port_related.proxyport [^ProxyPort]]]
-
-[template BinaryOperable[] [link dataflow.support.concepts.port_related.binaryoperable [^BinaryOperable]]]
-[template Connectable[] [link dataflow.support.concepts.port_related.binaryoperable [^Connectable]]]
-[template OnlyConnectable[] [link dataflow.support.concepts.port_related.binaryoperable [^OnlyConnectable]]]
-[template Disconnectable[] [link dataflow.support.concepts.port_related.binaryoperable [^Disconnectable]]]
-[template Extractable[] [link dataflow.support.concepts.port_related.binaryoperable [^Extractable]]]
-
-[template UnaryOperable[] [link dataflow.support.concepts.port_related.unaryoperable [^UnaryOperable]]]
-[template AllDisconnectable[] [link dataflow.support.concepts.port_related.unaryoperable [^AllDisconnectable]]]
-
-[template ComponentTraits[] [link dataflow.support.concepts.component_related.component [^ComponentTraits]]]
-[template Component[] [link dataflow.support.concepts.component_related.component [^Component]]]
-
-[template ComponentOperable[] [link dataflow.support.concepts.component_related.componentoperable [^ComponentOperable]]]
-[template Invocable[] [link dataflow.support.concepts.component_related.componentoperable [^Invocable]]]
-
-[template SignalTraits[] [link dataflow.signals.concepts.signaltraits [^SignalTraits]]]
-[template SignalPortTraits[] [link dataflow.signals.concepts.signalporttraits [^SignalPortTraits]]]
-[template SignalProducer[] [link dataflow.signals.concepts.signalproducer [^SignalProducer]]]
-[template SignalConsumer[] [link dataflow.signals.concepts.signalconsumer [^SignalConsumer]]]
-[template SignalFilterComponent[] [link dataflow.signals.concepts.signalfiltercomponent [^SignalFilterComponent]]]
-[template SignalConsumerComponent[] [link dataflow.signals.concepts.signalconsumercomponent [^SignalConsumerComponent]]]
-
-[template PhoenixProducer[] [link dataflow.support.concepts.phoenix.phoenixproducer [^PhoenixProducer]]]
-[template PhoenixConsumer[] [link dataflow.support.concepts.phoenix.phoenixproducer [^PhoenixConsumer]]]
-
-[template vtk_example[text] [link dataflow.support.examples.new_layer [text]]]
-[template gui_example[text] [link dataflow.blueprint.examples.fltk_gui [text]]]
-[template how_to_use[text] [link dataflow.introduction.how_to_use [text]]]
-
-[template DataflowSignals[] [link dataflow.signals Dataflow.Signals]]
-[template DataflowBlueprint[] [link dataflow.blueprint Dataflow.Blueprint]]
-[template DataflowPhoenix[] [link dataflow.phoenix Dataflow.Phoenix]]
-
-[template producer_group[] [link dataflow.components.producer_group producer_group]]
-[template consumer_group[] [link dataflow.components.consumer_group consumer_group]]
-[template consumer_map[] [link dataflow.components.consumer_map consumer_map]]
-
-[template signals_quickstart[] [link dataflow.signals.introduction.quick_start quick start]]
-[template signals_freefunctions[] [link dataflow.signals.connections free functions and operators]]
-[template connect[] [link dataflow.signals.connections.connect connect]]
-[template invoke[] [link dataflow.signals.connections.invoke invoke]]
-[template disconnect_all[] [link dataflow.signals.connections.disconnect_all disconnect_all]]
-[template signals_tutorial[] [link dataflow.signals.introduction.tutorial tutorial]]
-[template components[] [link dataflow.signals.components components]]
-[template component[] [link dataflow.signals.component component]]
-[template operators[] [link dataflow.signals.connections.operators operators]]
-
-[template slot_selector[] [link dataflow.signals.connections.classes.slot_selector slot_selector]]
-
-[template consumer[] [link dataflow.signals.components.generic.consumer consumer]]
-[template filter[] [link dataflow.signals.components.generic.filter filter]]
-[template applicator[] [link dataflow.signals.components.generic.applicator applicator]]
-[template conditional[] [link dataflow.signals.components.generic.conditional conditional]]
-[template instantiator[] [link dataflow.signals.components.generic.instantiator instantiator]]
-[template modifier[] [link dataflow.signals.components.generic.modifier modifier]]
-[template storage[] [link dataflow.signals.components.properties.storage storage]]
-[template counter[] [link dataflow.signals.components.properties.counter counter]]
-[template junction[] [link dataflow.signals.components.flow.junction junction]]
-[template multiplexer[] [link dataflow.signals.components.flow.multiplexer multiplexer]]
-[template mutex[] [link dataflow.signals.components.threading.mutex mutex]]
-[template condition[] [link dataflow.signals.components.threading.condition condition]]
-[template timed_generator[] [link dataflow.signals.components.threading.timed_generator timed_generator]]
-[template function[] [link dataflow.signals.components.adapters.function function]]
-[template socket_sender[] [link dataflow.signals.components.network.socket_sender socket_sender]]
-[template socket_receiver[] [link dataflow.signals.components.network.socket_receiver socket_receiver]]
-[template chain[] [link dataflow.signals.components.topologies.chain chain]]
+[template concepts[] [link boost_dataflow.generic.concepts concepts]]
 
-[template bind_mem_fn[] [link dataflow.utility.bind_mem_fn bind_mem_fn]]
-[template bind_mem_fn_overload[] [link dataflow.utility.bind_mem_fn_overload bind_mem_fn_overload]]
+[template Framework[] [link boost_dataflow.generic.concepts.general.tag [^Framework]]]
+[template FrameworkEntityTraits[] [link boost_dataflow.generic.concepts.general.entity [^FrameworkEntityTraits]]]
+[template FrameworkEntity[] [link boost_dataflow.generic.concepts.general.entity [^FrameworkEntity]]]
+
+[template true[] Boolean MPL Metafunction that evaulates to true]
+
+[/
+[template Side[] [link boost_dataflow.support.concepts.general.side [^Side]]]
+[template PortCategory[] [link boost_dataflow.support.concepts.port_related.portcategory [^PortCategory]]]
+[template Mechanism[] [link boost_dataflow.support.concepts.port_related.mechanism [^Mechanism]]]
+[template PortTraits[] [link boost_dataflow.support.concepts.port_related.port [^PortTraits]]]
+[template Port[] [link boost_dataflow.support.concepts.port_related.port [^Port]]]
+[template ProducerPort[] [link boost_dataflow.support.concepts.port_related.port [^ProducerPort]]]
+[template ConsumerPort[] [link boost_dataflow.support.concepts.port_related.port [^ConsumerPort]]]
+[template ComplementedPort[] [link boost_dataflow.support.concepts.port_related.complementedport [^ComplementedPort]]]
+[template ComplementedPortTraits[] [link boost_dataflow.support.concepts.port_related.complementedport [^ComplementedPortTraits]]]
+[template PortVector[] [link boost_dataflow.support.concepts.component_related.portvector [^PortVector]]]
+[template PortVectorTraits[] [link boost_dataflow.support.concepts.component_related.portvector [^PortVectorTraits]]]
+[template VectorPort[] [link boost_dataflow.support.concepts.port_related.vectorport [^VectorPort]]]
+[template VectorPortTraits[] [link boost_dataflow.support.concepts.port_related.vectorport [^VectorPortTraits]]]
+[template KeyedPort[] [link boost_dataflow.support.concepts.port_related.keyedport [^KeyedPort]]]
+[template KeyedPortTraits[] [link boost_dataflow.support.concepts.port_related.keyedport [^KeyedPortTraits]]]
+[template DynamicPort[] [link boost_dataflow.support.concepts.port_related.dynamicport [^DynamicPort]]]
+[template DynamicPortTraits[] [link boost_dataflow.support.concepts.port_related.dynamicport [^DynamicPortTraits]]]
+
+[template ProxyPortTraits[] [link boost_dataflow.support.concepts.port_related.proxyporttraits [^ProxyPortTraits]]]
+[template ProxyPort[] [link boost_dataflow.support.concepts.port_related.proxyport [^ProxyPort]]]
+
+[template BinaryOperable[] [link boost_dataflow.support.concepts.port_related.binaryoperable [^BinaryOperable]]]
+[template Connectable[] [link boost_dataflow.support.concepts.port_related.binaryoperable [^Connectable]]]
+[template OnlyConnectable[] [link boost_dataflow.support.concepts.port_related.binaryoperable [^OnlyConnectable]]]
+[template Disconnectable[] [link boost_dataflow.support.concepts.port_related.binaryoperable [^Disconnectable]]]
+[template Extractable[] [link boost_dataflow.support.concepts.port_related.binaryoperable [^Extractable]]]
+
+[template UnaryOperable[] [link boost_dataflow.support.concepts.port_related.unaryoperable [^UnaryOperable]]]
+[template AllDisconnectable[] [link boost_dataflow.support.concepts.port_related.unaryoperable [^AllDisconnectable]]]
+
+[template ComponentTraits[] [link boost_dataflow.support.concepts.component_related.component [^ComponentTraits]]]
+[template Component[] [link boost_dataflow.support.concepts.component_related.component [^Component]]]
+
+[template ComponentOperable[] [link boost_dataflow.support.concepts.component_related.componentoperable [^ComponentOperable]]]
+[template Invocable[] [link boost_dataflow.support.concepts.component_related.componentoperable [^Invocable]]]
+
+[template SignalTraits[] [link boost_dataflow.signals.concepts.signaltraits [^SignalTraits]]]
+[template SignalPortTraits[] [link boost_dataflow.signals.concepts.signalporttraits [^SignalPortTraits]]]
+[template SignalProducer[] [link boost_dataflow.signals.concepts.signalproducer [^SignalProducer]]]
+[template SignalConsumer[] [link boost_dataflow.signals.concepts.signalconsumer [^SignalConsumer]]]
+[template SignalFilterComponent[] [link boost_dataflow.signals.concepts.signalfiltercomponent [^SignalFilterComponent]]]
+[template SignalConsumerComponent[] [link boost_dataflow.signals.concepts.signalconsumercomponent [^SignalConsumerComponent]]]
+
+[template PhoenixProducer[] [link boost_dataflow.support.concepts.phoenix.phoenixproducer [^PhoenixProducer]]]
+[template PhoenixConsumer[] [link boost_dataflow.support.concepts.phoenix.phoenixproducer [^PhoenixConsumer]]]
+
+[template vtk_example[text] [link boost_dataflow.support.examples.new_layer [text]]]
+[template gui_example[text] [link boost_dataflow.blueprint.examples.fltk_gui [text]]]
+[template how_to_use[text] [link boost_dataflow.introduction.how_to_use [text]]]
+]
+
+[template BoostDataflow[] [link dataflow Boost.Dataflow]]
+[template DataflowGeneric[] [link boost_dataflow.generic Dataflow.Generic]]
+[/
+[template DataflowSignals[] [link boost_dataflow.signals Dataflow.Signals]]
+[template DataflowBlueprint[] [link boost_dataflow.blueprint Dataflow.Blueprint]]
+[template DataflowPhoenix[] [link boost_dataflow.phoenix Dataflow.Phoenix]]
+
+[template producer_group[] [link boost_dataflow.components.producer_group producer_group]]
+[template consumer_group[] [link boost_dataflow.components.consumer_group consumer_group]]
+[template consumer_map[] [link boost_dataflow.components.consumer_map consumer_map]]
+
+[template signals_quickstart[] [link boost_dataflow.signals.introduction.quick_start quick start]]
+[template signals_freefunctions[] [link boost_dataflow.signals.connections free functions and operators]]
+[template connect[] [link boost_dataflow.signals.connections.connect connect]]
+[template invoke[] [link boost_dataflow.signals.connections.invoke invoke]]
+[template disconnect_all[] [link boost_dataflow.signals.connections.disconnect_all disconnect_all]]
+[template signals_tutorial[] [link boost_dataflow.signals.introduction.tutorial tutorial]]
+[template components[] [link boost_dataflow.signals.components components]]
+[template component[] [link boost_dataflow.signals.component component]]
+[template operators[] [link boost_dataflow.signals.connections.operators operators]]
+
+[template slot_selector[] [link boost_dataflow.signals.connections.classes.slot_selector slot_selector]]
+
+[template consumer[] [link boost_dataflow.signals.components.generic.consumer consumer]]
+[template filter[] [link boost_dataflow.signals.components.generic.filter filter]]
+[template applicator[] [link boost_dataflow.signals.components.generic.applicator applicator]]
+[template conditional[] [link boost_dataflow.signals.components.generic.conditional conditional]]
+[template instantiator[] [link boost_dataflow.signals.components.generic.instantiator instantiator]]
+[template modifier[] [link boost_dataflow.signals.components.generic.modifier modifier]]
+[template storage[] [link boost_dataflow.signals.components.properties.storage storage]]
+[template counter[] [link boost_dataflow.signals.components.properties.counter counter]]
+[template junction[] [link boost_dataflow.signals.components.flow.junction junction]]
+[template multiplexer[] [link boost_dataflow.signals.components.flow.multiplexer multiplexer]]
+[template mutex[] [link boost_dataflow.signals.components.threading.mutex mutex]]
+[template condition[] [link boost_dataflow.signals.components.threading.condition condition]]
+[template timed_generator[] [link boost_dataflow.signals.components.threading.timed_generator timed_generator]]
+[template function[] [link boost_dataflow.signals.components.adapters.function function]]
+[template socket_sender[] [link boost_dataflow.signals.components.network.socket_sender socket_sender]]
+[template socket_receiver[] [link boost_dataflow.signals.components.network.socket_receiver socket_receiver]]
+[template chain[] [link boost_dataflow.signals.components.topologies.chain chain]]
+
+[template bind_mem_fn[] [link boost_dataflow.utility.bind_mem_fn bind_mem_fn]]
+[template bind_mem_fn_overload[] [link boost_dataflow.utility.bind_mem_fn_overload bind_mem_fn_overload]]
 
 [template boost_signal[] [@http://www.boost.org/doc/html/boost/signal.html [^boost::signal]]]
 [template boost_function[] [@http://www.boost.org/doc/html/boost/function.html [^boost::function]]]
@@ -135,17 +144,21 @@
 [template vtkActor[] [@http://www.vtk.org/doc/nightly/html/classvtkActor.html ['vtkActor]]]
 [template vtkRenderer[] [@http://www.vtk.org/doc/nightly/html/classvtkAlgorithm.html ['vtkRenderer]]]
 
-[template future_work[] [link dataflow.future future_work]]
-[template blueprint[] [link dataflow.future.blueprint blueprint]]
-[template FuturePin[] [link dataflow.future.pin pin]]
-[template rationale[] [link dataflow.development.rationale rationale]]
+[template future_work[] [link boost_dataflow.future future_work]]
+[template blueprint[] [link boost_dataflow.future.blueprint blueprint]]
+[template FuturePin[] [link boost_dataflow.future.pin pin]]
+[template rationale[] [link boost_dataflow.development.rationale rationale]]
+/]
 
-[template is_tag[] [classref boost::dataflow::is_tag is_tag]]
+[template is_framework[] [classref boost::dataflow::is_framework is_framework]]
+[template framework_entity[] [classref boost::dataflow::framework_entity framework_entity]]
+[template traits_of[] [classref boost::dataflow::traits_of traits_of]]
+[template default_framework[] [classref boost::dataflow::default_framework default_framework]]
+[template default_framework_of[] [classref boost::dataflow::default_framework_of default_framework_of]]
+[template register_traits[] [classref boost::dataflow::register_traits register_traits]]
 [template is_mechanism[] [classref boost::dataflow::is_mechanism is_mechanism]]
 [template is_port_category[] [classref boost::dataflow::is_port_category is_port_category]]
 [template port_traits[] [classref boost::dataflow::port_traits [^port_traits]]]
-[template traits_of[] [classref boost::dataflow::traits_of traits_of]]
-[template register_traits[] [classref boost::dataflow::register_traits register_traits]]
 [template is_entity[] [classref boost::dataflow::is_entity [^is_entity]]]
 [template is_port[] [classref boost::dataflow::is_port [^is_port]]]
 [template port[] [classref boost::dataflow::port [^port]]]
@@ -153,12 +166,11 @@
 [template complemented_port_traits[] [classref boost::dataflow::complemented_port_traits [^complemented_port_traits]]]
 [template is_complemented_port[] [classref boost::dataflow::is_complemented_port [^is_complemented_port]]]
 
-[template DATAFLOW_TRAITS[] [macroref DATAFLOW_TRAITS DATAFLOW_TRAITS]]
-[template DATAFLOW_TRAITS_ENABLE_IF[] [macroref DATAFLOW_TRAITS_ENABLE_IF DATAFLOW_TRAITS_ENABLE_IF]]
-[template default_tag[] [classref boost::dataflow::default_tag [^default_tag]]]
-
-[template true[] Boolean MPL Metafunction that evaulates to true]
+[template BOOST_DATAFLOW_TRAITS[] [macroref BOOST_DATAFLOW_TRAITS BOOST_DATAFLOW_TRAITS]]
+[template BOOST_DATAFLOW_TRAITS_ENABLE_IF[] [macroref BOOST_DATAFLOW_TRAITS_ENABLE_IF BOOST_DATAFLOW_TRAITS_ENABLE_IF]]
+[template framework_base[] [classref boost::dataflow::framework_base [^framework_base]]]
 
+[/
 [import ../test/test_port.cpp]
 
 [import ../test/signals/test_connect.cpp]
@@ -196,7 +208,7 @@
 [import ../example/signals/modifier_example.cpp]
 [import ../example/threadpool/threadpool_component_example.cpp]
 
-[import ../../../boost/dataflow/vtk/support.hpp]
+[import ../../../boost/dataflow/vtk/generic.hpp]
 [import ../example/VTK/Cone.cxx]
 
 [import ../example/blueprint/blueprint_example.cpp]
@@ -205,9 +217,11 @@
 [import ../example/glv_gui/glvgui_graph.cpp]
 
 [include introduction/introduction.qbk]
+]
 
-[include support/support.qbk]
+[include generic/generic.qbk]
 
+[/
 [/[include components.qbk]]
 
 [include signals.qbk]
@@ -233,7 +247,7 @@
    and suggested making the examples more connected to the introductory
    examples and including visual diagrams for the dataflow networks.]
 
-* I have added an [link dataflow.introduction.examples.new_layer example]
+* I have added an [link boost_dataflow.introduction.examples.new_layer example]
   of [VTK] support, but the library is not quite ready for [BoostIostreams].
 * As per Doug's suggestion, I have made the documentation focus on the
   unfused components, and made the unfused components default in the
@@ -246,12 +260,12 @@
    and other suggestions on improving the documentation.]
 
 * A master table has been added to the [components] page.
-* I have started a [link dataflow.introduction.download Downloading and Linking]
+* I have started a [link boost_dataflow.introduction.download Downloading and Linking]
   instruction page.
 
 [* Tobias Schwinger indicated that the library could be used for pulling rather than pushing data.]
 
-* [link dataflow.signals.introduction.examples.pull An example] which illustrates this has been addded.
+* [link boost_dataflow.signals.introduction.examples.pull An example] which illustrates this has been addded.
 
 [* James Jones suggested that a ||-like operator could be used for branching, and >> for chaining.]
 
@@ -311,16 +325,17 @@
   project, and for his support, suggestions and feedback.
 * Thanks to all the members of the Boost community who have expressed an
   interest in this library and contributed
- [link dataflow.discussion valuable feedback], in particular Douglas Gregor and
+ [link boost_dataflow.discussion valuable feedback], in particular Douglas Gregor and
   Jake Voytko for in-depth reviews of the library.
 * Thanks to Tobias Schwinger for a most valuable discussion on various
   dataflow-oriented approaches and ideas.
 
 [endsect]
+]
 
 [section:license License]
 
-Copyright 2007 Stjepan Rajko.
+Copyright 2007, 2008 Stjepan Rajko.
 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])

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/binary_operable.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/binary_operable.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/binary_operable.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/binary_operable.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,6 +1,6 @@
 [section:binaryoperable BinaryOperable (Connectable, OnlyConnectable, Disconnectable, Extractable) ]
 
-[Port]s `P` and `C` of [Tag] `T` are /BinaryOperable/
+[Port]s `P` and `C` of [Framework] `F` are /BinaryOperable/
 for a binary operation `O` if the implementation of
 the binary operation `O` has been specialized for `P`, and `C`.
 
@@ -15,7 +15,7 @@
 The following expressions are used in this document:
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
     [[P] [A [Port] type.]]
     [[C_C] [A [Port] [Connectable] with `P`]]
     [[C_O] [A [Port] [OnlyConnectable] with `P`]]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/component.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/component.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/component.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/component.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -4,9 +4,9 @@
 [heading Notation]
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
     [[PV] [A [PortVector] type.]]
- [[PVT] [[PortVectorTraits] of `PV` for `T`.]]
+ [[PVT] [[PortVectorTraits] of `PV` for `F`.]]
     [[pv] [An object of type `PV`.]]
     [[I] [An integer in the range \[0, # of [Port]s exposed by `PV`)]]
     [[IC] [An IntegralConstant with value in the range \[0, # of [Port]s exposed by `PV`)]]
@@ -61,7 +61,7 @@
 files:
 
 ```
- #include <boost/dataflow/support.hpp>
+ #include <boost/dataflow/generic.hpp>
 ```
 
 [endsect][/portvector]
@@ -146,8 +146,8 @@
 [heading Header]
 
 ```
- #include <boost/dataflow/support/component.hpp> // or
- #include <boost/dataflow/support.hpp>
+ #include <boost/dataflow/generic/component.hpp> // or
+ #include <boost/dataflow/generic.hpp>
 ```
 
 [heading Notes]
@@ -161,7 +161,7 @@
 
 [section:componentoperable ComponentOperable (Invocable) ]
 
-A [Component] `C` of [Tag] `T` is /ComponentOperable/
+A [Component] `C` of [Framework] `F` is /ComponentOperable/
 for a component operation `O`, if the implementation of
 the component operation `O` has been specialized for `C`
 

Modified: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/concepts.qbk
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/concepts.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/concepts.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,7 +1,14 @@
 [section Concepts]
 
-[include general.qbk]
+[section:general General]
 
+[include framework.qbk]
+
+[include framework_entity.qbk]
+
+[endsect]
+
+[/
 [section Port related]
 
 [include port.qbk]
@@ -16,6 +23,6 @@
 
 [include component.qbk]
 
-[endsect][/component related]
+[endsect][/component related]]
 
 [endsect][/concepts]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework.qbk (from r48363, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,18 +1,23 @@
-[section:general General]
+[section Framework]
 
-[section:tag Tag]
+A [Framework] type typically corresonds to a particular dataflow framework
+implemented to support the [DataflowGeneric] layer. It is
+used as a template parameter tag in (most)
+[DataflowGeneric] templates to specify the particular dataflow framework. This
+allows the same types ([FrameworkEntity]s) to be used with different dataflow
+frameworks without
+clashing. Typicaly, each framework developed for [BoostDataflow] will have
+a unique [Framework] type. [BoostDataflow] also provides a
+[default_framework] type which can be used when the user is not concerned with
+the possibility of clashing.
 
-A [Tag] type is typically used as a template parameter in (most) generic support
-layer templates to specify a particular dataflow framework. This
-allows different dataflow frameworks to be defined on the same types without
-clashing. If clashing is not a concern when developing a support layer
-for a framework, the [Tag] can be omitted in which case it defaults to
-[default_tag].
+[note In the future, the [Framework] concept is likely to be expanded to include
+further information about the framework.]
 
 [heading Notation]
 
 [variablelist
- [[T] [A [Tag] type.]]
+ [[T] [A [Framework] type.]]
 ]
 
 [heading Requirements]
@@ -20,172 +25,31 @@
 [table
     [[Name] [Expression] [Result Type] [Semantics]]
     [
- [ default_tag Inheritance]
- [`is_base<default_tag, T>::type`]
+ [framework_base Inheritance]
+ [`is_base<framework_base, T>::type`]
         [ [true] ]
         [
- To allow concept checking on [Tag] types, all [Tag] types
- must be derived from [default_tag].
+ To allow concept checking on [Framework] types, all [Framework] types
+ must be derived from [framework_base].
         ]
     ]
     [
- [Tag Concept Check]
- [[^[is_tag]<T>::type]]
+ [Framework Concept Check]
+ [[^[is_framework]<T>::type]]
         [ [true] ]
         [
- Concept check for the [Tag] concept.
+ Concept check for the [Framework] concept.
         ]
     ]
 ]
 
+[/
 [heading Examples]
 
-The following code declares the [VTK] framework [Tag] - it is a part of
+The following code declares the [VTK] framework [Framework] - it is a part of
 the [vtk_example example showing how to provide a VTK support layer].
 
 [vtk_tag]
-
-[endsect]
-
-
-[section:entity Entity,Traits]
-
-[Entity] is a base concept for [Port]s and [Component]s. Every [Entity]
-has an associated [Traits] type which describes it's dataflow properties.
-The examples below show how [Traits] can be registered for an [Entity].
-
-The registration of an [Entity] with a [Traits] is always for a specific [Tag].
-Hence, a type is an [Entity] only relative to a [Tag], and can have different
-[Traits] for different [Tag]s.
-
-[heading Refinements]
-
-* [Port], [PortTraits]
-* [Component], [ComponentTraits]
-
-[heading Notation]
-
-[variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
- [[`E`] [An [Entity] type, for [Tag] `T`.]]
- [[`ET`] [[Traits] of `E` for [Tag] `T`.]]
- [[`e`] [An object of type `E`]]
 ]
 
-[heading Entity Requirements]
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [Entity Traits]
- [[^[traits_of]<E, T>::type]]
- [`ET`]
- [
- The [Traits] of [Entity] `E` for [Tag] `T`.
- ]
- ]
- [
- [Entity Concept Check]
- [[^[is_entity]<E, T>::type]]
- [[true]]
- [
- Concept check for the [Entity] concept.
- ]
- ]
-]
-
-[heading Traits Requirements]
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [Tag]
- [`ET::tag`]
- [`T`]
- [
- The [Tag] for `ET`.
-[/ Although this currently must be `T`,
- in the future this might be permitted to be any [Tag] type
- (and used only in some forms of registration of [Traits]
- for [Entity]s).]
- ]
- ]
-]
-
-[heading Header]
-
-The types, templates, and functions shown here are declared in the following
-files:
-
-```
- #include <boost/dataflow/support.hpp>
-```
-
-[heading Notes]
-
-There is an intrusive as well as a non-intrusive way to register the
-[Traits] of a type `E`, thereby making it an [Entity].
-
-Non-intrusive registration is typically done by providing a specialization of
-the [register_traits] template (either directly, or through the provided
-macros [DATAFLOW_TRAITS] and [DATAFLOW_TRAITS_ENABLE_IF]). This will
-specialize [traits_of] for all cv-qualified versions of type `E`.
-If cv-qualified versions of type `E` should have different [Traits],
-[traits_of] should be specialized directly.
-
-Intrusive registration can be done by providing
-a `E::dataflow_traits` member type, which can be either a [Traits]
-type, or an MPL sequence of [Traits] types. Alternatively,
-the Dataflow library provides a convenience class
-`entity` which you can inherit instead of declaring the member type. This
-provides the additional benefit of being able to access free functions in the
-`boost::dataflow` namespace using ADL.
-
-The below examples illustrate the avaliable registration methods.
-
-[heading Examples]
-
-All of the below examples use the following [Tag] and
-[Traits] types:
-
-[port_registration_example_prep]
-
-[heading Intrusive registration]
-
-Intrusive registration is the easiest, but assumes you can modify the
-[Entity]:
-
-[port_registration_example_intrusive]
-
-[heading Non-intrusive registration]
-
-Non-intrusive registration is done by specializing the `register_traits`
-template. Since the `register_traits` template is keyed by [Tag],
-this is rather verbose:
-
-[port_registration_example_non_intrusive]
-
-To make things simpler, the Dataflow library provides a macro for non-intrusive
-registration (the macro also performs a static concept check on the
-[Traits]).
-
-[port_registration_example_non_intrusive_macro]
-
-[heading Non-intrusive mass registration]
-
-The [register_traits] template has an Enable template parameter for use with
-`boost::enable_if`. Hence, we can register a number of types at the same time:
-
-[port_registration_example_non_intrusive_enable_if]
-
-And again, there is a convenient macro:
-
-[port_registration_example_non_intrusive_enable_if_macro]
-
-[heading Tests]
-
-With the above registrations, the following tests pass:
-
-[port_registration_check_example]
-
-[endsect][/entity]
-
 [endsect]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework_entity.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/framework_entity.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,75 +1,27 @@
-[section:general General]
+[section:entity FrameworkEntity,FrameworkEntityTraits]
 
-[section:tag Tag]
+[FrameworkEntity] is a base concept for dataflow entities (such as [Port]
+that belong to a framework. Every [FrameworkEntity]
+has an associated [FrameworkEntityTraits] type which describes it's dataflow properties.
+The examples below show how [FrameworkEntityTraits] can be registered for an [FrameworkEntity].
+
+The registration of an [FrameworkEntity] with a [FrameworkEntityTraits] is always for a specific [Framework].
+Hence, a type is an [FrameworkEntity] only relative to a [Framework], and can have different
+[FrameworkEntityTraits] for different [Framework]s.
 
-A [Tag] type is typically used as a template parameter in (most) generic support
-layer templates to specify a particular dataflow framework. This
-allows different dataflow frameworks to be defined on the same types without
-clashing. If clashing is not a concern when developing a support layer
-for a framework, the [Tag] can be omitted in which case it defaults to
-[default_tag].
-
-[heading Notation]
-
-[variablelist
- [[T] [A [Tag] type.]]
-]
-
-[heading Requirements]
-
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [ default_tag Inheritance]
- [`is_base<default_tag, T>::type`]
- [ [true] ]
- [
- To allow concept checking on [Tag] types, all [Tag] types
- must be derived from [default_tag].
- ]
- ]
- [
- [Tag Concept Check]
- [[^[is_tag]<T>::type]]
- [ [true] ]
- [
- Concept check for the [Tag] concept.
- ]
- ]
-]
-
-[heading Examples]
-
-The following code declares the [VTK] framework [Tag] - it is a part of
-the [vtk_example example showing how to provide a VTK support layer].
-
-[vtk_tag]
-
-[endsect]
-
-
-[section:entity Entity,Traits]
-
-[Entity] is a base concept for [Port]s and [Component]s. Every [Entity]
-has an associated [Traits] type which describes it's dataflow properties.
-The examples below show how [Traits] can be registered for an [Entity].
-
-The registration of an [Entity] with a [Traits] is always for a specific [Tag].
-Hence, a type is an [Entity] only relative to a [Tag], and can have different
-[Traits] for different [Tag]s.
-
-[heading Refinements]
+[/[heading Refinements]
 
 * [Port], [PortTraits]
-* [Component], [ComponentTraits]
+* [Component], [ComponentTraits]]
 
 [heading Notation]
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
- [[`E`] [An [Entity] type, for [Tag] `T`.]]
- [[`ET`] [[Traits] of `E` for [Tag] `T`.]]
- [[`e`] [An object of type `E`]]
+ [[`DF`] [The default framework of `E`.]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to `DF`.]]
+ [[`E`] [A [FrameworkEntity] type, for [Framework] `F`.]]
+ [[`ET`] [[FrameworkEntityTraits] of `E` for [Framework] `F`.]]
+ [[`e`] [An object of type `E`.]]
 ]
 
 [heading Entity Requirements]
@@ -77,10 +29,18 @@
     [[Name] [Expression] [Result Type] [Semantics]]
     [
         [Entity Traits]
- [[^[traits_of]<E, T>::type]]
- [`ET`]
+ [[^[traits_of]<E, F>::type]]
+ [`T`]
         [
- The [Traits] of [Entity] `E` for [Tag] `T`.
+ The [FrameworkEntityTraits] of [FrameworkEntity] `E` for [Framework] `F`.
+ ]
+ ]
+ [
+ [Default Framework]
+ [[^[default_framework_of]<E>::type]]
+ [`DF`]
+ [
+ The default [Framework] of `E`.
         ]
     ]
     [
@@ -88,7 +48,7 @@
         [[^[is_entity]<E, T>::type]]
         [[true]]
         [
- Concept check for the [Entity] concept.
+ Concept check for the [FrameworkEntity] concept.
         ]
     ]
 ]
@@ -97,15 +57,15 @@
 [table
     [[Name] [Expression] [Result Type] [Semantics]]
     [
- [Tag]
- [`ET::tag`]
- [`T`]
- [
- The [Tag] for `ET`.
-[/ Although this currently must be `T`,
- in the future this might be permitted to be any [Tag] type
- (and used only in some forms of registration of [Traits]
- for [Entity]s).]
+ [Framework]
+ [`ET::framework`]
+ [`F`]
+ [
+ The [Framework] for `ET`.
+[/ Although this currently must be `F`,
+ in the future this might be permitted to be any [Framework] type
+ (and used only in some forms of registration of [FrameworkEntityTraits]
+ for [FrameworkEntity]s).]
         ]
     ]
 ]
@@ -116,117 +76,27 @@
 files:
 
 ```
- #include <boost/dataflow/support.hpp>
+ #include <boost/dataflow/framework_entity.hpp>
 ```
 
 [heading Notes]
 
 There is an intrusive as well as a non-intrusive way to register the
-[Traits] of a type `E`, thereby making it an [Entity].
+[FrameworkEntityTraits] of a type `E`, thereby making it an [FrameworkEntity].
 
 Non-intrusive registration is typically done by providing a specialization of
 the [register_traits] template (either directly, or through the provided
-macros [DATAFLOW_TRAITS] and [DATAFLOW_TRAITS_ENABLE_IF]). This will
+macros [BOOST_DATAFLOW_TRAITS] and [BOOST_DATAFLOW_TRAITS_ENABLE_IF]). This will
 specialize [traits_of] for all cv-qualified versions of type `E`.
-If cv-qualified versions of type `E` should have different [Traits],
+If cv-qualified versions of type `E` should have different [FrameworkEntityTraits],
 [traits_of] should be specialized directly.
 
 Intrusive registration can be done by providing
-a `E::dataflow_traits` member type, which can be either a [Traits]
-type, or an MPL sequence of [Traits] types. Alternatively,
+a `E::dataflow_traits` member type, which can be either a [FrameworkEntityTraits]
+type, or an MPL sequence of [FrameworkEntityTraits] types. Alternatively,
 the Dataflow library provides a convenience class
-`entity` which you can inherit instead of declaring the member type. This
+[framework_entity] which you can inherit instead of declaring the member type. This
 provides the additional benefit of being able to access free functions in the
 `boost::dataflow` namespace using ADL.
 
-The below examples illustrate the avaliable registration methods.
-
-[heading Examples]
-
-All of the below examples use the following [Tag] and
-[Traits] types:
-
-[port_registration_example_prep]
-
-[heading Intrusive registration]
-
-Intrusive registration is the easiest, but assumes you can modify the
-[Entity]:
-
-[port_registration_example_intrusive]
-
-[heading Non-intrusive registration]
-
-Non-intrusive registration is done by specializing the `register_traits`
-template. Since the `register_traits` template is keyed by [Tag],
-this is rather verbose:
-
-[port_registration_example_non_intrusive]
-
-To make things simpler, the Dataflow library provides a macro for non-intrusive
-registration (the macro also performs a static concept check on the
-[Traits]).
-
-[port_registration_example_non_intrusive_macro]
-
-[heading Non-intrusive mass registration]
-
-The [register_traits] template has an Enable template parameter for use with
-`boost::enable_if`. Hence, we can register a number of types at the same time:
-
-[port_registration_example_non_intrusive_enable_if]
-
-And again, there is a convenient macro:
-
-[port_registration_example_non_intrusive_enable_if_macro]
-
-[heading Tests]
-
-With the above registrations, the following tests pass:
-
-[port_registration_check_example]
-
 [endsect][/entity]
-
-
-[section Side]
-
-A [Side] type is used to specify the side on which an object appears in a
-binary expression or in the parameter list of a binary function.
-It can be one of the following two types:
-
-* `boost::dataflow::args::left`, and
-* `boost::dataflow::args::right`.
-
-In the Dataflow library, it is used to access the default port of a [Port]
-or [Component]
-for the underlying operation (but note that the default port of a [Port] object
-is always the port itself). For example, in an expression such as
-[^connect(a,b)], the operation would connect the default port of `a` keyed
-by `boost::dataflow::args::left` and the default port of `b` keyed by
-`boost::dataflow::args::right`. See [Port] and [Component] documentation
-for more details.
-
-[heading Notation]
-
-[variablelist
- [[S] [A [Side] type.]]
-]
-
-[heading Requirements]
-
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [Type]
- [`or<is_same<S, boost::dataflow::args::left>::type, is_same<S, boost::dataflow::args::right> >::type` ]
- [ [true] ]
- [
- These are the only two types allowed for [Side].
- ]
- ]
-]
-
-[endsect]
-
-[endsect]

Deleted: /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/general.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,191 +0,0 @@
-[section:general General]
-
-[section:tag Tag]
-
-A [Tag] type is typically used as a template parameter in (most) generic support
-layer templates to specify a particular dataflow framework. This
-allows different dataflow frameworks to be defined on the same types without
-clashing. If clashing is not a concern when developing a support layer
-for a framework, the [Tag] can be omitted in which case it defaults to
-[default_tag].
-
-[heading Notation]
-
-[variablelist
- [[T] [A [Tag] type.]]
-]
-
-[heading Requirements]
-
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [ default_tag Inheritance]
- [`is_base<default_tag, T>::type`]
- [ [true] ]
- [
- To allow concept checking on [Tag] types, all [Tag] types
- must be derived from [default_tag].
- ]
- ]
- [
- [Tag Concept Check]
- [[^[is_tag]<T>::type]]
- [ [true] ]
- [
- Concept check for the [Tag] concept.
- ]
- ]
-]
-
-[heading Examples]
-
-The following code declares the [VTK] framework [Tag] - it is a part of
-the [vtk_example example showing how to provide a VTK support layer].
-
-[vtk_tag]
-
-[endsect]
-
-
-[section:entity Entity,Traits]
-
-[Entity] is a base concept for [Port]s and [Component]s. Every [Entity]
-has an associated [Traits] type which describes it's dataflow properties.
-The examples below show how [Traits] can be registered for an [Entity].
-
-The registration of an [Entity] with a [Traits] is always for a specific [Tag].
-Hence, a type is an [Entity] only relative to a [Tag], and can have different
-[Traits] for different [Tag]s.
-
-[heading Refinements]
-
-* [Port], [PortTraits]
-* [Component], [ComponentTraits]
-
-[heading Notation]
-
-[variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
- [[`E`] [An [Entity] type, for [Tag] `T`.]]
- [[`ET`] [[Traits] of `E` for [Tag] `T`.]]
- [[`e`] [An object of type `E`]]
-]
-
-[heading Entity Requirements]
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [Entity Traits]
- [[^[traits_of]<E, T>::type]]
- [`ET`]
- [
- The [Traits] of [Entity] `E` for [Tag] `T`.
- ]
- ]
- [
- [Entity Concept Check]
- [[^[is_entity]<E, T>::type]]
- [[true]]
- [
- Concept check for the [Entity] concept.
- ]
- ]
-]
-
-[heading Traits Requirements]
-[table
- [[Name] [Expression] [Result Type] [Semantics]]
- [
- [Tag]
- [`ET::tag`]
- [`T`]
- [
- The [Tag] for `ET`.
-[/ Although this currently must be `T`,
- in the future this might be permitted to be any [Tag] type
- (and used only in some forms of registration of [Traits]
- for [Entity]s).]
- ]
- ]
-]
-
-[heading Header]
-
-The types, templates, and functions shown here are declared in the following
-files:
-
-```
- #include <boost/dataflow/support.hpp>
-```
-
-[heading Notes]
-
-There is an intrusive as well as a non-intrusive way to register the
-[Traits] of a type `E`, thereby making it an [Entity].
-
-Non-intrusive registration is typically done by providing a specialization of
-the [register_traits] template (either directly, or through the provided
-macros [DATAFLOW_TRAITS] and [DATAFLOW_TRAITS_ENABLE_IF]). This will
-specialize [traits_of] for all cv-qualified versions of type `E`.
-If cv-qualified versions of type `E` should have different [Traits],
-[traits_of] should be specialized directly.
-
-Intrusive registration can be done by providing
-a `E::dataflow_traits` member type, which can be either a [Traits]
-type, or an MPL sequence of [Traits] types. Alternatively,
-the Dataflow library provides a convenience class
-`entity` which you can inherit instead of declaring the member type. This
-provides the additional benefit of being able to access free functions in the
-`boost::dataflow` namespace using ADL.
-
-The below examples illustrate the avaliable registration methods.
-
-[heading Examples]
-
-All of the below examples use the following [Tag] and
-[Traits] types:
-
-[port_registration_example_prep]
-
-[heading Intrusive registration]
-
-Intrusive registration is the easiest, but assumes you can modify the
-[Entity]:
-
-[port_registration_example_intrusive]
-
-[heading Non-intrusive registration]
-
-Non-intrusive registration is done by specializing the `register_traits`
-template. Since the `register_traits` template is keyed by [Tag],
-this is rather verbose:
-
-[port_registration_example_non_intrusive]
-
-To make things simpler, the Dataflow library provides a macro for non-intrusive
-registration (the macro also performs a static concept check on the
-[Traits]).
-
-[port_registration_example_non_intrusive_macro]
-
-[heading Non-intrusive mass registration]
-
-The [register_traits] template has an Enable template parameter for use with
-`boost::enable_if`. Hence, we can register a number of types at the same time:
-
-[port_registration_example_non_intrusive_enable_if]
-
-And again, there is a convenient macro:
-
-[port_registration_example_non_intrusive_enable_if_macro]
-
-[heading Tests]
-
-With the above registrations, the following tests pass:
-
-[port_registration_check_example]
-
-[endsect][/entity]
-
-[endsect]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/port.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/port.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/port.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/port.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -45,8 +45,8 @@
 files:
 
 ```
- #include <boost/dataflow/support/port.hpp> // or
- #include <boost/dataflow/support.hpp>
+ #include <boost/dataflow/generic/port.hpp> // or
+ #include <boost/dataflow/generic.hpp>
 ```
 
 [endsect][/portcategory]
@@ -96,7 +96,7 @@
 A ['[Port]] is the fundamental point of data production or consumption.
 
 [heading Refinement of]
-* [Entity], [Traits]
+* [FrameworkEntity], [Traits]
 
 [heading Refinements]
 
@@ -108,17 +108,17 @@
 The following expressions are used in this document:
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
     [[`PC`] [A [PortCategory] type.]]
     [[`S`] [A [Side] type.]]
     [[`M`] [A [Mechanism] type.]]
- [[`P`] [A Port type, for [Tag] `T`.]]
- [[`PT`] [[PortTraits] of `P` for `T`.]]
+ [[`P`] [A Port type, for [Framework] `F`.]]
+ [[`PT`] [[PortTraits] of `P` for `F`.]]
     [[`p`] [An object of type `P`]]
 ]
 
 [heading Port Requirements]
-The requirements are listed only when different or in addition to [Entity]
+The requirements are listed only when different or in addition to [FrameworkEntity]
 requirements.
 
 [table
@@ -179,8 +179,8 @@
 files:
 
 ```
- #include <boost/dataflow/support/port.hpp> // or
- #include <boost/dataflow/support.hpp>
+ #include <boost/dataflow/generic/port.hpp> // or
+ #include <boost/dataflow/generic.hpp>
 ```
 
 [heading Models]
@@ -201,7 +201,7 @@
 are [BinaryOperable] in a one-to-one fashion (a pair of [Port] types
 are each other's port complements), or in a one-to-many fashion (a number
 of [Port] types have the same complement port). An example of the
-latter is [DataflowSignals], where any `signal` of signature `T` has
+latter is [DataflowSignals], where any `signal` of signature `F` has
 a complement port of type `function<T>`, and can therefore model
 [ComplementedPort], but `function<T>` cannot because there are many `signal`
 types to which it can be connected.
@@ -220,9 +220,9 @@
 The following expressions are used in this document:
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
- [[`P`] [A [ComplementedPort] type, for [Tag] `T`.]]
- [[`PT`] [[ComplementedPortTraits] of `P` for `T`.]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
+ [[`P`] [A [ComplementedPort] type, for [Framework] `F`.]]
+ [[`PT`] [[ComplementedPortTraits] of `P` for `F`.]]
 ]
 
 [heading ComplementedPort Requirements]
@@ -307,9 +307,9 @@
 The following expressions are used in this document:
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
- [[`P`] [A [DynamicPort] type, for [Tag] `T`.]]
- [[`PT`] [[DynamicPortTraits] of `P` for `T`.]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
+ [[`P`] [A [DynamicPort] type, for [Framework] `F`.]]
+ [[`PT`] [[DynamicPortTraits] of `P` for `F`.]]
     [[`p`] [An object of type `P`.]]
     [[`n`] [An object convertible to `size_t`.]]
 ]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/unary_operable.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/unary_operable.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/concepts/unary_operable.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/concepts/unary_operable.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,7 +1,7 @@
 
 [section:unaryoperable UnnaryOperable (AllDisconnectable) ]
 
-A [Port] `P` of [Tag] `T` is /UnaryOperable/
+A [Port] `P` of [Framework] `F` is /UnaryOperable/
 for a unary operation `O`, if the implementation of
 the unnary operation `O` has been specialized for `P`
 
@@ -13,7 +13,7 @@
 The following expressions are used in this document:
 
 [variablelist
- [[`T`] [A [Tag] type. If omitted, `T` defaults to [default_tag].]]
+ [[`F`] [A [Framework] type. If omitted, `F` defaults to [default_framework].]]
     [[P] [A [Port] type.]]
     [[p] [An object of type P.]]
 ]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/examples/vtk_example.qbk (from r48567, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/examples/vtk_example.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/examples/vtk_example.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/examples/vtk_example.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -48,21 +48,21 @@
 the [gui_example GUI editor] currently under development.
 
 [heading Next]
-[link dataflow.support.examples.new_layer.tag
- Setting up the Tag]
+[link boost_dataflow.support.examples.new_layer.tag
+ Setting up the Framework]
 
-[section:tag Setting up the Tag]
+[section:tag Setting up the Framework]
 
-The first thing we'll do is create a [Tag] for the VTK framework, in
+The first thing we'll do is create a [Framework] for the VTK framework, in
 namespace `boost::dataflow::vtk`. All we have to do is inherit from
-`default_tag`:
+`default_framework`:
 
 [vtk_tag]
 
 We can now use it to tag all of our [VTK] support classes.
 
 [heading Next]
-[link dataflow.support.examples.new_layer.producerconsumer
+[link boost_dataflow.support.examples.new_layer.producerconsumer
     Setting up a producer Port and a consumer Port]
 [endsect][/mechanism]
 
@@ -104,7 +104,7 @@
 
 [heading Next]
 
-[link dataflow.support.examples.new_layer.connectable
+[link boost_dataflow.support.examples.new_layer.connectable
     Making things Connectable]
 
 [endsect][/producerconsumer]
@@ -129,7 +129,7 @@
 [vtk_connect_unforwarded]
 
 [heading Next]
-[link dataflow.support.examples.new_layer.forwarding
+[link boost_dataflow.support.examples.new_layer.forwarding
     Defining forwarding functions and operators]
 
 [endsect][/connectable]
@@ -159,7 +159,7 @@
 [vtk_connect_forwarded]
 
 [heading Next]
-[link dataflow.support.examples.new_layer.component
+[link boost_dataflow.support.examples.new_layer.component
     Setting up a Component]
 
 [endsect][/forwarding]
@@ -186,7 +186,7 @@
 ```
 
 [heading Next]
-[link dataflow.support.examples.new_layer.filter
+[link boost_dataflow.support.examples.new_layer.filter
     Setting up a filter (ProducerPort+ConsumerPort)]
 
 [endsect][/component]
@@ -200,7 +200,7 @@
 [vtk_actor_filter]
 
 [heading Next]
-[link dataflow.support.examples.new_layer.producermap
+[link boost_dataflow.support.examples.new_layer.producermap
     Setting up a KeyedPort]
 
 [endsect][/filter]
@@ -220,7 +220,7 @@
 [vtk_mapper_producer]
 
 [heading Next]
-[link dataflow.support.examples.new_layer.remaining
+[link boost_dataflow.support.examples.new_layer.remaining
     Setting up the remaining components (more of the same)]
 
 [endsect][/producermap]
@@ -230,7 +230,7 @@
 [vtk_setup_rest]
 
 [heading Next]
-[link dataflow.support.examples.new_layer.using_support_layer
+[link boost_dataflow.support.examples.new_layer.using_support_layer
     Using the VTK support layer]
 
 [endsect][/remaining]

Copied: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/generic.qbk (from r48363, /sandbox/SOC/2007/signals/libs/dataflow/doc/support/support.qbk)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/support.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/generic.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,11 +1,11 @@
-[section:support Generic Support Layer]
+[section:generic Dataflow.Generic]
 
 [include introduction.qbk]
 
 [include concepts/concepts.qbk]
 
-[include examples.qbk]
+[/[include examples.qbk]]
 
-[xinclude ../dataflow_support_doxygen.xml]
+[xinclude ../dataflow_generic_doxygen.xml]
 
 [endsect]

Modified: sandbox/dataflow-rewrite/libs/dataflow/doc/generic/introduction.qbk
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/introduction.qbk (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/doc/generic/introduction.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,14 +1,14 @@
 [section:introduction Introduction]
 
-The generic dataflow layer provides [concepts] which are applicable to
+The [DataflowGeneric] layer provides [concepts] which are applicable to
 different dataflow frameworks, and can be used to develop generic dataflow
-code. Generic dataflow code (such as [DataflowBlueprint]) can be
+code. Generic dataflow code [/(such as [DataflowBlueprint])] can be
 built on top of these concepts, and then work with any dataflow framework
-whose elements model the concepts (such as [DataflowSignals]).
+whose elements model the concepts [/(such as [DataflowSignals])].
 
 Following is a gentle introduction to the various concepts addressed.
 More detail can be found in the [concepts] documentation, as well as the
-[@dataflow/support/s03.html reference] for implemented
+[@dataflow/generic/s03.html reference] for implemented
 templates, classes and functions.
 
 [heading Frameworks]
@@ -16,16 +16,16 @@
 A dataflow /framework/ is a collection of types and functions which can
 be used to move and process data in a dataflow network. Diffirent frameworks
 work in different ways, and use different mechanisms to transport data.
-For example, [BoostSignals] offers transfer of data through function calls,
+[/For example, [BoostSignals] offers transfer of data through function calls,
 while [VTK] offers a number of classes which are meant to be connected in
 a pipline (e.g., starting with the data source, manipulating it, and
-finally displaying it on the screen).
+finally displaying it on the screen).]
 
-In the Dataflow
-library, a framework typically has a [Tag], which is then used to tag its
-[Port]s and [Component]s and allow them to interoperate.
+In the [BoostDataflow]
+library, a framework typically has an associated [Framework] type, which is then
+used to tag its [FrameworkEntity]s.
 
-[heading Ports]
+[/[heading Ports]
 
 A point of data production or consumption in a dataflow framework
 is called a /port/.
@@ -57,6 +57,6 @@
 and /extract/ are captured by the [BinaryOperable] concept. Operations
 on a single port such as /disconnect_all/ are covered by the [UnaryOperable]
 concept. Operations on components are covered by the [ComponentOperable]
-concept.
+concept.]
 
 [endsect]

Deleted: /sandbox/SOC/2007/signals/libs/dataflow/doc/support/support.qbk
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/doc/support/support.qbk 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
+++ (empty file)
@@ -1,11 +0,0 @@
-[section:support Generic Support Layer]
-
-[include introduction.qbk]
-
-[include concepts/concepts.qbk]
-
-[include examples.qbk]
-
-[xinclude ../dataflow_support_doxygen.xml]
-
-[endsect]

Modified: sandbox/dataflow-rewrite/libs/dataflow/test/generic/Jamfile
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/test/generic/Jamfile (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/Jamfile 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -12,3 +12,6 @@
 run test_framework_entity_traits.cpp ;
 run test_framework_entity_traits_of.cpp ;
 run test_default_framework_of.cpp ;
+
+run test_port_categories.cpp ;
+run test_port.cpp ;

Modified: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_default_framework_of.cpp
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_default_framework_of.cpp (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_default_framework_of.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -18,7 +18,7 @@
 
 namespace df = boost::dataflow;
 
-struct my_framework : public df::framework
+struct my_framework : public df::framework_base
 {};
 
 struct no_traits

Modified: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework.cpp
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework.cpp (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -17,7 +17,7 @@
 struct not_framework
 {};
 
-struct my_framework : public df::framework
+struct my_framework : public df::framework_base
 {};
 
 BOOST_AUTO_TEST_CASE( test )

Modified: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity.cpp
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity.cpp (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -15,7 +15,7 @@
 
 namespace df = boost::dataflow;
 
-struct my_framework : public df::framework
+struct my_framework : public df::framework_base
 {};
 
 typedef df::traits<df::default_framework> default_traits;

Modified: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity_traits_of.cpp
==============================================================================
--- sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity_traits_of.cpp (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_framework_entity_traits_of.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -15,7 +15,7 @@
 
 namespace df = boost::dataflow;
 
-struct my_framework : public df::framework
+struct my_framework : public df::framework_base
 {};
 
 typedef df::traits<df::default_framework> default_traits;

Copied: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port.cpp (from r48363, /sandbox/SOC/2007/signals/libs/dataflow/test/test_port.cpp)
==============================================================================
--- /sandbox/SOC/2007/signals/libs/dataflow/test/test_port.cpp (original)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -1,163 +1,32 @@
-// Copyright Stjepan Rajko 2007. Use, modification and
+// Copyright Stjepan Rajko 2007, 2008. Use, modification and
 // distribution is subject to the Boost Software License, Version
 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
 // http://www.boost.org/LICENSE_1_0.txt)
 
-#include "my_producer_consumer.hpp"
 
-#include <boost/test/included/test_exec_monitor.hpp>
+#include <boost/dataflow/generic/port/port.hpp>
 
-#include <boost/mpl/vector.hpp>
-#include <boost/type_traits/is_base_of.hpp>
+#include <boost/dataflow/generic/framework_entity.hpp>
 
-// for different port registrations
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
 
-//[ port_registration_example_prep
-typedef df::port_traits<df::ports::producer> producer_traits;
-typedef df::port_traits<df::ports::consumer> consumer_traits;
+namespace df=boost::dataflow;
 
-struct some_tag : public df::default_tag {};
-
-typedef df::port_traits<df::ports::consumer, some_tag> other_consumer_traits;
-
-//]
-
-//[ port_registration_example_intrusive
-
-// Intrusive registration of a single port
-struct intrusive_producer_port
-{
- // intrusive_producer_port is a ProducerPort
- typedef producer_traits dataflow_traits;
-};
-
-// Intrusive registration of a multiple ports
-struct intrusive_producer_consumer_port
-{
- // intrusive_producer_port is a ProducerPort for the default_tag,
- // and a ConsumerPort for some_tag
- typedef boost::mpl::vector<producer_traits, other_consumer_traits> dataflow_traits;
-};
-//]
-
-//[ port_registration_example_non_intrusive
-
-struct non_intrusive_port
-{
-// Can't or don't want to modify the type
-};
-
-namespace boost { namespace dataflow {
-
-// register_traits holds the PortTraits type of a Port
-template<>
-struct register_traits<non_intrusive_port>
-{
- typedef producer_traits type;
-};
-
-} } // namespace boost::dataflow
-
-//]
-
-//[ port_registration_example_non_intrusive_macro
-
-// Non-intrusive registration via a macro:
-struct non_intrusive_port2
-{
-// Can't or don't want to modify the type
-};
-
-DATAFLOW_TRAITS(non_intrusive_port2, producer_traits)
-
-//]
-
-//[ port_registration_example_non_intrusive_enable_if
-
-// Non-intrusive registration via an enable_if expression
-struct non_intrusive_port_base
-{
-};
-
-namespace boost { namespace dataflow {
-
-// register_traits holds the PortTraits type of a Port
-template<typename T>
-struct register_traits<
- T,
- default_tag,
- typename boost::enable_if<
- boost::is_base_of<non_intrusive_port_base, T>
- >::type>
-{
- typedef producer_traits type;
-};
-
-} } // namespace boost::dataflow
-
-struct non_intrusive_port_descendant : public non_intrusive_port_base
+struct my_framework : public df::framework_base
 {};
 
-//]
-
-//[ port_registration_example_non_intrusive_enable_if_macro
-
-// Non-intrusive registration via a macro and an enable_if expression
-struct non_intrusive_port_base2
-{
-};
-
-DATAFLOW_TRAITS_ENABLE_IF(
- T,
- boost::is_base_of<non_intrusive_port_base2 BOOST_PP_COMMA() T>,
- producer_traits)
-
-struct non_intrusive_port_descendant2 : public non_intrusive_port_base2
+struct my_port : public df::port<df::port_traits<df::ports::producer, my_framework> >
 {};
 
-//]
+struct my_entity : public df::framework_entity<df::traits<my_framework> >
+{};
 
-struct whatever;
+struct not_entity;
 
-int test_main(int, char* [])
+BOOST_AUTO_TEST_CASE( test )
 {
- BOOST_CHECK(df::is_port_category<df::ports::producer>::value);
- BOOST_CHECK(df::is_port_category<df::ports::consumer>::value);
-
- BOOST_CHECK(!df::is_port_category<incomplete>::value);
- BOOST_CHECK(!df::is_port_category<empty>::value);
-
- BOOST_CHECK(df::is_port_traits<my_producer_traits>::value);
- BOOST_CHECK(df::is_port_traits<my_consumer_traits>::value);
-
- BOOST_CHECK(!df::is_port_traits<incomplete>::value);
- BOOST_CHECK(!df::is_port_traits<empty>::value);
-
-
- BOOST_CHECK(( df::is_port<my_producer>::value ));
- BOOST_CHECK(( df::is_port<my_consumer>::value ));
-
- BOOST_CHECK(( !df::is_port<empty>::value ));
-
- my_producer p;
-
- // check registrations
- //[ port_registration_check_example
- BOOST_CHECK(( df::is_port<intrusive_producer_port>::value ));
-
- BOOST_CHECK(( df::is_port<intrusive_producer_consumer_port, some_tag>::value ));
-
- BOOST_CHECK(( df::is_port<non_intrusive_port>::value ));
-
- BOOST_CHECK(( df::is_port<non_intrusive_port2>::value ));
-
- BOOST_CHECK(( df::is_port<non_intrusive_port_descendant>::value ));
-
- BOOST_CHECK(( df::is_port<non_intrusive_port_descendant2>::value ));
- //]
-
- BOOST_CHECK(( df::has_default_port<my_producer, whatever, whatever>::value ));
- BOOST_CHECK_EQUAL(( &df::get_default_port<whatever, whatever, df::default_tag>(p)), &p );
-
- return 0;
-} // int test_main(int, char* [])
+ BOOST_CHECK((df::is_port<my_port>::value));
+ BOOST_CHECK((!df::is_port<my_entity>::value));
+ BOOST_CHECK((!df::is_port<not_entity>::value));
+}
\ No newline at end of file

Added: sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port_categories.cpp
==============================================================================
--- (empty file)
+++ sandbox/dataflow-rewrite/libs/dataflow/test/generic/test_port_categories.cpp 2008-09-19 06:29:38 EDT (Fri, 19 Sep 2008)
@@ -0,0 +1,19 @@
+// Copyright Stjepan Rajko 2007, 2008. Use, modification and
+// distribution is subject to the Boost Software License, Version
+// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+
+#include <boost/dataflow/generic/port/categories.hpp>
+
+#define BOOST_TEST_MAIN
+#include <boost/test/unit_test.hpp>
+
+namespace df=boost::dataflow;
+
+BOOST_AUTO_TEST_CASE( test )
+{
+ BOOST_CHECK((df::is_port_category<df::ports::producer>::value));
+ BOOST_CHECK((df::is_port_category<df::ports::consumer>::value));
+ BOOST_CHECK((df::is_port_category<df::ports::producer_consumer>::value));
+}
\ No newline at end of file


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