X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Socket%2FMainpage.dox;h=2296b5d965178cc16eb5e23efde7a706131ee0f6;hb=d0006132bfcb3ab442cf66b600ed3fad36f1ac2c;hp=29496dc37f201d7b12fbe423c836a8c7e15bd7e0;hpb=5a5c6d7f0fae7ad6c0af49d7742955cb6cf618cf;p=senf.git diff --git a/Socket/Mainpage.dox b/Socket/Mainpage.dox index 29496dc..2296b5d 100644 --- a/Socket/Mainpage.dox +++ b/Socket/Mainpage.dox @@ -193,8 +193,26 @@ namespace senf { */ /** \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). */ }