git-svn-id: https://svn.berlios.de/svnroot/repos/senf/trunk@129 270642c3-0616-0410...
[senf.git] / Socket / SocketPolicy.hh
1 // $Id$
2 //
3 // Copyright (C) 2006 
4 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
5 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
6 //     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
7 //
8 // This program is free software; you can redistribute it and/or modify
9 // it under the terms of the GNU General Public License as published by
10 // the Free Software Foundation; either version 2 of the License, or
11 // (at your option) any later version.
12 //
13 // This program is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License
19 // along with this program; if not, write to the
20 // Free Software Foundation, Inc.,
21 // 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
22
23 #ifndef HH_SocketPolicy_
24 #define HH_SocketPolicy_ 1
25
26 // Custom includes
27
28 //#include "SocketPolicy.mpp"
29 ///////////////////////////////hh.p////////////////////////////////////////
30
31 namespace satcom {
32 namespace lib {
33
34     // This may be adapted to change the supported policies (however,
35     // ClientSocketHandle and ServerSocketHandle will probably have to
36     // be adjusted accordingly). However, AddressingPolicy MUST always
37     // be the first Policy member ...
38
39 #   define SATLIB_SOCKET_POLICIES               \
40         (AddressingPolicy)                      \
41         (FramingPolicy)                         \
42         (CommunicationPolicy)                   \
43         (ReadPolicy)                            \
44         (WritePolicy)                           \
45         (BufferingPolicy)
46     
47     // The implementation file will for each Policy declared above
48     // define the following (SomePolicy is one of the above):
49     //
50     // struct SomePolicyBase;
51     // typedef UndefinedSomePolicy;
52     // template SomePolicyIs< SocketPolicy, Axis >
53     // template IfSomePolicyIs< SocketPolicy, Axis >
54     // template IfSomePolicyIsNot< SocketPolicy, Axis >
55     //
56     // Additionally the following are defined:
57     //
58     // class SocketPolicyBase
59     // template SocketPolicy< ..policies.. >
60     // template MakeSocketPolicy< ..args.. >
61     // template SocketPolicyIsBaseOf< Base, Derived >
62 }}
63
64 //////////////////////////////hh.e////////////////////////////////////////
65 #include "SocketPolicy.ih"
66 //#include "SocketPolicy.cci"
67 #include "SocketPolicy.ct"
68 //#include "SocketPolicy.cti"
69 #endif
70
71 \f
72 // Local Variables:
73 // mode: c++
74 // c-file-style: "satcom"
75 // End: