Utils/Console: Special utility type documentation
[senf.git] / senf / PPI / MultiConnectorMixin.ih
index eff8769..e6f3d1c 100644 (file)
@@ -51,6 +51,14 @@ namespace detail {
         typedef boost::ptr_map<KeyType, ConnectorType> type; 
     };
 
+    template <class Module, class Connector>
+    class MultiConnectorWrapper
+        : public Connector
+    {
+    private:
+        virtual void v_disconnected() const;
+    };
+
 #ifndef DOXYGEN
 
     template <class ConnectorType>
@@ -68,48 +76,44 @@ namespace detail {
               ppi::detail::DisableStandardInput, ppi::detail::DisableStandardOutput >
     {};
 
-    template <class T> senf::mpl::rv<0> is_multiconnector_(T *, ...);
-    template <class T> senf::mpl::rv<1> is_multiconnector_(
-        T *,
+    template <class T> senf::mpl::rv<0> isMulticonnector(...);
+    template <class T> senf::mpl::rv<1> isMulticonnector(
         typename boost::enable_if<boost::is_base_of<connector::OutputConnector, 
                                                     typename T::ConnectorType>, 
-        int>::type);
-    template <class T> senf::mpl::rv<2> is_multiconnector_(
-        T *,
+                                  int>::type);
+    template <class T> senf::mpl::rv<2> isMulticonnector(
         typename boost::enable_if<boost::is_base_of<connector::InputConnector, 
                                                     typename T::ConnectorType>, 
-        int>::type);
+                                  int>::type);
 
     template <class T, unsigned N>
-    struct is_multiconnector_source_
+    struct IsMulticonnectorSource_
         : public boost::false_type
     {};
 
     template <class T>
-    struct is_multiconnector_source_<T, 1u>
+    struct IsMulticonnectorSource_<T, 1u>
         : public boost::true_type
     {};
 
     template <class T>
-    struct is_multiconnector_source
-        : public is_multiconnector_source_<
-              T, SENF_MPL_RV(is_multiconnector_<T>(static_cast<T*>(0),0))>
+    struct IsMulticonnectorSource
+        : public IsMulticonnectorSource_<T, SENF_MPL_RV(isMulticonnector<T>(0))>
     {};
 
     template <class T, unsigned N>
-    struct is_multiconnector_target_
+    struct IsMulticonnectorTarget_
         : public boost::false_type
     {};
 
     template <class T>
-    struct is_multiconnector_target_<T, 2u>
+    struct IsMulticonnectorTarget_<T, 2u>
         : public boost::true_type
     {};
 
     template <class T>
-    struct is_multiconnector_target
-        : public is_multiconnector_target_<
-              T, SENF_MPL_RV(is_multiconnector_<T>(static_cast<T*>(0),0))>
+    struct IsMulticonnectorTarget
+        : public IsMulticonnectorTarget_<T, SENF_MPL_RV(isMulticonnector<T>(0))>
     {};