4 // Fraunhofer Institute for Open Communication Systems (FOKUS)
6 // The contents of this file are subject to the Fraunhofer FOKUS Public License
7 // Version 1.0 (the "License"); you may not use this file except in compliance
8 // with the License. You may obtain a copy of the License at
9 // http://senf.berlios.de/license.html
11 // The Fraunhofer FOKUS Public License Version 1.0 is based on,
12 // but modifies the Mozilla Public License Version 1.1.
13 // See the full license text for the amendments.
15 // Software distributed under the License is distributed on an "AS IS" basis,
16 // WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
17 // for the specific language governing rights and limitations under the License.
19 // The Original Code is Fraunhofer FOKUS code.
21 // The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V.
22 // (registered association), Hansastraße 27 c, 80686 Munich, Germany.
23 // All Rights Reserved.
26 // Stefan Bund <g0dil@berlios.de>
29 \brief FramingPolicy public header
32 #ifndef HH_SENF_Socket_FramingPolicy_
33 #define HH_SENF_Socket_FramingPolicy_ 1
36 #include "SocketPolicy.hh"
38 //#include "FramingPolicy.mpp"
39 //-/////////////////////////////////////////////////////////////////////////////////////////////////
43 /// \addtogroup policy_impl_group
46 /** \brief FramingPolicy for stream oriented sockets
48 This policy does not explicitly modify the SocketHAndle
49 API. It however affects the semantics of the read and write
50 operations. On a stream oriented socket, read() and write()
51 operations may be combined, the boundary between separate
52 write() calls will be lost on the receiving side.
54 struct StreamFramingPolicy : public FramingPolicyBase
57 /** \brief FramingPolicy for datagram oriented sockets
59 This policy does not explicitly modify the SocketHAndle
60 API. It however affects the semantics of the read and write
61 operations. On a datagram socket, each read() or write() call
62 we read or write a single datagram. Datagram boundaries are
63 kept intact across the network.
65 struct DatagramFramingPolicy : public FramingPolicyBase
72 //-/////////////////////////////////////////////////////////////////////////////////////////////////
73 //#include "FramingPolicy.cci"
74 //#include "FramingPolicy.ct"
75 //#include "FramingPolicy.cti"
82 // c-file-style: "senf"
83 // indent-tabs-mode: nil
84 // ispell-local-dictionary: "american"
85 // compile-command: "scons -u test"