//
// Copyright (C) 2008
// Fraunhofer Institute for Open Communication Systems (FOKUS)
-// Competence Center NETwork research (NET), St. Augustin, GERMANY
-// Thorsten Horstmann <tho@berlios.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.
+// The contents of this file are subject to the Fraunhofer FOKUS Public License
+// Version 1.0 (the "License"); you may not use this file except in compliance
+// with the License. You may obtain a copy of the License at
+// http://senf.berlios.de/license.html
//
-// 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.
+// The Fraunhofer FOKUS Public License Version 1.0 is based on,
+// but modifies the Mozilla Public License Version 1.1.
+// See the full license text for the amendments.
//
-// 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.
+// Software distributed under the License is distributed on an "AS IS" basis,
+// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+// for the specific language governing rights and limitations under the License.
+//
+// The Original Code is Fraunhofer FOKUS code.
+//
+// The Initial Developer of the Original Code is Fraunhofer-Gesellschaft e.V.
+// (registered association), Hansastraße 27 c, 80686 Munich, Germany.
+// All Rights Reserved.
+//
+// Contributor(s):
+// Thorsten Horstmann <tho@berlios.de>
/** \file
\brief PacketSocketProtocol and PacketSocketHandle public header
#define HH_SENF_Socket_Protocols_Raw_TunTapSocketHandle_ 1
// Custom includes
-#include "../../../Socket/SocketPolicy.hh"
-#include "../../../Socket/SocketProtocol.hh"
-#include "../../../Socket/ProtocolClientSocketHandle.hh"
-#include "../../../Socket/FramingPolicy.hh"
-#include "../../../Socket/CommunicationPolicy.hh"
-#include "../../../Socket/ReadWritePolicy.hh"
-#include "../../../Socket/Protocols/BSDSocketProtocol.hh"
-#include "LLAddressing.hh"
+#include <senf/Socket/SocketPolicy.hh>
+#include <senf/Socket/SocketProtocol.hh>
+#include <senf/Socket/ProtocolClientSocketHandle.hh>
+#include <senf/Socket/FramingPolicy.hh>
+#include <senf/Socket/CommunicationPolicy.hh>
+#include <senf/Socket/ReadWritePolicy.hh>
+#include <senf/Socket/Protocols/BSDSocketProtocol.hh>
//#include "TunTapSocketHandle.mpp"
//#include "TunTapSocketHandle.ih"
-///////////////////////////////hh.p////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
namespace senf {
/// \addtogroup concrete_protocol_group
- /// @{
+ //\{
typedef MakeSocketPolicy<
NoAddressingPolicy,
{
public:
///\name Constructors
- ///@{
+ //\{
void init_client() const; ///< Open tap socket and create new tap interface
/**< Opens the tun/tap socket and create a new tap interface
Use \ref ifaceName() to get the actual name of the newly
created interface.
-
- The new interface is down and has to be set up separately.
+
+ The new interface is down and has to be set up separately.
After closing the socket, the tap interface and all
corresponding routes will be deleted automatically. */
/**< \note This member is implicitly called from the
with the given name. Note that the created interface can
have a different name as specified. Use \ref ifaceName()
to get the actual name.
-
- The new interface is down and has to be set up separately.
+
+ The new interface is down and has to be set up separately.
After closing the socket, the tap interface and all
- corresponding routes will be deleted automatically.
+ corresponding routes will be deleted automatically.
\param[in] interface_name name of the new tap interface.
- \param[in] NO_PI if set to \c false each packet has a
+ \param[in] NO_PI if set to \c false each packet has a
additional 4 bytes header (flags, proto) */
/**< \note This member is implicitly called from the
ProtocolClientSocketHandle::ProtocolClientSocketHandle()
constructor */
- ///@}
+ //\}
///\name Abstract Interface Implementation
- ///@{
+ //\{
unsigned available() const;
bool eof() const; ///< returns always false.
unsigned int ifaceIndex() const;///< returns the index of the correspondent tap interface
- std::string ifaceName() const; ///< returns the actual name of the correspondent tap interface
+ std::string ifaceName() const; ///< returns the actual name of the correspondent tap interface
private:
mutable unsigned int ifaceIndex_;
- ///@}
+ //\}
};
typedef ProtocolClientSocketHandle<TapSocketProtocol> TapSocketHandle;
///< SocketHandle of TapSocketProtocol
/**< \related TapSocketProtocol */
- /// @}
+ //\}
}
-///////////////////////////////hh.e////////////////////////////////////////
+//-/////////////////////////////////////////////////////////////////////////////////////////////////
//#include "TunTapSocketHandle.cci"
//#include "TunTapSocketHandle.ct"
//#include "TunTapSocketHandle.cti"
//#include "TunTapSocketHandle.mpp"
#endif
-
+\f
// Local Variables:
// mode: c++
// fill-column: 100