You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@subversion.apache.org by st...@apache.org on 2010/08/01 11:35:11 UTC

svn commit: r981189 - in /subversion/branches/performance/subversion: include/private/svn_serializer.h include/private/svn_temp_serializer.h libsvn_subr/svn_serializer.c libsvn_subr/svn_temp_serializer.c

Author: stefan2
Date: Sun Aug  1 09:35:10 2010
New Revision: 981189

URL: http://svn.apache.org/viewvc?rev=981189&view=rev
Log:
In reaction to http://svn.haxx.se/dev/archive-2010-08/0000.shtml and
http://svn.haxx.se/dev/archive-2010-08/0007.shtml , make crystal clear
that this is a serialization utility for temporary data, ONLY.

Basically, rename all svn_serializer_* to svn_temp_serializer_*,
including the file names. Also, put a Doxygen note at the beginning 
of the header file.

* rename subversion/include/private/svn_serializer.h to
  subversion/include/private/svn_temp_serializer.h
* rename subversion/libsvn_subr/svn_serializer.c to
  subversion/libsvn_subr/svn_temp_serializer.c

* subversion/include/private/svn_temp_serializer.h
  enhance Doxygen commentary
  (svn_serializer_*): rename to svn_temp_serializer_*
  (svn_deserializer_*): rename to svn_temp_deserializer_*
* subversion/libsvn_subr/svn_temp_serializer.c
  (svn_serializer_*): rename to svn_temp_serializer_*
  (svn_deserializer_*): rename to svn_temp_deserializer_*

Added:
    subversion/branches/performance/subversion/include/private/svn_temp_serializer.h   (contents, props changed)
      - copied, changed from r981090, subversion/branches/performance/subversion/include/private/svn_serializer.h
    subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c   (contents, props changed)
      - copied, changed from r981090, subversion/branches/performance/subversion/libsvn_subr/svn_serializer.c
Removed:
    subversion/branches/performance/subversion/include/private/svn_serializer.h
    subversion/branches/performance/subversion/libsvn_subr/svn_serializer.c

Copied: subversion/branches/performance/subversion/include/private/svn_temp_serializer.h (from r981090, subversion/branches/performance/subversion/include/private/svn_serializer.h)
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/include/private/svn_temp_serializer.h?p2=subversion/branches/performance/subversion/include/private/svn_temp_serializer.h&p1=subversion/branches/performance/subversion/include/private/svn_serializer.h&r1=981090&r2=981189&rev=981189&view=diff
==============================================================================
--- subversion/branches/performance/subversion/include/private/svn_serializer.h (original)
+++ subversion/branches/performance/subversion/include/private/svn_temp_serializer.h Sun Aug  1 09:35:10 2010
@@ -21,7 +21,11 @@
  * @endcopyright
  *
  * @file svn_serializer.h
- * @brief Structure serialization helper API
+ * @brief Helper API for serializing _temporarily_ data structures.
+ *
+ * @note This API is intended for efficient serialization and duplication
+ *       of temporary, e.g. cached, data structures ONLY. It is not
+ *       suitable for persistent data.
  */
 
 #include <apr.h>
@@ -43,7 +47,7 @@ typedef void * * PPVOID;
  * Opaque structure controlling the serialization process and holding the
  * intermediate as well as final results.
  */
-typedef struct svn_serializer__context_t svn_serializer__context_t;
+typedef struct svn_temp_serializer__context_t svn_temp_serializer__context_t;
 
 /**
  * Begin the serialization process for the @a source_struct and all objects
@@ -62,11 +66,11 @@ typedef struct svn_serializer__context_t
  *
  * @return the serization context.
  */
-svn_serializer__context_t *
-svn_serializer__init(const void *source_struct,
-                     apr_size_t struct_size,
-                     apr_size_t suggested_buffer_size,
-                     apr_pool_t *pool);
+svn_temp_serializer__context_t *
+svn_temp_serializer__init(const void *source_struct,
+                          apr_size_t struct_size,
+                          apr_size_t suggested_buffer_size,
+                          apr_pool_t *pool);
 
 /**
  * Begin serialization of a referenced sub-structure within the
@@ -80,9 +84,9 @@ svn_serializer__init(const void *source_
  * svn_serializer__pop to realign the serialization context.
  */
 void
-svn_serializer__push(svn_serializer__context_t *context,
-                     PCPCVOID source_struct,
-                     apr_size_t struct_size);
+svn_temp_serializer__push(svn_temp_serializer__context_t *context,
+                          PCPCVOID source_struct,
+                          apr_size_t struct_size);
 
 /**
  * End the serialization of the current sub-structure. The serialization
@@ -93,7 +97,7 @@ svn_serializer__push(svn_serializer__con
  * of the serialization process.
  */
 void
-svn_serializer__pop(svn_serializer__context_t *context);
+svn_temp_serializer__pop(svn_temp_serializer__context_t *context);
 
 /**
  * Serialize a string referenced from the current structure within the
@@ -102,14 +106,14 @@ svn_serializer__pop(svn_serializer__cont
  * serialized structure can be established.
  */
 void
-svn_serializer__add_string(svn_serializer__context_t *context, PCPCSTR s);
+svn_temp_serializer__add_string(svn_temp_serializer__context_t *context, PCPCSTR s);
 
 /**
  * @return a reference to the data buffer containing the data serialialized
  * so far in the given serialization @a context.
  */
 struct svn_stringbuf_t *
-svn_serializer__get(svn_serializer__context_t *context);
+svn_temp_serializer__get(svn_temp_serializer__context_t *context);
 
 /**
  * Deserialization is straightforward: just copy the serialized buffer to
@@ -121,4 +125,4 @@ svn_serializer__get(svn_serializer__cont
  * the pointer to resolve in @a ptr.
  */
 void
-svn_deserializer__resolve(void *buffer, PPVOID ptr);
+svn_temp_deserializer__resolve(void *buffer, PPVOID ptr);

Propchange: subversion/branches/performance/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/performance/subversion/include/private/svn_temp_serializer.h
------------------------------------------------------------------------------
    svn:mergeinfo = 

Copied: subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c (from r981090, subversion/branches/performance/subversion/libsvn_subr/svn_serializer.c)
URL: http://svn.apache.org/viewvc/subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c?p2=subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c&p1=subversion/branches/performance/subversion/libsvn_subr/svn_serializer.c&r1=981090&r2=981189&rev=981189&view=diff
==============================================================================
--- subversion/branches/performance/subversion/libsvn_subr/svn_serializer.c (original)
+++ subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c Sun Aug  1 09:35:10 2010
@@ -1,5 +1,5 @@
 /*
- * svn_serializer.c: serialization helper functions
+ * svn_serializer.c: implement the tempoary structure serialization API
  *
  * ====================================================================
  *    Licensed to the Apache Software Foundation (ASF) under one
@@ -22,7 +22,7 @@
  */
 
 #include <assert.h>
-#include "private/svn_serializer.h"
+#include "private/svn_temp_serializer.h"
 #include "svn_string.h"
 
 /* This is a very efficient serialization and especially efficient
@@ -58,7 +58,7 @@ typedef struct source_stack_t
 /* Serialization context info. It basically consists of the buffer holding
  * the serialized result and the stack of source structure information.
  */
-struct svn_serializer__context_t
+struct svn_temp_serializer__context_t
 {
   /* allocations are made from this pool */
   apr_pool_t *pool;
@@ -77,7 +77,7 @@ struct svn_serializer__context_t
  * guarantees.
  */
 static void
-align_buffer_end(svn_serializer__context_t *context)
+align_buffer_end(svn_temp_serializer__context_t *context)
 {
   apr_size_t current_len = context->buffer->len;
   apr_size_t aligned_len = APR_ALIGN_DEFAULT(current_len);
@@ -95,8 +95,8 @@ align_buffer_end(svn_serializer__context
  * re-allocations during the serialization process. All allocations will
  * be made from POOL.
  */
-svn_serializer__context_t *
-svn_serializer__init(const void *source_struct,
+svn_temp_serializer__context_t *
+svn_temp_serializer__init(const void *source_struct,
                      apr_size_t struct_size,
                      apr_size_t suggested_buffer_size,
                      apr_pool_t *pool)
@@ -108,7 +108,7 @@ svn_serializer__init(const void *source_
 
   /* create the serialization context and initialize it, including the
    * structure stack */
-  svn_serializer__context_t *context = apr_palloc(pool, sizeof(*context));
+  svn_temp_serializer__context_t *context = apr_palloc(pool, sizeof(*context));
   context->pool = pool;
   context->buffer = svn_stringbuf_create_ensure(init_size, pool);
   context->source = apr_palloc(pool, sizeof(*context->source));
@@ -128,7 +128,7 @@ svn_serializer__init(const void *source_
  * right after this function call.
  */
 static void
-store_current_end_pointer(svn_serializer__context_t *context,
+store_current_end_pointer(svn_temp_serializer__context_t *context,
                           PCPCVOID source_pointer)
 {
   /* relative position of the serialized pointer to the begin of the buffer */
@@ -155,9 +155,9 @@ store_current_end_pointer(svn_serializer
  * result of sizeof() of the actual structure.
  */
 void
-svn_serializer__push(svn_serializer__context_t *context,
-                     PCPCVOID source_struct,
-                     apr_size_t struct_size)
+svn_temp_serializer__push(svn_temp_serializer__context_t *context,
+                          PCPCVOID source_struct,
+                          apr_size_t struct_size)
 {
   /* create a new entry for the structure stack */
   source_stack_t *new = apr_palloc(context->pool, sizeof(*new));
@@ -187,7 +187,7 @@ svn_serializer__push(svn_serializer__con
 /* Remove the lastest structure from the stack.
  */
 void
-svn_serializer__pop(svn_serializer__context_t *context)
+svn_temp_serializer__pop(svn_temp_serializer__context_t *context)
 {
   /* we may pop the original struct but not further */
   assert(context->source);
@@ -202,7 +202,7 @@ svn_serializer__pop(svn_serializer__cont
  * structure can be established.
  */
 void
-svn_serializer__add_string(svn_serializer__context_t *context, PCPCSTR s)
+svn_temp_serializer__add_string(svn_temp_serializer__context_t *context, PCPCSTR s)
 {
   /* Store the offset at which the string data that will the appended.
    * Write 0 for NULL pointers. Strings don't need special alignment. */
@@ -217,7 +217,7 @@ svn_serializer__add_string(svn_serialize
  * the given serialization CONTEXT.
  */
 svn_stringbuf_t *
-svn_serializer__get(svn_serializer__context_t *context)
+svn_temp_serializer__get(svn_temp_serializer__context_t *context)
 {
   return context->buffer;
 }
@@ -226,7 +226,7 @@ svn_serializer__get(svn_serializer__cont
  * proper pointer value.
  */
 void
-svn_deserializer__resolve(void *buffer, PPVOID ptr)
+svn_temp_deserializer__resolve(void *buffer, PPVOID ptr)
 {
   if ((apr_size_t)*ptr)
     {

Propchange: subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c
------------------------------------------------------------------------------
    svn:eol-style = native

Propchange: subversion/branches/performance/subversion/libsvn_subr/svn_temp_serializer.c
------------------------------------------------------------------------------
    svn:mergeinfo =