+
+ policy | collection of policy classes, one for each policy axis, instantiation of
+ the SocketPolicy template |
+
+ policy axis | one aspect defined in the socket policy, typedef and member of the
+ SocketPolicy template |
+
+ policy class | implementation of a single policy axis, class derived from the
+ axis base class |
+
+ complete policy | socket policy where each axis is specified completely |
+
+ incomplete policy | socket policy, where at least one axis is not fully
+ specified |
+
+ protocol class | definition of a protocol as a class, class inheriting from
+ ConcreteSocketProtocol. |
+
+ protocol facet | a class providing some subset of the protocol interface, class
+ derived from SocketProtocol but not from ConcreteSocketProtocol |
+
+ policy interface | interface directly provided by
+ ClientSocketHandle/ServerSocketHandle and defined through the policy |
+
+
protocol interface | interface provided by the protocol class and accessible via
+ the ProtocolClientSocketHandle::protocol()/ProtocolServerSocketHandle::protocol()
+ member |
+
+
+ */
+
/** \page implementation Implementation notes
+ \section class_diagram Class Diagram
+
\image html SocketLibrary-classes.png
+
+ \section impl_notes Arbitrary Implementation Notes
+
+ \li The implementation tries to isolate the library user as much as possible from the system
+ header files since those headers define a lot of define symbols and introduce a host of
+ symbols into the global namespace. This is, why some classes define their own \c enum types
+ to replace system defined define constants. This also precludes inlining some functionality.
+
+ \li To reduce overhead, template functions/members which are more than one-liners are often
+ implemented in terms of a non-template function/member. This is also used to further the
+ isolation from system headers as defined above (template code must always be included into
+ every compilation unit together with all headers need for the implementation).
*/
+}
+
// Local Variables:
// mode: c++
+// fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
// mode: flyspell
// mode: auto-fill
-// ispell-local-dictionary: "american"
// End: