From 50f2d62ffada50da65939befae0d1577e006ecf9 Mon Sep 17 00:00:00 2001 From: g0dil <g0dil@wiback.org> Date: Thu, 31 Jan 2008 16:22:35 +0000 Subject: [PATCH] Remove obsolete fixme, todo and idea items Socket: Removed (now) empty IPv4Protocol/IPv6Protocol facets --- Packets/DefaultBundle/UDPPacket.cc | 4 +-- Packets/DefaultBundle/UDPPacket.hh | 2 +- Scheduler/Scheduler.cc | 3 -- Socket/NetdeviceController.hh | 1 + Socket/Protocols/DatagramSocketProtocol.hh | 3 +- .../INet/ConnectedRawINetSocketHandle.hh | 2 -- .../INet/ConnectedUDPSocketHandle.hh | 2 -- Socket/Protocols/INet/INetProtocol.hh | 28 ------------------- Socket/Protocols/INet/RawINetSocketHandle.hh | 2 -- Socket/Protocols/INet/TCPSocketHandle.hh | 2 -- Socket/Protocols/INet/UDPProtocol.hh | 2 -- Socket/Protocols/INet/UDPSocketHandle.hh | 2 -- Socket/Protocols/Raw/PacketSocketHandle.hh | 2 -- Socket/Protocols/Raw/TunTapSocketHandle.hh | 2 -- Socket/SocketPolicy.hh | 13 ++++----- Socket/SocketProtocol.hh | 8 ------ admin/build.sh | 2 ++ 17 files changed, 12 insertions(+), 68 deletions(-) diff --git a/Packets/DefaultBundle/UDPPacket.cc b/Packets/DefaultBundle/UDPPacket.cc index bc204b39b..ee0651f9c 100644 --- a/Packets/DefaultBundle/UDPPacket.cc +++ b/Packets/DefaultBundle/UDPPacket.cc @@ -78,8 +78,8 @@ prefix_ boost::uint16_t senf::UDPPacketParser::calcChecksum() // The destination used here must be the *final* destination ... summer.feed( ipv6->destination().i(), ipv6->destination().i() + IPv6PacketParser::destination_t::fixed_bytes ); - /// This is a simplification. The value is really 32bit to support UDP Jumbograms - /// (RFC2147). However, skipping an even number of 0 bytes does not change the checksum + // This is a simplification. The value is really 32bit to support UDP Jumbograms + // (RFC2147). However, skipping an even number of 0 bytes does not change the checksum summer.feed( i() + length_offset, i() + length_offset + 2 ); // RFC2460 specifies, that this must always be 17, not the value used in the ipv6 // header diff --git a/Packets/DefaultBundle/UDPPacket.hh b/Packets/DefaultBundle/UDPPacket.hh index 9799cfe3f..8f747a79b 100644 --- a/Packets/DefaultBundle/UDPPacket.hh +++ b/Packets/DefaultBundle/UDPPacket.hh @@ -38,7 +38,7 @@ namespace senf { Parser implementing the UDP header. The fields implemented are: - \see UDPPacketType + \see UDPPacketType \n <a href="http://tools.ietf.org/html/rfc768">RFC 768</a> */ struct UDPPacketParser : public PacketParserBase diff --git a/Scheduler/Scheduler.cc b/Scheduler/Scheduler.cc index 9ed26e2ea..cb54a2bff 100644 --- a/Scheduler/Scheduler.cc +++ b/Scheduler/Scheduler.cc @@ -23,9 +23,6 @@ /** \file \brief Scheduler non-inline non-template implementation - \idea Implement signal handling (See source for more discussion - about this) - \idea Multithreading support: To support multithreading, the static member Scheduler::instance() must return a thread-local value (that is Scheduler::instance() must allocate one Scheduler diff --git a/Socket/NetdeviceController.hh b/Socket/NetdeviceController.hh index 4f2ced06a..291fb1eab 100644 --- a/Socket/NetdeviceController.hh +++ b/Socket/NetdeviceController.hh @@ -41,6 +41,7 @@ namespace senf { /** \brief NetdeviceController \todo document me + \todo Add 'promisc' member to enable/disable promiscuous mode */ class NetdeviceController { diff --git a/Socket/Protocols/DatagramSocketProtocol.hh b/Socket/Protocols/DatagramSocketProtocol.hh index 98929fcc5..a1c014b89 100644 --- a/Socket/Protocols/DatagramSocketProtocol.hh +++ b/Socket/Protocols/DatagramSocketProtocol.hh @@ -51,8 +51,7 @@ namespace senf { timing. \pre The \c SO_TIMESTAMP socket option must not be set on the socket. - \returns timestamp when last packet was received - \todo Move this to DatagramSocketProtocol class */ + \returns timestamp when last packet was received */ }; diff --git a/Socket/Protocols/INet/ConnectedRawINetSocketHandle.hh b/Socket/Protocols/INet/ConnectedRawINetSocketHandle.hh index e1795d343..83672c389 100644 --- a/Socket/Protocols/INet/ConnectedRawINetSocketHandle.hh +++ b/Socket/Protocols/INet/ConnectedRawINetSocketHandle.hh @@ -75,7 +75,6 @@ namespace senf { */ class ConnectedRawV4SocketProtocol : public ConcreteSocketProtocol<ConnectedRawV4Socket_Policy, ConnectedRawV4SocketProtocol>, - public IPv4Protocol, public RawINetProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol @@ -144,7 +143,6 @@ namespace senf { */ class ConnectedRawV6SocketProtocol : public ConcreteSocketProtocol<ConnectedRawV6Socket_Policy, ConnectedRawV6SocketProtocol>, - public IPv6Protocol, public RawINetProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol diff --git a/Socket/Protocols/INet/ConnectedUDPSocketHandle.hh b/Socket/Protocols/INet/ConnectedUDPSocketHandle.hh index 5e09364b4..85bad71a2 100644 --- a/Socket/Protocols/INet/ConnectedUDPSocketHandle.hh +++ b/Socket/Protocols/INet/ConnectedUDPSocketHandle.hh @@ -78,7 +78,6 @@ namespace senf { */ class ConnectedUDPv4SocketProtocol : public ConcreteSocketProtocol<ConnectedUDPv4Socket_Policy, ConnectedUDPv4SocketProtocol>, - public IPv4Protocol, public UDPProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol @@ -138,7 +137,6 @@ namespace senf { */ class ConnectedUDPv6SocketProtocol : public ConcreteSocketProtocol<ConnectedUDPv6Socket_Policy, ConnectedUDPv6SocketProtocol>, - public IPv6Protocol, public UDPProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol diff --git a/Socket/Protocols/INet/INetProtocol.hh b/Socket/Protocols/INet/INetProtocol.hh index 89daa5730..277822e30 100644 --- a/Socket/Protocols/INet/INetProtocol.hh +++ b/Socket/Protocols/INet/INetProtocol.hh @@ -69,34 +69,6 @@ namespace senf { \returns Bound interface name */ }; - /** \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 address is given ?). What have I been thinking here ??? - - \todo connect() is only available on stream sockets. We want to access bind() and connect() - via the ClientSocketHandle -> see SocketProtocol todo point - */ - class IPv4Protocol - : public virtual SocketProtocol - { - public: - }; - - /** \brief Protocol facet providing IPv6 Addressing related API - - This protocol facet introduces all the socket api protocol members which are related to IPv6 - addressing. - */ - class IPv6Protocol - : public virtual SocketProtocol - { - public: - }; - /// @} } diff --git a/Socket/Protocols/INet/RawINetSocketHandle.hh b/Socket/Protocols/INet/RawINetSocketHandle.hh index 3853c460f..65c523168 100644 --- a/Socket/Protocols/INet/RawINetSocketHandle.hh +++ b/Socket/Protocols/INet/RawINetSocketHandle.hh @@ -75,7 +75,6 @@ namespace senf { */ class RawV4SocketProtocol : public ConcreteSocketProtocol<RawV4Socket_Policy, RawV4SocketProtocol>, - public IPv4Protocol, public RawINetProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol, @@ -144,7 +143,6 @@ namespace senf { */ class RawV6SocketProtocol : public ConcreteSocketProtocol<RawV6Socket_Policy,RawV6SocketProtocol>, - public IPv6Protocol, public RawINetProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol, diff --git a/Socket/Protocols/INet/TCPSocketHandle.hh b/Socket/Protocols/INet/TCPSocketHandle.hh index dffd6686e..352e7cf38 100644 --- a/Socket/Protocols/INet/TCPSocketHandle.hh +++ b/Socket/Protocols/INet/TCPSocketHandle.hh @@ -80,7 +80,6 @@ namespace senf { */ class TCPv4SocketProtocol : public ConcreteSocketProtocol<TCPv4Socket_Policy,TCPv4SocketProtocol>, - public IPv4Protocol, public TCPProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol @@ -156,7 +155,6 @@ namespace senf { */ class TCPv6SocketProtocol : public ConcreteSocketProtocol<TCPv6Socket_Policy,TCPv6SocketProtocol>, - public IPv6Protocol, public TCPProtocol, public BSDSocketProtocol, public AddressableBSDSocketProtocol diff --git a/Socket/Protocols/INet/UDPProtocol.hh b/Socket/Protocols/INet/UDPProtocol.hh index 5bb7293e4..5a1a3a0cb 100644 --- a/Socket/Protocols/INet/UDPProtocol.hh +++ b/Socket/Protocols/INet/UDPProtocol.hh @@ -43,8 +43,6 @@ namespace senf { This protocol facet provides all those protocol functions, which are available on any UDP socket. - - \todo the multicast add/remove/iface semantics are quite unclear ... */ class UDPProtocol : public virtual SocketProtocol diff --git a/Socket/Protocols/INet/UDPSocketHandle.hh b/Socket/Protocols/INet/UDPSocketHandle.hh index 6ed334c62..9ada42b7a 100644 --- a/Socket/Protocols/INet/UDPSocketHandle.hh +++ b/Socket/Protocols/INet/UDPSocketHandle.hh @@ -80,7 +80,6 @@ namespace senf { */ class UDPv4SocketProtocol : public ConcreteSocketProtocol<UDPv4Socket_Policy, UDPv4SocketProtocol>, - public IPv4Protocol, public UDPProtocol, public MulticastProtocol, public INet4MulticastProtocol, @@ -142,7 +141,6 @@ namespace senf { */ class UDPv6SocketProtocol : public ConcreteSocketProtocol<UDPv6Socket_Policy, UDPv6SocketProtocol>, - public IPv6Protocol, public UDPProtocol, public MulticastProtocol, public INet6MulticastProtocol, diff --git a/Socket/Protocols/Raw/PacketSocketHandle.hh b/Socket/Protocols/Raw/PacketSocketHandle.hh index 0ee1f8d7f..9410ab6de 100644 --- a/Socket/Protocols/Raw/PacketSocketHandle.hh +++ b/Socket/Protocols/Raw/PacketSocketHandle.hh @@ -22,8 +22,6 @@ /** \file \brief PacketProtocol and PacketSocketHandle public header - - \todo Implement global promisc() helper based on ioctl() interface. */ #ifndef HH_PacketSocketHandle_ diff --git a/Socket/Protocols/Raw/TunTapSocketHandle.hh b/Socket/Protocols/Raw/TunTapSocketHandle.hh index 844ab34d3..340d2c738 100644 --- a/Socket/Protocols/Raw/TunTapSocketHandle.hh +++ b/Socket/Protocols/Raw/TunTapSocketHandle.hh @@ -22,8 +22,6 @@ /** \file \brief PacketProtocol and PacketSocketHandle public header - - \todo Implement global promisc() helper based on ioctl() interface. */ #ifndef HH_TunTapSocketHandle_ diff --git a/Socket/SocketPolicy.hh b/Socket/SocketPolicy.hh index bc7ffc740..b9070f2e9 100644 --- a/Socket/SocketPolicy.hh +++ b/Socket/SocketPolicy.hh @@ -23,14 +23,11 @@ /** \file \brief Policy Framework public header - \todo Do we want to support separate read and write policies. This allows to treat pipes within - this framework however, is this worth the effort? - - \idea Creating a new Socket will create 4 (!) new instances (The handle, the body, the policy - and the protocol) of which 3 (argh) (body, policy and protocol) live on the heap. This is - expensive. We should convert all the policy classes to singletons and assign the same - instance to all socket bodies with the same policy. This would reduce the number of heap - allocations per socket handle to two. + \idea Creating a new Socket will create 3 new instances (The handle, the body, the policy) of + which 2 (argh) (body, policy) live on the heap. This is expensive. We should convert all the + policy classes to singletons and assign the same instance to all socket bodies with the same + policy. This would reduce the number of heap allocations per socket handle to one (which is + already optimized using the pool_alloc_mixin) */ /** \defgroup policy_group The Policy Framework diff --git a/Socket/SocketProtocol.hh b/Socket/SocketProtocol.hh index dc9da5135..5a25dd708 100644 --- a/Socket/SocketProtocol.hh +++ b/Socket/SocketProtocol.hh @@ -22,11 +22,6 @@ /** \file \brief SocketProtocol and ConcreteSocketProtocol public header - - \idea We should optimize the protocol handling. Allocating a protocol instance for every socket - body seems quite wasteful. We could derive SocketPolicy from SocketBody (probably privately, - since private inheritance models more of 'has a' than 'is a'). This would allow to reduce - the number of heap-allocations per socket to one which is good. */ // The private inheritance idea should indeed work very well: We just need to change the @@ -72,9 +67,6 @@ \see \ref handle_group \n \ref policy_group - - \todo Complete the protocol interface implementations. Better distribution of members to - protocol facets and more precise distribution of functionality among the facets. */ /** \defgroup concrete_protocol_group Protocol Implementations (Concrete Protocol Classes) diff --git a/admin/build.sh b/admin/build.sh index 2a8448707..c9a758b5a 100755 --- a/admin/build.sh +++ b/admin/build.sh @@ -26,6 +26,8 @@ rm -f ../svn-update.log echo "\$ nice ${SCONS:-scons} -kj2 all ${DOXYGEN:+DOXYGEN="$DOXYGEN"}" nice ${SCONS:-scons} -kj2 all ${DOXYGEN:+DOXYGEN="$DOXYGEN"} +echo "\$ nice ${SCONS:-scons} all ${DOXYGEN:+DOXYGEN="$DOXYGEN"}" +nice ${SCONS:-scons} all ${DOXYGEN:+DOXYGEN="$DOXYGEN"} echo "\$ nice ${SCONS:-scons} linklint ${DOXYGEN:+DOXYGEN="$DOXYGEN"}" nice ${SCONS:-scons} linklint ${DOXYGEN:+DOXYGEN="$DOXYGEN"} echo "\$ nice ${SCONS:-scons} fixlinks ${DOXYGEN:+DOXYGEN="$DOXYGEN"}" -- GitLab