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
// End: