aboutsummaryrefslogtreecommitdiff
path: root/src/fstring.h (follow)
AgeCommit message (Collapse)Author
2007-06-11Another few fixes for zero-length strings in fstring.Mike Buland
2007-06-11Corrected another issue with the prefix * iterator operator in Bu::Hash, it wasMike Buland
still trying to use a pair internally. Also added more helpers to FString.
2007-06-07The Stream Filter archetecture is finished, it's actually much cooler than IMike Buland
had anticipated, and much cleaner. I'll have to add some documentation to it, because it's not really obvious how any of it fits together from the outset, although I have to say that the bzip2 test program is the easiest general bzip2 compression program I've ever made...it just goes :) Decompression in Bu::BZip2 isn't finished yet, but that's ok, it's coming soon.
2007-05-17As evidenced by my latest test, the Bu::FString copy is actually slower thanMike Buland
the std::string copy by a rather large margin. This seems very odd, so I'm going to do a few tests, the first one is stripping out the FString shared pointer stuff and seeing if that makes an appreciable difference.
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-07Added some more helpers to FString, now contemplating a cast operator to aMike Buland
const pointer version of the raw data.
2007-04-10Well, we've got the basis of a workable unit test harness thing. There shouldMike Buland
be a few more add-ons to it, but it works just fine, and eventually it should cover command line options and creating logs, and possibly even provide output functionality so that output from tests can be logged and kept track of well.
2007-04-10Woo, changed the name of Achable to Archival, I dig that, and added the ground-Mike Buland
work for the SSocket, that should be cool.
2007-04-03The first batch seem to have made it alright. Unfortunately the Archive classMike Buland
isn't done yet, I'm going to make it rely on streams, so those will be next, then we can make it work all sortsa' well.
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.
2007-03-27Fixed a const issue in the fstring.Mike Buland
2007-03-25Some more updates to Hash and FString.Mike Buland
2007-03-23Added another function to FString.Mike Buland
2007-03-20Minor updates to the Hash and FString, Hash got a getKeys function, and FStringMike Buland
got the more normal getStr and getSize functions.
2007-03-19Fixed some bugs and added some new goo. You can serialize FStrings and HeshesMike Buland
now.
2007-03-15Fixed a constness issue. It's pretty good to go.Mike Buland
2007-03-15This version may break hashing of strings, but at least you can hash FStrings...Mike Buland
templates are confusing.
2007-03-15Looks like FString is ready for general consumption, not too shabby.Mike Buland
2007-03-15FString is totally usable, a few more helpers must be written before it surpasesMike Buland
the other classes in functionality. It's already rather fast.
2007-03-09The string thing compiles.Mike Buland
2007-03-07Started the fstring class, could be good.Mike Buland