Debugging and resolving problems with interest serialization/deserialization
diff --git a/helper/ccnx-encoding-helper.h b/helper/ccnx-encoding-helper.h
index 6e3c1c4..bea5087 100644
--- a/helper/ccnx-encoding-helper.h
+++ b/helper/ccnx-encoding-helper.h
@@ -46,20 +46,35 @@
Serialize (Buffer::Iterator start, const CcnxInterestHeader &interest);
static size_t
+ GetSerializedSize (const CcnxInterestHeader &interest);
+
+ static size_t
Serialize (Buffer::Iterator start, const CcnxContentObjectHeader &contentObject);
+ static size_t
+ GetSerializedSize (const CcnxContentObjectHeader &contentObject);
+
private:
static size_t
- AppendBlockHeader (Buffer::Iterator start, size_t value, CcnbParser::ccn_tt block_type);
+ AppendBlockHeader (Buffer::Iterator &start, size_t value, CcnbParser::ccn_tt block_type);
static size_t
- AppendNumber (Buffer::Iterator start, uint32_t number);
+ EstimateBlockHeader (size_t value);
static size_t
- AppendCloser (Buffer::Iterator start);
+ AppendNumber (Buffer::Iterator &start, uint32_t number);
static size_t
- AppendNameComponents (Buffer::Iterator start, const CcnxNameComponents &name);
+ EstimateNumber (uint32_t number);
+
+ static size_t
+ AppendCloser (Buffer::Iterator &start);
+
+ static size_t
+ AppendNameComponents (Buffer::Iterator &start, const CcnxNameComponents &name);
+
+ static size_t
+ EstimateNameComponents (const CcnxNameComponents &name);
/**
* Append a binary timestamp as a BLOB using the ccn binary
@@ -71,7 +86,10 @@
* @returns written length
*/
static size_t
- AppendTimestampBlob (Buffer::Iterator start, Time time);
+ AppendTimestampBlob (Buffer::Iterator &start, const Time &time);
+
+ static size_t
+ EstimateTimestampBlob (const Time &time);
/**
* Append a tagged BLOB
@@ -86,9 +104,11 @@
* @returns written length
*/
static size_t
- AppendTaggedBlob (Buffer::Iterator start, CcnbParser::ccn_dtag dtag,
+ AppendTaggedBlob (Buffer::Iterator &start, CcnbParser::ccn_dtag dtag,
const uint8_t *data, size_t size);
+ static size_t
+ EstimateTaggedBlob (CcnbParser::ccn_dtag dtag, size_t size);
};
} // namespace ns3