PPI: Add missing TargetDgramWriter doku
[senf.git] / Socket / Protocols / Raw / LLAddressing.cci
index 1054845..374840b 100644 (file)
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
 
+prefix_ void senf::LLSocketAddress::address(MACAddress const & addr)
+{
+    std::copy(addr.begin(), addr.end(),&addr_.sll_addr[0]);
+}
+
 prefix_ senf::LLSocketAddress::LLSocketAddress()
+    : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET)
+{}
+
+prefix_ void senf::LLSocketAddress::protocol(unsigned prot)
 {
-    clear();
+    addr_.sll_protocol = htons(prot);
 }
 
 prefix_ senf::LLSocketAddress::LLSocketAddress(unsigned prot, std::string const & iface)
+    : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET)
 {
-    clear();
     protocol(prot);
     interface(iface);
 }
 
 prefix_ senf::LLSocketAddress::LLSocketAddress(std::string const &iface)
+    : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET)
 {
-    clear();
     interface(iface);
 }
 
 prefix_ senf::LLSocketAddress::LLSocketAddress(MACAddress const & addr,
                                                std::string const & iface)
+    : BSDSocketAddress (sizeof(sockaddr_ll), AF_PACKET)
 {
-    clear();
     address(addr);
     interface(iface);
 }
 
-prefix_ void senf::LLSocketAddress::clear()
+prefix_ senf::LLSocketAddress::LLSocketAddress(const LLSocketAddress& other)
+    : BSDSocketAddress (other)
+{}
+
+prefix_ senf::LLSocketAddress& senf::LLSocketAddress::operator=(const LLSocketAddress& other)
 {
-    ::memset(&addr_,0,sizeof(addr_));
-    addr_.sll_family = AF_PACKET;
+    BSDSocketAddress::operator=(other);
+    return *this;
 }
 
 prefix_ unsigned senf::LLSocketAddress::protocol()
@@ -87,40 +100,6 @@ prefix_ senf::MACAddress senf::LLSocketAddress::address()
     return MACAddress::from_data(&addr_.sll_addr[0]);
 }
 
-prefix_ void senf::LLSocketAddress::address(MACAddress const & addr)
-{
-    std::copy(addr.begin(), addr.end(),&addr_.sll_addr[0]);
-}
-
-prefix_ void senf::LLSocketAddress::protocol(unsigned prot)
-{
-    addr_.sll_protocol = htons(prot);
-}
-
-prefix_ struct sockaddr * senf::LLSocketAddress::sockaddr_p()
-{
-    return reinterpret_cast<struct sockaddr *>(&addr_);
-}
-
-prefix_ struct sockaddr const * senf::LLSocketAddress::sockaddr_p()
-    const
-{
-    return reinterpret_cast<struct sockaddr const *>(&addr_);
-}
-
-prefix_ unsigned senf::LLSocketAddress::sockaddr_len()
-    const
-{
-    return sizeof(addr_);
-}
-
-prefix_ std::ostream & senf::operator<<(std::ostream & os, LLSocketAddress const & llAddr)
-{
-    // TODO: expose more bytes from sockaddr_ll addr_
-    os << "[some LLSocketAddress]";
-    return os;
-}
-
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_