C++ XML Objects - Changes |
1.0.0.6 to 1.0.0.7
Added in delayed loading. This allows a system to only load in an object
in an XML file when the object is actually referenced.
Detailed list:
- Added "object_name_visitor" and accept(object_name_visitor) into
visitable_object.
- Added "pretendable_object_base" interface for generics and delayed loading.
- Added "importable_object_base" interface for delayed loading.
- Added "nameable_object_base" interface for querying an object's name,
so a visitor does not need to be used for this fundamental operation.
- Virtual destructors on all abstract interfaces (for warnings).
- Rework the tests. All common code in one class and general cleanup.
- In jscript_object_navigator, use the new nameable() interface.
- Document delayed loading.
- Change object_visitor's to use the nameable interface.
- XML parser can create objects that contain import information
rather than importing the objects directly.
- XML parser debug options are now bit flags, and there are new ones
to list out the delayed loading info.
- Persistable object contexts now need to say that they support
delayed loading (or not), and then if they do they will be asked
to create an object to hold the delayed load info.
- New "ref_object" helper for accepting object_name_visitor"s.
- New "vector_object" helper for accepting object_name_visitor"s.
- Fixed bug in xmlobj::root() where it does not work from the
actual root object.
- xmlobj::_name and xmlobj::_type are now private. Use type() and name().
- Change visitors that only access the name or type of an object into
object_name_visitors. This allows underlying objects to discern accesses
by a visitor to the name of the object rather than the entire object. This allows
the delayed_loading object to know not to load it's underlying object.
1.0.0.5 to 1.0.0.6
Added in "platforms" to documentation for supported platforms. Now builds
on OS X Tiger, GCC 4.0 and latest BOOST (1.33.1). Also builds on latest Linux.
Detailed list:
- Fixed return from end of code in xmlobj.cpp. Found by GCC 4.0
- Removed -sTOOLS=darwin instructions for build (not needed on latest BOOST).
- CSS Style cleanups.
- fixed problem with member.hpp not building in 3.4.3.
- Added "platforms.xml", and entry for this in docs.
- Fixed template code for GCC 4.0. You need template <>.
- Conditional compile code for tests between BOOST versions.
1.0.0.4 to 1.0.0.5
Change the documentation layout (thank's Spirit), and added Generic objects. Also
changed to use a single license.txt referenced at the top of each file. Since this code
has been stable and working for a while, next release will be beta if I can build on a
few more systems.
Detailed list:
- Removed license/copyright info and put them in a license.txt file.
- Added "name()" to access the name of xmlobj_composite objects.
- Fix problem in references where a loop would occur when visiting them because
they would recursively visit. We now only recursively visit a reference if it is owned.
- Changed look of the documentation to that of Spirit.
- Got doxygen links working from docs.
- Added "xmlobj::generic::generic" and "xmlobj::generic::generic_context".
- Cleaned up parser to detect bad finishes. These are finishes where the stack
is not empty. This usually means an unmatched tag.
- Fixed crash when an object wasn't a composite in the parser.
- Detect cases where inappropriate CDATA appears and warn of this.
- When CDATA appears in a composite member, call set() on the member
in the object to allow objects to decide that a member is not composite after all.
- Name all tests with a longer description in the test log.
- Added tests for the generic code.
1.0.0.2 to 1.0.0.4
Fixed up some notes on correct installation and got it all to build on debian. Did a lot of work
on handling "references" which are objects which point to others in the system. The tests were cleaned
up and more were added. version 1.0.0.3 wasn't released to the public for some reason, that's why the skip.
Detailed list:
- cleaned up install documentation.
- fixed crash on safe-deleting null objects.
- added in "findwithtype()" o xmlobj.
- added in "find_object()" as well as "find_composite_object()" to xmlobj_context.
- added "correct_type()" to xmlobj_ref so that types can be checked for references upon insert.
- fixed compile problems on some platforms missing <algorithm>.
- added "count()" to composition_object and xmlobj_vector. We have no lists yet, but
some work needs to be done if we do so because this could be a slow operation.
But it's very useful for all composition objects to be countable. Reference objects
simply return "1" or "0".
- removed "dll" building from the build scripts until more debugging can be done.
- added a test for "pathvar" taking a parameter.
- fixed a debian build problem in parse.cpp related to formatting to a stream. Also include <expat.h> correctly.
- got reference parsing working in parseobj. The problem was that if you had an object in a vector, you couldn't later
reference the same object with a path because it wasn't defined. All fixed now with lot's more tests.
- added more debugging options to parseobj_opts.h and cleaned up the debugging flags.
- handle (non)-recursive visits into reference objects.
- cleaned up tests.
- added tests for reference objects.
Generated: Wed Apr 5 23:00:20 EST 2006
Copyright (c) 2005; Paul Hamilton; pHamtec P/L.
Use, modification, and distribution is provided free of any limitations.