Socket/Protocols/Raw: EUI64 documentation
[senf.git] / Packets / PacketData.cci
index 28ae24c..73719c5 100644 (file)
@@ -27,7 +27,7 @@
 #include "../Utils/senfassert.hh"
 #include <iterator>
 #include "PacketImpl.hh"
-#include "PacketParser.hh"
+// #include "PacketParser.hh"
 
 #define prefix_ inline
 ///////////////////////////////cci.p///////////////////////////////////////
 ///////////////////////////////////////////////////////////////////////////
 // senf::PacketData
 
+prefix_ senf::detail::PacketImpl & senf::PacketData::impl()
+    const
+{
+    SENF_ASSERT( impl_ );
+    return *impl_;
+}
+
 prefix_ senf::PacketData::iterator senf::PacketData::begin()
     const
 {
@@ -101,121 +108,27 @@ prefix_ void senf::PacketData::clear()
     impl().clear(this);
 }
 
-prefix_ bool senf::PacketData::valid()
-{
-    return impl_;
-}
-
-// protected members
-
-prefix_ senf::PacketData::PacketData(size_type b, size_type e)
-    : impl_(), begin_(b), end_(e)
-{}
-
-prefix_ senf::detail::PacketImpl & senf::PacketData::impl()
-    const
-{
-    SENF_ASSERT( impl_ );
-    return *impl_;
-}
-
-///////////////////////////////////////////////////////////////////////////
-// senf::safe_data_iterator
-
-prefix_ senf::safe_data_iterator::safe_data_iterator()
-    : data_(0), i_(0)
-{}
-
-prefix_  senf::safe_data_iterator::safe_data_iterator(PacketData & data)
-    : data_(&data), i_(0)
-{}
-
-prefix_ senf::safe_data_iterator::safe_data_iterator(PacketData & data, PacketData::iterator i)
-    : data_(&data), i_(std::distance(data.begin(),i))
-{}
-
-prefix_  senf::safe_data_iterator::safe_data_iterator(PacketParserBase const & parser)
-    : data_(&parser.data()), i_(std::distance(data_->begin(),parser.i()))
-{}
-
-prefix_ senf::safe_data_iterator & senf::safe_data_iterator::operator=(PacketData::iterator i)
-{
-    SENF_ASSERT(data_);
-    i_ = std::distance(data_->begin(),i);
-    return *this;
-}
-
-prefix_ senf::safe_data_iterator &
-senf::safe_data_iterator::operator=(PacketParserBase const & parser)
-{
-    data_ = &parser.data();
-    i_ = std::distance(data_->begin(),parser.i());
-    return *this;
-}
-
-prefix_ senf::safe_data_iterator::operator senf::PacketData::iterator()
-    const
-{
-    return i();
-}
-
-prefix_ bool senf::safe_data_iterator::boolean_test()
-    const
-{
-    return data_;
-}
-
-prefix_ senf::PacketData & senf::safe_data_iterator::data()
-    const
-{
-    SENF_ASSERT(data_);
-    return *data_;
-}
-
-prefix_ senf::safe_data_iterator::value_type & senf::safe_data_iterator::dereference()
-    const
-{
-    return *i();
-}
-
-prefix_ bool senf::safe_data_iterator::equal(safe_data_iterator const & other)
-    const
+prefix_ void senf::PacketData::reserve(size_type n)
 {
-    SENF_ASSERT(data_ == other.data_);
-    return i_ == other.i_;
+    impl().reserve(n + size() - impl().size());
 }
 
-prefix_ senf::safe_data_iterator::difference_type
-senf::safe_data_iterator::distance_to(safe_data_iterator const & other)
+prefix_ senf::PacketData::size_type senf::PacketData::capacity()
     const
 {
-    SENF_ASSERT(data_ == other.data_);
-    return other.i_ - i_;
+    return impl().capacity() - (impl().size() - size());
 }
 
-prefix_ void senf::safe_data_iterator::increment()
-{
-    ++i_;
-}
-
-prefix_ void senf::safe_data_iterator::decrement()
+prefix_ bool senf::PacketData::valid()
 {
-    SENF_ASSERT(i_>0);
-    --i_;
+    return impl_;
 }
 
-prefix_ void senf::safe_data_iterator::advance(difference_type n)
-{
-    SENF_ASSERT( -n < difference_type(i_) );
-    i_ += n;
-}
+// protected members
 
-prefix_ senf::PacketData::iterator senf::safe_data_iterator::i()
-    const
-{
-    SENF_ASSERT(data_);
-    return boost::next(data_->begin(),i_);
-}
+prefix_ senf::PacketData::PacketData(size_type b, size_type e)
+    : impl_(), begin_(b), end_(e)
+{}
 
 ///////////////////////////////cci.e///////////////////////////////////////
 #undef prefix_