Finished Socket library file handle hierarchy documentation
[senf.git] / Socket / SocketPolicy.hh
index eb453af..8dba18b 100644 (file)
     \brief Policy Framework public header
 
     \todo We should probably remove BufferingPolicy from the
-    interface, it does not make much sense (how did I come to include
-    it ??)
+       interface, it does not make much sense (how did I come to
+       include it ??)
     
     \todo Do we want to support separate read and write policies. This
-    allows to treat pipes within this framework however, is this worth
-    the effort?
+       allows to treat pipes within this framework however, is this
+       worth the effort?
+
+    \idea Creating a new Socket will create 4 (!) new instances (The
+       handle, the body, the policy and the protocol) of which 3
+       (argh) (body, policy and protocol) live on the heap. This is
+       expensive. We should convert all the policy classes to
+       singletons and assign the same instance to all socket bodies
+       with the same policy. This would reduce the number of heap
+       allocations per socket handle to two.
  */
 
 /** \defgroup policy_group The Policy Framework
     senf::ConnectedCommunicationPolicyIs is based on the \c
     boost::enable_if template).
 
-    \see \ref policy_framework \n
-        \ref extend_policy \n
+    \see \ref extend_policy \n
          <a class="ext" href="http://www.boost.org/libs/utility/enable_if.html">The Boost enable_if utility</a> \n
          <a class="ext" href="http://www.boost.org/libs/mpl/doc/index.html">The Boost.MPL library</a> \n
          <a class="ext" href="http://www.boost.org/libs/preprocessor/doc/index.html">The Boost.Preprocessor library</a>