From 96651a328ebf872d1adaa9bf68ce0097b1171649 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Tue, 9 Jan 2007 13:12:46 +0000 Subject: [PATCH] Clean up SENFScons.py Rename macro prefix SATLIB to SENF Begin socket library documentation --- Socket/FhHierarchy.dia | Bin 0 -> 2042 bytes Socket/Mainpage.dox | 70 ++++++++++++++++++++++++++++++- Socket/SConscript | 2 + Socket/SocketLibrary-classes.dia | Bin 4339 -> 5621 bytes Socket/SocketPolicy.ct | 6 +-- Socket/SocketPolicy.dia | Bin 0 -> 2628 bytes Socket/SocketPolicy.hh | 2 +- Socket/SocketPolicy.ih | 30 ++++++------- doclib/Doxyfile.global | 2 +- senfscons/SENFSCons.py | 12 +----- 10 files changed, 92 insertions(+), 32 deletions(-) create mode 100644 Socket/FhHierarchy.dia create mode 100644 Socket/SocketPolicy.dia diff --git a/Socket/FhHierarchy.dia b/Socket/FhHierarchy.dia new file mode 100644 index 0000000000000000000000000000000000000000..763745f1d13093260dbd0c70a5499f385f19dbac GIT binary patch literal 2042 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 Y{QgyXAb(c!?r{I=f7@OWiKdPK0A_^dcmMzZ literal 0 HcmV?d00001 diff --git a/Socket/Mainpage.dox b/Socket/Mainpage.dox index 09e881bbe..15993a6fe 100644 --- a/Socket/Mainpage.dox +++ b/Socket/Mainpage.dox @@ -33,12 +33,43 @@ socket representation. This frees you of having to manage the socket lifetime explicitly. + \section socket_hierarchy The FileHandle hierarchy + + \image html FhHierarchy.png + + The senf::FileHandle class is the base of a hierarchy of socket + handle classes (realized as templates). These classes provide an + interface to the complete socket API. While going down the + inheritance hierarchy, the interface will be more and more + complete. + + The most complete interface is provided by + senf::ProtocolClientSocketHandle and + senf::ProtocolServerSocketHandle. The template Arguments specifies + the Protocol class of the underlying socket type. These are the + \e only classes having public constructors and are therefore the + only classes, which may be created by the library user. You will + normally use these classes by naming a specific socket typedef + (e.g. senf::TCPv4ClientSocketHandle). + + However, to aid writing flexible and generic code, the socket + library provides the senf::ClientSocketHandle and + senf::ServerSocketHandle class templates. These templates + implement a family of closely related classes based on the + specification of the socket policy. This policy specification may + be \e incomplete (see below). Instances of + senf::ClientSocketHandle/senf::ServerSocketHandle can be assigned + and converted to different ClientSocketHandle/ServerSocketHandle + types as long as the policy specifications are compatible. + \attention It is very important, to (almost) always pass the socket handle <em>by value</em>. The socket handle is a very lightweight class and designed to be used like an ordinary built-in type. This is very important in combination with the policy interface. \section policy_framework The policy framework + + \image html SocketPolicy.png The policy framework conceptually implements a list of parallel inheritance hierarchies each covering a specific interface aspect @@ -70,6 +101,42 @@ <dd>configures, if and how buffering is configured for a socket</dd> </dl> + Every Policy value is identified by a class type. The policy types + themselves built an inheritance hierarchy for each policy + axis. For each policy axis, the root of this tree is the class + named '<tt>(axis name)Base</tt>' (e.g. \p FramingPolicyBase or \p + CommunicationPolicyBase) which is aliased to '<tt>Unspecified(axis + name)</tt>' (e.g. \p UnspecifiedFramingPolicy or \p + UnspecifiedCommunicationPolicy). + + The senf::SocketPolicy template combines a set of policy classes, + one for each policy axis. Together, they define the behavior of a + socket handle. The socket handle instances do net implement any + socket functionality themselves, instead defering the + implementation to the socket classes. The interface is therefore + \e not implemented using virtual members, all important socket + functions can be inlined by the compiler to create highly + efficient code. + + Two SocketPolicy instances are considered compatible, if all + policy axis are compatible. A policy axis is compatible, if one + policy class is either the same as the other or derived from + it. Two SocketHandle instances can be converted into each other, + as long as the SocketPolicies are compatible. + + \section policy_interface The policy interface + + The socket handle classes and templates only implement the most + important socket API methods. To access the complete API, the + protocol interface is provided. Access to the protocol interface + is only possible via senf::ProtocolClientSocketHandle and + senf::ProtocolServerSocketHandle which have the necessary \c + protocol() member. This member returns a reference to the protocol + class instance which contains members covering all the API + function snot found in the SocketHandle interface. The protocol + interface is specific to the protocol. It's implementation is + quite free. Every protocol class will define the complete and + specific socket policy of it's socket handle. */ /** \page extend Extending the Library @@ -77,10 +144,9 @@ /** \page implementation Implementation notes - \image html "../../SocketLibrary-classes.png" Class hierarchy + \image html SocketLibrary-classes.png */ - // Local Variables: // mode: c++ diff --git a/Socket/SConscript b/Socket/SConscript index ffd61cda4..9aff67446 100644 --- a/Socket/SConscript +++ b/Socket/SConscript @@ -16,4 +16,6 @@ SENFSCons.Lib(env, SENFSCons.Doxygen(env, extra_sources = [ env.Dia2Png('SocketLibrary-classes.dia'), + env.Dia2Png('FhHierarchy.dia'), + env.Dia2Png('SocketPolicy.dia'), ]) diff --git a/Socket/SocketLibrary-classes.dia b/Socket/SocketLibrary-classes.dia index c0e9d1f5149240f8a28d73ba7b9c74a68fceb8cb..f31dd1dcbaa9ba94bc5d1dc44d1cc2b61ccb4888 100644 GIT binary patch literal 5621 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 literal 4339 zcmZ{oWl$81x5iPCbSb5~mS#a<Vd;(~MCmR8Y3T-GkuGW2B_!PiDM=-yU8F-ox*L{| zhWoz%_s*TUbKiS@U!Hkp&YUyPhx6eu#^GW8rylK_nR%`@kOwbXEWb48%fiAB>BiXk z_}cxB^2t$yql=<4-ed#VQEc^z*CUJO@6z~mSb9M3YFqk*;1%^GL~>-5=X0K6*W<&X z{6%qYaw(CR9Xt6L!Dc-DFMbS_6r!n%cW2%^S|N8A%Vqvs_nddUWTF1dZ8gw!H__B6 zUXy!2@3V^w)xxrg;gtx*<;dcW$@?45<0{3Xa&#XtC1sUF)^#>W=6A@By%E`hOYM^N zItT_w=gM5$eCUQx2ED4AZGiW@M3@Gh6v5HN=a<84j=u->kol~^RkuoSGqLX&&&+67 z`cAIAT8UC_T{CyZ07|KQ4#6YErHq%01}+VsUyZ)0zqsh)*o|6AX<*#DLVX=EPIlhr zh<ocD&3d4zJBO!i+MCrxJ?AOaRYP|b^x|vRd;%e50%2x6A!TXft{9q3W`KzKa7B#Z zMlURf9bO=#C4Rz+iKVB_kmKz|+8CwjK%1557Z?wv2Wky>qp>?}#D*D&<T~~Au}0)t zWw4i5m}#ejF_^ghEypMdH8C02NGP9U0QzuzKfjMrS`;ed^?i`%C{MZTnxb^s?3r$Y zcF(t?x!cs7gY$gLHuL>9>7xX$fO0dEP1o;_7J}tWojd)L!7Z`tU=b-PXSkWj{MoIK zi<<^!G%qkkLGex}+4<Xji>C&E1F@ge2lM&&7YB<SyuXPK8{6;qtphOZ$KzhLp0yEi z<U?-2dx8FQyHMdm4y!F<*CFu`e^_b!$WLSz<u$8x9hWzjukZCO$I9{TBnyEL)s06# z{_4~OD@FTS_bxt_V#l!$1xL98NOk^`M{=-GyFK)i5`uZ2ar(0L&c!-iGkucSd6<&d zKm0!4J`{Tf<o;|Zk2|=NU)F(wO^(-MR=lZ$#F~O1rdRqo^j<4yDxV%J?ItQv1_}!q zW|^;;QcEsv1l=b)M#Vn1I1;iFu9K4j>GI*~{b|3#N)RpHCoBVO3Sy>QqQ>vr);aH5 zv+^6i;NE|CZ8OyTxi!`P7PJ02VE@5HvUL$hXE2r0AfB!AB7m9jZs0W0ikvWoa(<yN z3P&Tv$Ndo0wY6<m8*kwL^^bkW8p~i_aVQhTbzvL`1H^|FGv0l1-}QW4S-wX0%l))2 zKJ`pNY}cC{%5M!c<GP&MP*)8W<gggAVCb@dZJ8v$7Ybd1Z3VMe7V^yGG*%wPj<CxY z(Y_{`(q6&cZx38$&IB&_Rj)UelV)-UXM1<FhS<~tkiU{<%JSg0r(+k%C8El<=W_<3 z(wPkKi)+%P8_v-xli&T)msYZdl+}I&@S-36$wb*<(iL-%Cq)8*sBl7kxGm-?y9x%F zx8nYx%5(o^YCkpg9Gu%T34*#c^)I1S$G4?P<EFMex63JXHP|$YQ#IKxq0ai9gQ;}h zYul$vtY9EHa1sqnKYF#vI$UBgsbEcDMUd-EAO$Sk{IEH4NFyK^BM_qnjyV9IpUXX$ zesNWSPnn9JigbML4RxHx_b>nyj(YF`Z3@&H0}t9X>5iohGJl1zv}LDzum;dXz9@@T z-T*24)(t7^UeaF&q`VuSS*QeYJmEp?YhHT?&H6Q*@0>q9f_-T<%73wji)yu+%q}tb zR@@(Al;QO@qeM-z@9o8UT66bvQv>^k5~U}9!h6ilbI6kXHA0w9_^-no2U>K6#=z8B zh^CD5tG-`ZiRkF<^w5bin-D<JlBc8!H}I9<hu9chjbdvS@~6lw)gHxvEQsqt)=~GS zoVa?YHw8!02dhs^+Hwnp1Y?rt<}^I2qH!z2+JA<0Us(lLZTSfWA({m?P8mEG-j_!) z;R}U|5W4Q>%^U#7tSs+mu+ifXlhoN&$A;z2(<7>Iq8jJ-4Xe_##l+S0e{+cTIaSLU zA?KK5w>3qkWKLW9$3XqV6AStAIe!*PxI65SxW0rX6!CLWzoB(UvuGI|xG#n^of?FS zBt870o}9@9k~0r)!S=^LCR=0w$4L0PUCNIpEF@E8kA{+@lTd}+hgn5_7f@uMCi<Ib z=&e%83kRCv&dv#XsQQMb1Dbh`XN?~Ic5pUDVefO=+J@njhv=veC{?NDZcFXYTR1Ul zQ=5mzbEPSA*V|=}qzs91#hnaU9kNMGt(I4snIT<Wl6Q>Qy*fmWmEow1pJ=yft&>{} z+Txb`OPM(cLt_L;i+BxwYNoy4<wQ(YbnHy^vBfa<Rqx(ef50Y`aWW(a)Ng)9ET)#Q z%FN!rg1Vid8Q^<g{OY;)lmm`fB=3LrDDWdTe>zfZQqxj?3vJEz!!4~{`Q~+PW_(xa zZ|G=u7#_)yW!UvpLqi_Pm%#?h;`gotX5n#~$iI}=+%bJYUGs@A({_h!c#m)a+@aVb z`<pFmI%1obQ9(tOi>tqn35l)7&I(NDl$F=VuZ1S-g;$WhPG>5|He&z5J({WK@!k^% zpQ!JpNn6}U+5`zWZFc*|<mtEy=GK{6LWT_os;BGKoXf<#<H`EA2p3Ws%BdY_7Y;~I zf^)_7HDnPII7CSa%mqjP8ymMLMjY-Gag%n!EG@Q+D61MhY!jsgee#TPHv2nv!x%Zm z<<Q+@q5b7->h5YkhRf=hkJo#|)_zqrm1Q`XhAj#~(^RLy;R;67*WT;pBCUjBDH)-5 zU}$QOTFWSfOUTDq+F(g_`#fYMlR*_-U905tZ|X!epwLY20XZjO{~^oNP0~a57bf4( zLfy_~RlIpBb9_y58qj*0ma8z7Q%nBlFQniTh9?VeaFPH5ei_m*1CGV!E;ETZfoy!9 zJ2$b3F~<#Fs{sPe%$K{yVvvX8FTUD#+XZ+02F|0X-q2!(*b$izd4{sfmO^5RrIc9s z6(!kL<a=PTxa7p#47!q^{IoFzE6k*nF-_2{7SSxU(29Bg=aNz-&0JygrK51=z=@Vp zoDao0{m~`J^zX!s77~9B(skShJr`wZ*;Z^H1>*ic7{L7$0p8gv$DG{ro0cv@Ne$Xn z&y(2N5Bbb|HKoL<kbfoS7+Th=DkZ-&`Ua`;>)izFc|>zYS{@wj>G@YK3JkX@F|5QS z1wgA-)~ta2T+L7Wbefc9-5Jd*^u|O4PaA8z_&(3n96Ho`J+c-P@GcYeUbryI(3QiO zYDs1XZ{a%?&9u#Q|M<cSu!b}T7nOQLyzxD~7@bg-@h)sM&~uR-q0BdVjmj*eWUm0l zG^!%Wj!cuXs4(3}NSuF++mf7`qyUIeO|LFh^Xu+kt)a&d4|KFjGgl9daoY0}wm*i( zgLksDG&*qjV1k4Q{WC?mBeIU4avkcvvPUVkPZdE?26nZ0?FezjU1q9>u%80#n^O}l zh}rHn<D&Gg-U)6kbY#LZ-+SN(rNj|7`BXej7U7uxBamFekS2j~&(eI2jM1;mrqhfK zk5gznsh4@}e<l8c1?)x|ERHe7LlVa_ZWUOf<yi<IoCMo|82P-VVyO7VGY<(FU-{5< zh)JFh#?&$~r<=O01rfen&x3#1);H#%GLNswt|y*^2QB<cXPpwQ#sZAVV*78g;~{Z) zR$1BmrLEs1Ur)XeMThGDh?+ZH(aGukQVo`rYWkj{=DdNH6|{-i25e<TNIXtcd-A~B z<td1G+pxEw(=kDC=Sq;FVZB>-)|FO^#>;bYDF!%<aj+ux)};Boyy~CzENn7nN8)M4 z#+iC>k%(q@E3GZNv1=i(smgMN9bW)WaX-oJUl)ruGup$lkaFlhSBo$aRMT7SjrZbD ztF+NN*{Jyg<*HQ0*O~2m+-cD?rg0r2gPg-jY`!sCW%8~tF4+qaA-vY&&c+dLKZE$4 zYH}gtdcnlTWZ3Gu@>{wkF+|Vt^W&Yucj!)cKX_u-jHL0Io_6koO4!T0N|C(Hg2KpH z(;s}T*K;lE7{*KsLSdN2j+DodrEI#3Upe>~l?1Lm&VrSQa1psan!{-Vyrn&Qy@;5y zoQQmqlZ&&F+wWu<Nmdo+kO0>3&r7@NccQBM(QraLjbZATa2}O6KN$tK{HS_AjFta@ zhcF07a^`T>zCf9>tV7c1Q`k#(Ef`XC#PUbU<TM08QByAg=p#OQj_>wYqo+bahvoI) zlE`<b@3Rl99=!N-eL`c%Q5BXq;AH98g42qNnYqLXfo^^I{XM2+(dCUX#-y$QFp38^ zBmy;tk7JcRP$xwEJ#g5eS{wq{d;Qm}ZilVmTN7~rMJlR0Zrt)|>AVAH0&*jI5$rOc z+}Gjt$GF4&-Risb$BB>f_RcrOyu_V;3cuJ8GlbINR*KTU@&Zvh-0g{q&9>q!B=7t% zska0e0rZ;zH;*p}4fU2lOX!f$JNYt2)$y@S&_wPa8ix@)5WTvFyhj)@Om2bjnDntA z54UEyh8Vyx%cs3AzLI6Jqz#b#lRZM5o=!5U;6FOg@Z`gop5b*`A;jXJM!ByDXwmh? zbcwlBaS*N2)ys}JXc0MAxOCxUhA%}xAp1o*+of365(Q3qgdI9C!vUMhG9g_vQN_o6 zfX;6X;^#-+QM2INT<f%kmtI$RjM~3@soLuRv_Vv;xd%=pxsd}b<_}gj`qHUu2htUs zKeIRBCZP1fTwsX6vm6k{F$3G^9XI%sHH;gKhhTmi`JMWq{r?D#a_cWcdV3#sr*8@= zo~1i$qc>diY9WW=XRA38C)@_Zk&Lr$&#df?9E{u`OrS*+Fl?@+Q;0o{{3G`u?!{EX zk*W^NZ{Q<9bI=vA?Q2xaV0Eh#b#|^E>qW48n6J7ZQQ1yX)&EsEi~mE2+dT!C_G|1s zv#y3q8%O6P&8famrJW~W-M=`0^S2YPf5a!f=N@M6<*Rq%%7)Z;Rb*IO+R2YL#<*M> zc-F$IUgkvSZ+KF3QiQsx7VQ(5I6Rtd-kN`h`t&X!4SLwpe5}(K=%dU0W*u>kT@f$u zge8fhc+*WA7(_l6hEo^tK<@UN5r~!UDcRRT-B^4+)BH-Y^b~o*mmhhwN~#O2BqxtM zwZlGEec1D*S9u*-N$H{JNW~5IGSA!Tyy;?#T1c|{e%3@#Ri+$7#U|qgewc2x<|=sk z(QRY;0^kv0egsTkGJIk&N?1jC+9dnY%a8oBm7WE)Z-b(l%YbPta_`LLa>FBOP|l?4 z8x4ta8GQcF-glF|&VIW2TqfE2Nv&j1{Qg$0x^rcJKnvvHMue2-S+vl<asnZ>N2%HX z^E8}3vThIL>Ab@~aHeRdvQZl(z?psJTG}0`5`P(&wE<5z3|y;t=!WyJNHZ=BOdQz> z$!twgy$8cDF+Dgn*iQW1ocNIt0tbD8ejmgPbH#w&yl;0wDBuS2ue%6EpInmI>yW$q zJT7_7N@|b1tmShDpNw_ckZyJqIjbWU$A>l+Qw0cR)8+n^;V5ns6j<c9|LFBgu!uya z{!l7J&~`b%t(b36L1j9TJusq`Bj?87GnA2Sy7vj{-v|;%nFbwu`1oL))?^<4^*87N WtqikZG8tuV7zbi49-{glVEq>hTUfXN diff --git a/Socket/SocketPolicy.ct b/Socket/SocketPolicy.ct index cc2191618..cbcfd3084 100644 --- a/Socket/SocketPolicy.ct +++ b/Socket/SocketPolicy.ct @@ -32,12 +32,12 @@ #define SP_TemplateArgs(x1,x2,n,SomePolicy) BOOST_PP_COMMA_IF(n) class BOOST_PP_CAT(SomePolicy,_) #define SP_TemplateParams(x1,x2,n,SomePolicy) BOOST_PP_COMMA_IF(n) BOOST_PP_CAT(SomePolicy,_) -template < BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateArgs, , SATLIB_SOCKET_POLICIES ) > -prefix_ void senf::SocketPolicy< BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateParams, , SATLIB_SOCKET_POLICIES ) >:: +template < BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateArgs, , SENF_SOCKET_POLICIES ) > +prefix_ void senf::SocketPolicy< BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateParams, , SENF_SOCKET_POLICIES ) >:: checkBaseOf(SocketPolicyBase const & other) { # define SP_CheckPolicy(x1,x2,SomePolicy) (void) dynamic_cast<SomePolicy const &>(other.BOOST_PP_CAT(the,SomePolicy)()); - BOOST_PP_SEQ_FOR_EACH( SP_CheckPolicy, , SATLIB_SOCKET_POLICIES ) + BOOST_PP_SEQ_FOR_EACH( SP_CheckPolicy, , SENF_SOCKET_POLICIES ) # undef SP_CheckPolicy } diff --git a/Socket/SocketPolicy.dia b/Socket/SocketPolicy.dia new file mode 100644 index 0000000000000000000000000000000000000000..56ff6e8366fa8a4187b1c1e0a41e9b9d66c16816 GIT binary patch literal 2628 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 literal 0 HcmV?d00001 diff --git a/Socket/SocketPolicy.hh b/Socket/SocketPolicy.hh index e821d925e..91ee1bf5c 100644 --- a/Socket/SocketPolicy.hh +++ b/Socket/SocketPolicy.hh @@ -36,7 +36,7 @@ namespace senf { // be adjusted accordingly). However, AddressingPolicy MUST always // be the first Policy member ... -# define SATLIB_SOCKET_POLICIES \ +# define SENF_SOCKET_POLICIES \ (AddressingPolicy) \ (FramingPolicy) \ (CommunicationPolicy) \ diff --git a/Socket/SocketPolicy.ih b/Socket/SocketPolicy.ih index a6d9ebbc0..dabdf26b6 100644 --- a/Socket/SocketPolicy.ih +++ b/Socket/SocketPolicy.ih @@ -53,7 +53,7 @@ namespace senf { -# define SATLIB_SOCKET_POLICIES_N BOOST_PP_SEQ_SIZE( SATLIB_SOCKET_POLICIES ) +# define SENF_SOCKET_POLICIES_N BOOST_PP_SEQ_SIZE( SENF_SOCKET_POLICIES ) // This REALLY is bad ... but we just need an Address member in // AddressingPolicyBase as long as ClientSocketHandle / @@ -72,7 +72,7 @@ namespace senf { { virtual ~ BOOST_PP_CAT(SomePolicy,Base) () {} }; \ typedef BOOST_PP_CAT(SomePolicy,Base) BOOST_PP_CAT(Unspecified,SomePolicy); - BOOST_PP_SEQ_FOR_EACH( SP_DeclareBase, , BOOST_PP_SEQ_POP_FRONT( SATLIB_SOCKET_POLICIES ) ) + BOOST_PP_SEQ_FOR_EACH( SP_DeclareBase, , BOOST_PP_SEQ_POP_FRONT( SENF_SOCKET_POLICIES ) ) # undef SP_DeclareBase @@ -86,7 +86,7 @@ namespace senf { virtual BOOST_PP_CAT(SomePolicy,Base) const & BOOST_PP_CAT(the,SomePolicy) () const \ { return BOOST_PP_CAT(BOOST_PP_CAT(the,SomePolicy),_); } - BOOST_PP_SEQ_FOR_EACH( SP_DeclareTypedef, , SATLIB_SOCKET_POLICIES ) + BOOST_PP_SEQ_FOR_EACH( SP_DeclareTypedef, , SENF_SOCKET_POLICIES ) # undef SP_DeclareTypedef }; @@ -95,7 +95,7 @@ namespace senf { BOOST_PP_COMMA_IF( n ) \ class BOOST_PP_CAT(SomePolicy,_) = BOOST_PP_CAT(SomePolicy,Base) - template < BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateArgs, , SATLIB_SOCKET_POLICIES ) > + template < BOOST_PP_SEQ_FOR_EACH_I( SP_TemplateArgs, , SENF_SOCKET_POLICIES ) > struct SocketPolicy : public SocketPolicyBase { @@ -105,7 +105,7 @@ namespace senf { BOOST_PP_CAT(SomePolicy,Base) const & BOOST_PP_CAT(the,SomePolicy) () const \ { return BOOST_PP_CAT(BOOST_PP_CAT(the,SomePolicy),_); } - BOOST_PP_SEQ_FOR_EACH( SP_DeclarePolicyMember, , SATLIB_SOCKET_POLICIES ) + BOOST_PP_SEQ_FOR_EACH( SP_DeclarePolicyMember, , SENF_SOCKET_POLICIES ) # undef SP_DeclarePolicyMember static void checkBaseOf(SocketPolicyBase const & other); @@ -129,15 +129,15 @@ namespace impl { BOOST_PP_COMMA_IF( m ) \ BOOST_PP_IIF( BOOST_PP_EQUAL(n,m), Policy, typename Base::SomePolicy ) -# define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC( SATLIB_SOCKET_POLICIES_N ) ) +# define BOOST_PP_LOCAL_LIMITS (0, BOOST_PP_DEC( SENF_SOCKET_POLICIES_N ) ) # define BOOST_PP_LOCAL_MACRO(n) \ - SocketPolicy_rv<n> MakeSocketPolicy_merge_(BOOST_PP_CAT( BOOST_PP_SEQ_ELEM( n, SATLIB_SOCKET_POLICIES ),Base)*); \ + SocketPolicy_rv<n> MakeSocketPolicy_merge_(BOOST_PP_CAT( BOOST_PP_SEQ_ELEM( n, SENF_SOCKET_POLICIES ),Base)*); \ \ template <class Base, class Policy> \ struct MakeSocketPolicy_merge<Base,Policy,sizeof(SocketPolicy_rv<n>)> \ { \ typedef SocketPolicy< \ - BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareMakeSocketPolicy_merge_member, n, SATLIB_SOCKET_POLICIES ) \ + BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareMakeSocketPolicy_merge_member, n, SENF_SOCKET_POLICIES ) \ > type; \ }; @@ -173,13 +173,13 @@ namespace impl { template <class Base> SocketPolicy_rv<1> SocketPolicy_checkcompat_( - BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareArguments, , SATLIB_SOCKET_POLICIES ) ); + BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareArguments, , SENF_SOCKET_POLICIES ) ); # undef SP_DeclareArguments template <class Base> SocketPolicy_rv<2> SocketPolicy_checkcompat_( - BOOST_PP_ENUM_PARAMS( SATLIB_SOCKET_POLICIES_N, void * BOOST_PP_INTERCEPT ) ); + BOOST_PP_ENUM_PARAMS( SENF_SOCKET_POLICIES_N, void * BOOST_PP_INTERCEPT ) ); template <int Size> struct SocketPolicy_checkcompat @@ -200,17 +200,17 @@ namespace impl { struct SocketPolicy_compatibility : public SocketPolicy_checkcompat< sizeof( SocketPolicy_checkcompat_<Base>( - BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareArguments, , SATLIB_SOCKET_POLICIES ) )) > + BOOST_PP_SEQ_FOR_EACH_I( SP_DeclareArguments, , SENF_SOCKET_POLICIES ) )) > {}; } // namespace impl - template < BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( SATLIB_SOCKET_POLICIES_N, class T, senf::impl::nil ) > + template < BOOST_PP_ENUM_PARAMS_WITH_A_DEFAULT( SENF_SOCKET_POLICIES_N, class T, senf::impl::nil ) > class MakeSocketPolicy : public boost::mpl::if_< boost::is_convertible< T0*, SocketPolicyBase* >, - impl::MakeSocketPolicy_impl< T0, boost::mpl::vector< BOOST_PP_ENUM_SHIFTED_PARAMS( SATLIB_SOCKET_POLICIES_N, T ) > >, + impl::MakeSocketPolicy_impl< T0, boost::mpl::vector< BOOST_PP_ENUM_SHIFTED_PARAMS( SENF_SOCKET_POLICIES_N, T ) > >, impl::MakeSocketPolicy_impl< SocketPolicy<>, - boost::mpl::vector< BOOST_PP_ENUM_PARAMS( SATLIB_SOCKET_POLICIES_N, T ) > > >::type + boost::mpl::vector< BOOST_PP_ENUM_PARAMS( SENF_SOCKET_POLICIES_N, T ) > > >::type {}; template <class BasePolicy, class DerivedPolicy> @@ -237,7 +237,7 @@ namespace impl { : public boost::enable_if_c< ! BOOST_PP_CAT(SomePolicy,Is)<Policy,Trait>::value > \ {}; - BOOST_PP_SEQ_FOR_EACH( SP_DefineConditions, , SATLIB_SOCKET_POLICIES ) + BOOST_PP_SEQ_FOR_EACH( SP_DefineConditions, , SENF_SOCKET_POLICIES ) # undef SP_DefineConditions diff --git a/doclib/Doxyfile.global b/doclib/Doxyfile.global index 22a55f801..27bccac09 100644 --- a/doclib/Doxyfile.global +++ b/doclib/Doxyfile.global @@ -87,7 +87,7 @@ EXCLUDE_PATTERNS = *.test.cc .* EXAMPLE_PATH = EXAMPLE_PATTERNS = * EXAMPLE_RECURSIVE = NO -IMAGE_PATH = +IMAGE_PATH = . INPUT_FILTER = FILTER_PATTERNS = FILTER_SOURCE_FILES = NO diff --git a/senfscons/SENFSCons.py b/senfscons/SENFSCons.py index bed67e0bf..7308c0e75 100644 --- a/senfscons/SENFSCons.py +++ b/senfscons/SENFSCons.py @@ -113,8 +113,7 @@ def GlobSources(exclude=[]): def StandardTargets(env): all = env.Alias('all') - env.Clean(all, [ '.sconsign', '.sconf_temp', 'config.log', 'ChangeLog.bak', '.clean' - ] + glob.glob("*~")) + env.Clean(all, [ '.sconsign', '.sconf_temp', 'config.log' ]) env.Depends(all, '.') def GlobalTargets(env): @@ -151,14 +150,7 @@ def Objects(env, sources, testSources = None, LIBS = []): return objects -def DoxyGlob(exclude=[]): - sources = [ f - for ext in ("cci", "ct", "cti", "h", "hh", "ih", "mmc", "dox") - for f in glob.glob("*."+ext) - if f not in exclude ] - return sources - -def Doxygen(env, doxyfile="Doxyfile", extra_sources = []): +def Doxygen(env, doxyfile = "Doxyfile", extra_sources = []): docs = env.Doxygen(doxyfile) # The last target is the (optional) tagfile if os.path.basename(str(docs[-1])) != '.stamp': -- GitLab