|
Boost : |
From: Tiago de Paula Peixoto (tiago_at_[hidden])
Date: 2006-08-09 10:04:59
Hello.
I've written a graphml reader/writer for BGL, based on the code Douglas
Gregor posted on the boost users list at
http://article.gmane.org/gmane.comp.lib.boost.user/17877/, and I'm
sending it attached.
It has the following additional features:
* support for attributes of different types (int, float, etc.)
* understand the following parse info attributes: parse.nodeids and
parse.edgeids. If nodeids or edgeids are canonical,
they are automatically converted into indexes, and there's no need to
keep a name map, which saves memory for large graphs.
If there's interest in having this in the library, I would gladly write
documentation for it, and make the necessary modifications/adjustments.
Notes:
* The code uses some exceptions from the graphviz code. It just seemed
unnecessary for both codes to return different exceptions. But this is
is trivially changeable.
* The code depends on expat. And also, when reading some invalid files,
it sometimes just hangs. This is due, probably, with not setting
up expat properly to return errors. I would also look into this.
BTW, this was written for the graph-tool project, if anyone is
interested: http://graph-tool.forked.de
Thanks.
-- Tiago de Paula Peixoto <tiago_at_[hidden]>
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk