Skip to content
Snippets Groups Projects
Commit 60f3c94f authored by dw6's avatar dw6
Browse files

connectedUnixDgramSocket (based on "old" socketlib)

parent 8ee8c61c
No related branches found
No related tags found
No related merge requests found
// Copyright (C) 2007
// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
// Kompetenzzentrum NETwork research (NET)
// David Wagner <david.wagner@fokus.fraunhofer.de>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the
// Free Software Foundation, Inc.,
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
/** \file
\brief ConnectedUNDatagramSocketHandle public header */
#ifndef CONNECTEDUNDATAGRAMSOCKETHANDLE_HH_
#define CONNECTEDUNDATAGRAMSOCKETHANDLE_HH_
// Custom includes
#include "UNAddressing.hh"
#include "UNProtocol.hh"
#include "../../../Socket/Protocols/BSDSocketProtocol.hh"
#include "../../../Socket/FramingPolicy.hh"
#include "../../../Socket/CommunicationPolicy.hh"
#include "../../../Socket/ReadWritePolicy.hh"
#include "../../../Socket/BufferingPolicy.hh"
#include "../../../Socket/ProtocolClientSocketHandle.hh"
//#include "UNDatagramSocketHandle.mpp"
///////////////////////////////hh.p////////////////////////////////////////
namespace senf {
/// \addtogroup concrete_protocol_group
/// @{
typedef MakeSocketPolicy<
UNAddressingPolicy,
DatagramFramingPolicy,
ConnectedCommunicationPolicy,
ReadablePolicy,
WriteablePolicy,
SocketBufferingPolicy
>::policy ConnectedUNDatagramSocket_Policy; ///< Socket Policy of the Unix Domain Datagram Protocol (connected)
/** \brief Unix Domain Datagram Socket Protocol (connected)
\par Socket Handle typedefs:
\ref ConnectedUNDatagramClientSocketHandle (ProtocolClientSocketHandle)
\par Policy Interface: (to be checked)
ClientSocketHandle::read(), ClientSocketHandle::readfrom(),
ClientSocketHandle::writeto(), ClientSocketHandle::bind(), ClientSocketHandle::local(),
ClientSocketHandle::rcvbuf(), ClientSocketHandle::sndbuf()
\par Address Type:
UNAddress
ConnectedUNDatagramSocketProtocol provides an datagram protocol socket based on the unix domain addressing which operates in a connected mode.
This class is utilized as the protocol class of the ProtocolClientSocketHandle
via the Socket Handle typedefs above.
*/
class ConnectedUNDatagramSocketProtocol
: public ConcreteSocketProtocol<ConnectedUNDatagramSocket_Policy>,
public UNProtocol,
public BSDSocketProtocol,
public AddressableBSDSocketProtocol
{
public:
///////////////////////////////////////////////////////////////////////////
// internal interface
///\name Constructors
///@{
void init_client() const; ///< Create unconnected client socket
/**< \note This member is implicitly called from the
ProtocolClientSocketHandle::ProtocolClientSocketHandle()
constructor */
void init_client(UNSocketAddress const & address) const;
///< Create client socket and connect
/**< Creates a new client socket and connects to the given
address.
\param[in] address peer address to connect to */
/**< \note This member is implicitly called from the
ProtocolClientSocketHandle::ProtocolClientSocketHandle()
constructor */
///@}
///\name Abstract Interface Implementation
std::auto_ptr<SocketProtocol> clone() const;
///@}
};
typedef ProtocolClientSocketHandle<ConnectedUNDatagramSocketProtocol> ConnectedUNDatagramClientSocketHandle;
}
#endif /*CONNECTEDUNDATAGRAMSOCKETHANDLE_HH_*/
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment