On Mon, Feb 11, 2008 at 04:47:05PM -0500, Chase Douglas wrote:
> Hello,
> 
> After a lengthy discussion today on the #irc with DV (thanks again, even
> though it was frustrating at points), I realized that I was
> misunderstanding what the xmlFreeTextWriter function did.
> xmlFreeTextWriter currently flushes out the writer buffer to the
> associated stream and then deallocates resources associated with the
> writer. My assumption was that data was being written directly to the
> associated output stream without any buffering inside the writer.
> 
> I propose that xmlFreeTextWriter be renamed to xmlCloseTextWriter. This

  Yes that would make sense for the reasons exposed, except that one cannot
change published APIs, and merely aliasing xmlFreeTextWriter to
xmlCloseTextWriter just increase the entry point.
  I still think 'Free' in the name makes sense because a lot of data
structures are freed in the operation (one or 2 buffers, the writer structure
and also the data associated to the ongoing character conversion if any,
as well as I/O buffer and potentially FTP/HTTP states).
  Explaining that this function does a Flush might help.

> follows the convention of file I/O through stdio. After fopen(), one
> uses the fclose() function to flush out the buffers and deallocate
> resources. One cannot use free() on the file pointer without potentially
> disasterous results. This is the distinction between a "close" function
> and a "free" function. A "close" function flushes data from buffers
> before freeing resources, whereas a "free" function only frees
> resources.
> 
> Further, I feel that the naming convention is more important for libxml2
> than other libraries as there is currently no documentation outside of
> the writer.c example given on xmlsoft.org (which does not point out the
> buffer flushing aspect of xmlFreeTextWriter), and the xmlwriter API
> (which only notes that xmlFreeTextWriter deallocates resources
> associated with the writer).
> 
> My thoughts are that this name clarification will lead to a better
> understanding of the use of the xmlwriter library, especially given the
> current documentation available to the end user. It may also help to add
> the flushing aspect to the API documentation for the function as well.

  Yes the Flush side-effect could be added. i think you main misunderstanding
came from the fact that all operations are buffered, that was obvious to
me for I/O and charset conversion aspects, and that even if saving to a 
memory buffer. That could be added in the documentation of the creation 
functions.

Daniel

-- 
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard      | virtualization library  http://libvirt.org/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine  http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to