const int PACKED_SIZE_BYTE = 1;
const int PACKED_SIZE_INT16 = 2;
const int PACKED_SIZE_INT32 = 4;
+const int PACKED_SIZE_INT64 = 8;
// these functions pack and unpack popular data types.
bool detach(basis::byte_array &packed_form, int &to_detach);
//!< Unpacks an integer "to_attach" from "packed_form".
+void attach(basis::byte_array &packed_form, long int to_attach);
+ //!< Packs an integer "to_attach" into "packed_form".
+ /*!< This method and the other simple numerical storage methods use a little
+ endian ordering of the bytes. They are platform independent with respect to
+ endianness and will reassemble the number properly on any platform. */
+bool detach(basis::byte_array &packed_form, long int &to_detach);
+ //!< Unpacks an integer "to_attach" from "packed_form".
+
void obscure_attach(basis::byte_array &packed_form, basis::un_int to_attach);
//!< like the normal attach but shifts in some recognizable sentinel data.
/*!< this is slightly more sure than a simple integer attachment. it can
to_unpack.reset();
basis::un_int len;
if (!obscure_detach(packed_form, len)) return false;
- basis::array<contents> swappy_array(len, NIL, to_unpack.flags());
+ basis::array<contents> swappy_array(len, NULL_POINTER, to_unpack.flags());
// we create an array of the specified length to see if it's tenable.
if (!swappy_array.observe()) return false; // failed to allocate.
for (int i = 0; i < (int)len; i++) {
to_unpack.reset();
basis::un_int len;
if (!obscure_detach(packed_form, len)) return false;
- basis::array<contents> swappy_array(len, NIL, to_unpack.flags());
+ basis::array<contents> swappy_array(len, NULL_POINTER, to_unpack.flags());
if (!swappy_array.observe()) return false; // failed to allocate.
for (int i = 0; i < len; i++) {
if (!detach(packed_form, swappy_array[i]))