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 // David Wagner <dw6@berlios.de>
28 \brief ConnectedUNDatagramSocketHandle public header */
30 #ifndef HHE_SENF_Socket_Protocols_UN_ConnectedUNDatagramSocketHandle_
31 #define HHE_SENF_Socket_Protocols_UN_ConnectedUNDatagramSocketHandle_
34 #include "UNAddressing.hh"
35 #include "UNSocketProtocol.hh"
36 #include <senf/Socket/Protocols/BSDSocketProtocol.hh>
37 #include <senf/Socket/FramingPolicy.hh>
38 #include <senf/Socket/CommunicationPolicy.hh>
39 #include <senf/Socket/ReadWritePolicy.hh>
40 #include <senf/Socket/ProtocolClientSocketHandle.hh>
42 //#include "UNDatagramSocketHandle.mpp"
43 //-/////////////////////////////////////////////////////////////////////////////////////////////////
47 typedef MakeSocketPolicy<
49 DatagramFramingPolicy,
50 ConnectedCommunicationPolicy,
53 >::policy ConnectedUNDatagramSocket_Policy; ///< Socket Policy of the Unix Domain Datagram Protocol (connected)
55 /// \ingroup concrete_protocol_group
58 /** \brief Unix Domain Datagram Socket Protocol (connected)
60 \par Socket Handle typedefs:
61 \ref ConnectedUNDatagramClientSocketHandle (ProtocolClientSocketHandle)
63 \par Policy Interface: (to be checked)
64 ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
65 ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local()
70 ConnectedUNDatagramSocketProtocol provides an datagram protocol socket based on the unix domain addressing which operates in a connected mode.
72 This class is utilized as the protocol class of the ProtocolClientSocketHandle
73 via the Socket Handle typedefs above.
76 class ConnectedUNDatagramSocketProtocol
77 : public ConcreteSocketProtocol<ConnectedUNDatagramSocket_Policy,
78 ConnectedUNDatagramSocketProtocol>,
79 public UNSocketProtocol,
80 public BSDSocketProtocol,
81 public AddressableBSDSocketProtocol
84 //-////////////////////////////////////////////////////////////////////////
90 void init_client() const; ///< Create unconnected client socket
91 /**< \note This member is implicitly called from the
92 ProtocolClientSocketHandle::ProtocolClientSocketHandle()
94 void init_client(UNSocketAddress const & address) const;
95 ///< Create client socket and connect
96 /**< Creates a new client socket and connects to the given
98 \param[in] address peer address to connect to */
99 /**< \note This member is implicitly called from the
100 ProtocolClientSocketHandle::ProtocolClientSocketHandle()
106 typedef ProtocolClientSocketHandle<ConnectedUNDatagramSocketProtocol> ConnectedUNDatagramClientSocketHandle;
112 //-/////////////////////////////////////////////////////////////////////////////////////////////////
113 //#include "ConnectedUNDatagramSocketHandle.cci"
114 //#include "ConnectedUNDatagramSocketHandle.ct"
115 //#include "ConnectedUNDatagramSocketHandle.cti"
122 // comment-column: 40
123 // c-file-style: "senf"
124 // indent-tabs-mode: nil
125 // ispell-local-dictionary: "american"
126 // compile-command: "scons -u test"