summaryrefslogtreecommitdiff
path: root/src/xmlreader.cpp (follow)
AgeCommit message (Collapse)Author
2007-05-11Added a list template class, seems to work pretty well for now, I may haveMike Buland
forgotten proper cleanup in the deconstructor, but besides that you can do almost everything you need. I'll make a slist/stack next, probably with the same basic code, just a different structure (not doubley-linked). The xml system from old-libbu++ is almost completely converted, I was going to re-write it, but this seemed easier at first, it may not have been, we'll see. It almost parses everything again, and almost outputs again, and it does use streams now. The FString is partway to doing minimum chunk allocations, so that adding single-characters will be really fast up to the minimum chunk size. I also figured out how to add this optimization without any extra variables taking up space, and it's optional in the template, which is cool. You can specify the size of the blocks (default 256 bytes), if it's 0 then they'll be like the old FString, 1 chunk per operation. The next FString update should be allowing efficient removal from the begining of the string by faking it, and simply moving a secondary base pointer ahead, and then optimizing appends after that fact to simply move the existing data around if you shouldn't have to re-allocate (alla FlexBuf). The final fun addition that I'm planning is a simple switch in the template (boolean) that will switch an FString into a thread-safe mode without changing the interface or anything that you can do with them at all. It may increasing memory usage, but they should still be better than std::strings, and totally thread-safe. The best part of that is that if it's done with a boolean template parameter and if statements that only test that parameter controlling flow, the code that you don't want (threadsafe/non-threadsafe) won't be included at all post-optimization.
2007-05-09Just a few things re-arranged, moved the new taf/xml systems to the inprogressMike Buland
directory, and moved the old xml system in, so it will require heavy changes.
2007-05-09Minor changes to both the taf and xml readers. I'm thinking I'm going toMike Buland
archive these for now and resurect/fix the old xml reader, just to have something working.
2007-05-08Added the TAF format structures and XML format structures, I'm making up TAFMike Buland
(textual archive format), but named it wrong, this seemed easier than redoing it all.
2007-04-03Ok, no code is left in src, it's all in src/old. We'll gradually move code backMike Buland
into src as it's fixed and re-org'd. This includes tests, which, I may write a unit test system into libbu++ just to make my life easier.
2006-11-21Everything in libbu++ now passes -Wall, this should have been done a long timeMike Buland
ago.
2006-07-26Exceptions have been re-worked, and are easier to use, and don't collide withMike Buland
system includues anymore.
2006-06-28Entities now work in the xml processor the way they should, you can define yourMike Buland
own, use the 5 builtin ones (gt, lt, apos, quot, amp), and even create your own. The parser now skips any text definition at the top, which is fine for most xml that you get these days. I think if we ever make the break to full compliance we'll need to make a new parser from scratch.
2006-06-06Added comment handling to the XML system. It just discards them completely, butMike Buland
later it will retain them so that even after modifying the nodes the comments could be kept in place so they aren't destroyed if something changes. Also added necesarry functions to the XmlDocument that lets the tests run again and fixes some issues with multiple ownernership when transfering the contents to a new document.
2006-05-26Added the first of many unit tests. For now the unit tests are just built withMike Buland
everything else in the all target of the makefile, which is fine, but relies on CppTest, which can be found at http://cpptest.sf.net Also fixed some things I've been meaning to get to for a while in the xml system, including a few bugs that will make coping with malformed data not hang other programs, and do the error reporting in a nice way.
2006-05-01libbu++ is finally laid out the way it should be, trunk, branches, and tags.Mike Buland