Author: stefan2
Date: Sun Apr 17 15:00:27 2011
New Revision: 1094152
URL: http://svn.apache.org/viewvc?rev=1094152&view=rev
Log:
Add a simple API function that allows you to read the current
serialization buffer usage. Since we always append, one can
determine the size of appended data by diff'ing the sizes
before and after the respective sub-structure got serialized.
* subversion/include/private/svn_temp_serializer.h
(svn_temp_serializer__get_length): declare new API function
* subversion/libsvn_subr/svn_temp_serializer.c
(svn_temp_serializer__get_length): implement it
Modified:
subversion/trunk/subversion/include/private/svn_temp_serializer.h
subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c
Modified: subversion/trunk/subversion/include/private/svn_temp_serializer.h
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/include/private/svn_temp_serializer.h?rev=1094152&r1=1094151&r2=1094152&view=diff
==============================================================================
--- subversion/trunk/subversion/include/private/svn_temp_serializer.h (original)
+++ subversion/trunk/subversion/include/private/svn_temp_serializer.h Sun Apr
17 15:00:27 2011
@@ -153,6 +153,13 @@ svn_temp_serializer__set_null(svn_temp_s
const void * const * ptr);
/**
+ * @return the number of bytes currently used in the serialization buffer
+ * of the given serialization @a context.
+ */
+apr_size_t
+svn_temp_serializer__get_length(svn_temp_serializer__context_t *context);
+
+/**
* @return a reference to the data buffer containing the data serialialized
* so far in the given serialization @a context.
*/
Modified: subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c
URL:
http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c?rev=1094152&r1=1094151&r2=1094152&view=diff
==============================================================================
--- subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c (original)
+++ subversion/trunk/subversion/libsvn_subr/svn_temp_serializer.c Sun Apr 17
15:00:27 2011
@@ -303,7 +303,15 @@ svn_temp_serializer__set_null(svn_temp_s
*(apr_size_t*)(context->buffer->data + offset) = 0;
}
-/* Return the the data buffer that receives the serialialized data from
+/* Return the number of bytes currently used in the serialization buffer
+ * of the given serialization CONTEXT.*/
+apr_size_t
+svn_temp_serializer__get_length(svn_temp_serializer__context_t *context)
+{
+ return context->buffer->len;
+}
+
+/* Return the data buffer that receives the serialialized data from
* the given serialization CONTEXT.
*/
svn_stringbuf_t *