Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r64099 - in sandbox/SOC/2010/bit_masks: boost/integer/detail/bft lib/integer/test lib/integer/test/bft_testing
From: bbartmanboost_at_[hidden]
Date: 2010-07-17 10:37:06


Author: bbartman
Date: 2010-07-17 10:37:05 EDT (Sat, 17 Jul 2010)
New Revision: 64099
URL: http://svn.boost.org/trac/boost/changeset/64099

Log:
adding test files and headers for calculating the necessary information about the pointer which is to be stuffed into a bitfield.
Added:
   sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/pointer_parsing_meta_functions.hpp (contents, props changed)
   sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/pointer_parsing_meta_function_test.cpp (contents, props changed)
Text files modified:
   sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/arg_parse_impl.hpp | 31 +++++++++++++++++++++++++++++++
   sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 | 1 +
   2 files changed, 32 insertions(+), 0 deletions(-)

Modified: sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/arg_parse_impl.hpp
==============================================================================
--- sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/arg_parse_impl.hpp (original)
+++ sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/arg_parse_impl.hpp 2010-07-17 10:37:05 EDT (Sat, 17 Jul 2010)
@@ -25,6 +25,7 @@
 #include <boost/integer/bitfield_tuple/pointer.hpp>
 
 #include <boost/integer/detail/bft/name_lookup.hpp>
+#include <boost/integer/detail/bft/pointer_parsing_meta_functions.hpp>
 
 namespace boost { namespace detail {
 
@@ -359,6 +360,36 @@
     FieldVector,
     Offset >
 {
+ /** What must be calculated writen out so I can see it better.
+ *
+ * 1.) Make sure that the mask for the pointer isn't 0.
+ * A.) if it is that means that NOTHING is being stored in the pointer
+ * and everything else can be ignroed (Not sure if this should be a
+ * PRECONDITION that causes a static_assertion or not).
+ * B.) Make sure the mask is the same size as a pointer.
+ * If it is NOT the same size as a pointer, then cause a static
+ * assertion.
+ *
+ * 2.) Determin the offset into the mask.
+ * A.) What is mean by this is that I need know which bits wihtin the
+ * mask that have value are respected as such and the ones which don't
+ * are able to be used for extra storage.
+ * B.) Summary: Look for leading zeros and look for trailing zeros.
+ * Those are the places which values can be stored within.
+ * C.) PRECONDITION: The offset must be less then or equal to the number
+ * of leading 0's within the value of the pointer.
+ * D.) Behavior in the case that there are leading zeros wihtin the
+ * mask and the offset is not the same as the amound of leading zeros
+ * within the mask. The zeros are treated as filler and the pointer is
+ * always stored relative to the mask provided.
+ *
+ *
+ * 3.) The offset of the storage location of the pointer shall be relative
+ * to the first 1 within the mask provided.
+ */
+
+
+
     /*
     typedef bitfields::bit_align<AlignTo> param;
     typedef FieldVector field_vector;

Added: sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/pointer_parsing_meta_functions.hpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/boost/integer/detail/bft/pointer_parsing_meta_functions.hpp 2010-07-17 10:37:05 EDT (Sat, 17 Jul 2010)
@@ -0,0 +1,18 @@
+// Copyright 2010 Brian Bartman.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+
+#ifndef BOOST_BITFIELD_TUPLE_POINTER_PARSING_HELPERS_HPP
+#define BOOST_BITFIELD_TUPLE_POINTER_PARSING_HELPERS_HPP
+
+/** This file contains metafunctions which are used to do complex operations
+ * on the Mask provided by the user.
+ */
+namespace boost { namespace detail { namespace pointer_member {
+
+
+}}} // end boost::detail::pointer_member
+
+#endif

Modified: sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2
==============================================================================
--- sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 (original)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/Jamfile.v2 2010-07-17 10:37:05 EDT (Sat, 17 Jul 2010)
@@ -53,6 +53,7 @@
         [ run bft_testing/boost_endian_integration_test.cpp ]
         [ run bft_testing/custom_member_test.cpp ]
         [ run bft_testing/pointer_member_test.cpp ]
+ [ run bft_testing/pointer_parsing_meta_function_test.cpp ]
         [ run ppb_testing/pointer_plus_bits_test.cpp ]
 
 

Added: sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/pointer_parsing_meta_function_test.cpp
==============================================================================
--- (empty file)
+++ sandbox/SOC/2010/bit_masks/lib/integer/test/bft_testing/pointer_parsing_meta_function_test.cpp 2010-07-17 10:37:05 EDT (Sat, 17 Jul 2010)
@@ -0,0 +1,12 @@
+// Copyright 2010 Brian Bartman.
+// Distributed under the Boost Software License, Version 1.0.
+// (See accompanying file LICENSE_1_0.txt or copy at
+// http://www.boost.org/LICENSE_1_0.txt)
+
+#include <boost/integer/bitfield_tuple.hpp>
+#include <boost/detail/lightweight_test.hpp>
+#include <boost/type_traits/is_same.hpp>
+
+int main() {
+ return 0;
+}


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk