summaryrefslogtreecommitdiff
path: root/src/fstring.h (follow)
AgeCommit message (Collapse)Author
2008-01-23Added a new helper to the Stream classes, a write function that takes a singleMike Buland
Bu::FString reference as a parameter. Unfortunately you need to remember to add "using Stream::write;" to each child class so they can take advantage of it. Strange, no? Also, cleaned up a bunch of header files, I'm trying to move towards headers only including other headers that they absolutely need, otherwise just creating forward decleration sections at the top of each.
2007-12-12Corrected some issues with the new trace system. It's now working fine. ↵Mike Buland
It's backword compatible, and the new features are a lot of fun. Since it uses template functions you can add any new variable types to be formatted.
2007-12-11Interum commit, fixing the bu directory.Mike Buland
2007-12-04Minor update to Bu::FString, it now always returns a valid C style string whenMike Buland
asked for the string, no null pointers anymore.
2007-11-30Added some helpers to fstring, and fixed a bug in Bu::Process, it wasn't closingMike Buland
the pipes properly, resulting in the child process going defunct and not dying, it also wasn't buffering properly, it now collects as much data as it can before returning from a read operation.
2007-11-24Alright, *now* remove works.Mike Buland
2007-11-23Ok, that was a strange bug...Mike Buland
2007-11-23Bu::FString now has insert and remove functions, yay!Mike Buland
2007-11-23Added the Process stream class, this will allow us to do some really cool stuffMike Buland
coming up...it's just like popen only cool and managed, and streamey.
2007-11-15david - adding license tag to the top of all header filesDavid
2007-11-08Bu::FString now has the functions format, formatAppend, and formatPrepend, allMike Buland
of which use printf style formatting and accept the same parameters as printf.
2007-11-01Just made some functions that are usable const labeled const so you can use themMike Buland
in const objects :-P
2007-10-20Just marked Bu::FString::c_str as deprecated, don't use it, it'll go away later.Mike Buland
2007-10-08More updates, I'll doc them later, http works, client is less picky.Mike Buland
2007-10-04Discovered that the Bu::Client::disconnect() function didn't do anything. ThatMike Buland
has been fixed, it now safely disconnects after emptying the Client's outgoing buffer. Added some more helpers to Bu::FString. Added the beginings of ProtocolHttp using a new method for processing protocols that's based more strongly on an NFA state machine, this makes sense, but I never had the desire to actually try implementing it before. It's working pretty well.
2007-09-04Added the Bu::FString::expand() function, which expands the string in placeMike Buland
using system variables and special tokens, such as ~name and ~/... I like this, and think that it's ample precedent for adding things like format(), formatAppend(), and formatPrepend(), which would all rock.
2007-08-14Fixed a crash in the FString::prepend function on a null string corner case.Mike Buland
Also added more tests to the FString unit tests and switched the ParamProc to using FString instead of std::string, this will break a few programs in very minor ways, a few seconds each to fix, I'd say.
2007-08-05Minor FString change.Mike Buland
2007-08-05Bu::Fstring doesn't give that stupid return warning anymore.Mike Buland
2007-07-18Incorporated a patch contributed by Brandon CS Sanders that allows libbu++ toMike Buland
compile under OSX. So far, no problems with anything else, it looks like build and nango both build without problems, libbu++ is truly becoming a full cross- platform toolkit.
2007-07-11Fixed a horrifying FString bug.Mike Buland
2007-07-10OK, this time I really fixed it so that it compares raw strings and FStringsMike Buland
the right way.
2007-07-10Updated the FString to const char * string comparison, it should work betterMike Buland
now, but some more testing needs to be done.
2007-07-10More FString updates, this one fixes the hashing and string comparison.Mike Buland
2007-07-10Fixed a bunch of stuff, I don't even know what...Mike Buland
2007-07-09Fixed a bug in a new constructor.Mike Buland
2007-07-09Removed the refconuting for now, it just copies the string. Obviously it isMike Buland
possible to make this much faster than I did, so I'll have to take another crack at it later.
2007-07-03Added an assignment operator to get data from comparable std::basic_stringMike Buland
classes.
2007-06-30For now we have no const char * cast operator on FString, ISO C++ says that weMike Buland
can't have that and an indexing operator. More research with other compilers needs to be done if we want to try just having the cast operator. I would rather be able to index than auto-cast.
2007-06-29A few changes here and there, mainly related to getting the new Server systemMike Buland
working in optimal condition...
2007-06-28The FString has more things that it can do...now.Mike Buland
2007-06-28Many minor changes, hopefully the header fixes will keep future header macroMike Buland
conflicts from happening. And, from now on, other projects should do -Ilibbu++ not -Ilibbu++/src so we can get ready for an installed version of libbu++.
2007-06-27More fstring stuff.Mike Buland
2007-06-27Added more functions to fstring, now it has isSet and a bool cast operator.Mike Buland
These allow you to see if there is anything set in the fstring.
2007-06-26Fixed a minor bug in FString, and added the Logger and a test...it's cool, andMike Buland
a decent replacement for multilog now that we use runit.
2007-06-18david - writing code documentation...David
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.