moved Sniffer into new Examples directory
[senf.git] / Socket / INetProtocol.hh
index e1116bd..bedf7a8 100644 (file)
@@ -1,6 +1,6 @@
 // $Id$
 //
-// Copyright (C) 2006 
+// Copyright (C) 2006
 // Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS)
 // Kompetenzzentrum fuer Satelitenkommunikation (SatCom)
 //     Stefan Bund <stefan.bund@fokus.fraunhofer.de>
@@ -23,7 +23,7 @@
 /** \file
     \brief IPv[46]Protocol public header
 
-    \todo what about OOB data? 
+    \todo what about OOB data?
 
     \todo Implement IP_RECVERR / MSG_ERRQUEUE. This should be placed
     into an additional protocol facet since IP_RECVERR is only valid
@@ -48,85 +48,34 @@ namespace senf {
     /// @{
 
     /** \brief Protocol facet providing IPv4 Addressing related API
-       
-       This protocol facet introduces all the socket api protocol members which are related to IPv4
-       addressing.
 
-       \todo Is it safe, not to allow setting the interface index on add/drop? what does it do
-       (especially if the local addres is given ?). What have I been thinking here ???
-       
-       \todo move all multicast-methods into an extra IPv4MulticastProtocol class (it's only
-       available on datagram sockets)
+        This protocol facet introduces all the socket api protocol members which are related to IPv4
+        addressing.
 
-       \todo the multicast add/remove/iface semantics are quite unclear ...
+        \todo Is it safe, not to allow setting the interface index on add/drop? what does it do
+        (especially if the local address is given ?). What have I been thinking here ???
 
-       \todo connect() is only available on stream sockets. We want to access bind() and connet()
-       via the ClientSocketHandle -> see SocketProtocol todo point
+        \todo connect() is only available on stream sockets. We want to access bind() and connect()
+        via the ClientSocketHandle -> see SocketProtocol todo point
      */
-    class IPv4Protocol 
+    class IPv4Protocol
         : public virtual SocketProtocol
     {
     public:
         void connect(INet4Address const & address) const; ///< Connect to remote address
                                         /**< \todo make this obsolete by allowing access to the
-                                            ClientSocketHandle from ConcreateSocketProtocol 
-                                            \param[in] address Address to connect to */
+                                             ClientSocketHandle from ConcreateSocketProtocol
+                                             \param[in] address Address to connect to */
         void bind(INet4Address const & address) const; ///< Set local socket address
                                         /**< \todo make this obsolete by allowing access to the
-                                            ClientSocketHandle from ConcreateSocketProtocol 
-                                            \param[in] address Address to set */
-
-        unsigned mcTTL() const;         ///< Return current multicast TTL
-        void mcTTL(unsigned value) const; ///< Set multicast TTL
-
-        bool mcLoop() const;            ///< Return current multicast loopback state
-        void mcLoop(bool value) const;  ///< Set multicast loopback state
-
-        void mcAddMembership(INet4Address const & mcAddr) const;
-                                        ///< Join multicast group
-                                        /**< This member will add \a mcAddr to the list of multicast
-                                            groups received. The group is joined on the default
-                                            interface.
-                                            \param[in] mcAddr address of group to join
-                                            \todo fix this as soon as we have a real address class
-                                                (differend from the sockaddress class */
-        void mcAddMembership(INet4Address const & mcAddr, INet4Address const & localAddr) const;
-                                        ///< join multicast group on a specific address/interface
-                                        /**< This member will add \a mcAddr to the list of multicast
-                                            groups received. The group is joined on the interface
-                                            with the given local address.
-                                            \param[in] mcAddr address of group to join
-                                            \param[in] localAddr address of interface to join on
-                                            \todo fix this as soon as we have a real address class
-                                                (differend from the sockaddress class */
-
-        void mcDropMembership(INet4Address const & mcAddr) const;
-                                        ///< Leave multicast group 
-                                        /**< This member will remove \a mcAddr from the list of
-                                            multicast groups received. The group is left from the
-                                            default interface.
-                                            \param[in] mcAddr address of group to leave
-                                            \todo fix this as soon as we have a real address class
-                                                (differend from the sockaddress class */
-        void mcDropMembership(INet4Address const & mcAddr, INet4Address const & localAddr) const;
-                                        ///< leave multicast group on a specific address/interface
-                                        /**< This member will remove \a mcAddr from the list of
-                                            multicast groups received. The group is left from the
-                                            interface with the given local address.
-                                            \param[in] mcAddr address of group to leave
-                                            \param[in] localAddr address of interface to leave from
-                                            \todo fix this as soon as we have a real address class
-                                                (differend from the sockaddress class */
-
-        void mcIface(std::string iface = std::string()) const;
-                                        ///< set default multicast interface of the socket
-                                        /**< \param[in] iface name of interface */
+                                             ClientSocketHandle from ConcreateSocketProtocol
+                                             \param[in] address Address to set */
     };
-    
+
     /** \brief Protocol facet providing IPv6 Addressing related API
-       
-       This protocol facet introduces all the socket api protocol members which are related to IPv6
-       addressing.
+
+        This protocol facet introduces all the socket api protocol members which are related to IPv6
+        addressing.
      */
     class IPv6Protocol
         : public virtual SocketProtocol
@@ -134,12 +83,12 @@ namespace senf {
     public:
         void connect(INet6SocketAddress const & address) const; ///< Connect to remote address
                                         /**< \todo make this obsolete by allowing access to the
-                                            ClientSocketHandle from ConcreateSocketProtocol 
-                                            \param[in] address Address to connect to */
+                                             ClientSocketHandle from ConcreateSocketProtocol
+                                             \param[in] address Address to connect to */
         void bind(INet6SocketAddress const & address) const; ///< Set local socket address
                                         /**< \todo make this obsolete by allowing access to the
-                                            ClientSocketHandle from ConcreateSocketProtocol 
-                                            \param[in] address Address to set */
+                                             ClientSocketHandle from ConcreateSocketProtocol
+                                             \param[in] address Address to set */
     };
 
     /// @}
@@ -155,6 +104,8 @@ namespace senf {
 \f
 // Local Variables:
 // mode: c++
-// c-file-style: "senf"
 // fill-column: 100
+// c-file-style: "senf"
+// indent-tabs-mode: nil
+// ispell-local-dictionary: "american"
 // End: