Leonard Rosenthol wrote:

> You can either do your DL as a tree (as Craig suggested) or a simple  
> list/vector - I've done it both ways and each (surprise) have pros  
> and cons.  list/vector is easier to traverse and can use "out of the  
> box" STL data types + iterators, while a tree means either building a  
> new one (hopefully with iterator support!) or using something like  
> boost's graph library or the ASL's tree classes which do this  
> already.

Since the boost graph library is header only, so there isn't even 
anything for users to have to compile, that strikes me as the way to go. 
Its use can be isolated so that PoDoFo need not require it unless the 
user wants to build content stream graph support. Perhaps more 
importantly, it's easy to write things so that if PoDoFo was built with 
such support the client program need not have access to those headers 
unless it tries to use the graph support. Just like we do with Freetype 
these days.

Speaking of Boost, though, I've found myself wondering about using 
Boost::Iostreams lately. Currently we have our own custom stream 
classses that aren't interface compatible with anything. This, in my 
view, is quite a pity. The STL iostreams library, though, isn't exactly 
fun to work with when it comes to writing new sources etc. Maybe the 
boost streams library might provide a nicer way to do this. I'd like to 
be able to use conventional stream operations on PDF streams, etc, 
whereas at present we have to work with them using a rolling buffer or 
just read the whole lot into memory.

The downside of using Boost::Iostreams is of course that it'd hardly be 
optional, and it does require building. I'm pretty sure it'd be possible 
to isolate its visibility from the PoDoFo headers though, so users 
wouldn't have to use them if they didn't need to. Even so, that's a 
whole separate issue to adding an optional dependency on a header-only 
boost library.

--
Craig Ringer

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Podofo-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/podofo-users

Reply via email to