aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
AgeCommit message (Collapse)Author
2009-11-12I've started my campaign to clean up all of the header files in libbu++ as farMike Buland
as includes go. This required a little bit of reworking as far as archive goes, but I've been planning on changing it aronud for a bit anyway. The final result here is that you may need to add some more includes in your own code, libbu++ doesn't include as many random things you didn't ask for anymore, most of these seem to be bu/hash.h, unistd.h, and time.h. Also, any Archive functions and operators should use ArchiveBase when they can instead of Archive, archivebase.h is a much lighterweight include that will be used everywhere in core that it can be, there are a few classes that actually want a specific archiver to be used, they will use it (such as the nids storage class). So far, except for adding header files, nothing has changed in functionality, and no other code changes should be required, although the above mentioned archive changeover is reccomended.
2009-10-28Uuid now has a default gen function that will generate a uuid using the best,Mike Buland
easiest method available. On linux right now, this means that it uses the kernel /proc interface. I'll have to add some fallbacks to this...
2009-10-26Minor, cosmetic change to the TafWriter. It now writes group names that areMike Buland
blank as they were intended, i.e. {: }, not {"": }.
2009-10-16Got rid of cgiutil, it was empty, it was all going to be duplicates of code inMike Buland
the Url class and others.
2009-10-16Finally added the substream class, and added getByPath (for properties) andMike Buland
getChildByPath (for groups) to the TafGroup class.
2009-10-16Although this looks like a load of code changes, this represents no functionalMike Buland
change to the Taf system. Really all that's happened is I've broken out the core taf data types into seperate files, and gone ahead and created a helpful new header file ("taf.h") that will include the entire taf system, including the reader and writer for you. This means that a lot of programs will start complaining, but fortunately, there's an easy solution, if it complains about taf, make sure to include taf.h at the top, instead of other taf files and you'll be set. The next set of changes will add lots of helpers to the taf system and change the reader to read non-const structures, i.e. I'll actually add editing support to created taf structures.
2009-10-05I just got rid of the float markers, we know we need a new float formatter, itMike Buland
doesn't need to make all output ugly forever.
2009-09-26Minor tweaks and fixes to Bu::VariantMike Buland
2009-09-25New Bu::Variant class. Store anything in it, get it out again, find out it'sMike Buland
type. It's really just that easy. More info, docs, and tweaks to come.
2009-09-23Wow, ok, file was broken on changing position in the stream, it wouldn't resetMike Buland
the end of stream flag. Now it does reset it, and assumes that you've placed the position not at the end, if you have, it will detect it again immediately upon read. BZip2 now provides a method of getting the number of bytes written out, i.e. the compressed size of the output, I have to figure out the input side next...
2009-09-21Stupid prepend. A prepend function was missing, and the prepend functionsMike Buland
didn't hardcopy appropriately.
2009-09-18Added a handy readLine function, I've been meaning to do this for a while.Mike Buland
2009-09-15Minor change, added a new constructor for lists that lets you append the firstMike Buland
element to the list in the constructor.
2009-09-10Hey, minor updates to the formatter and a unit test, nothing important.Mike Buland
2009-09-09Fixed a unit test, and added some fixes and new queue functions to list, fuck itMike Buland
it's easier when they're in list.
2009-09-09Fixed a minor assignment bug in shared core, assigning an object to itself wasMike Buland
causing memory corruption, and fbasicstring is playing even nicer with shared core now.
2009-09-09Wow, that was stupid, default values weren't working since I switched toMike Buland
Bu::TafException instead of Bu::HashException. THis is fixed.
2009-09-04Wow, I should check this in the other containers. I should have known better,Mike Buland
but I made the Formatter << operator for Lists use the List with the value as the template parameter, and no others, so if you actually tune the list, you can't format it anymore. This has been fixed.
2009-08-31Added a getDaysInMonth function, it'll live in util.{cpp,h} until I create anMike Buland
actual Date class.
2009-08-28Corrected the iterator in Bu::Hash, and fixed the erase function in Bu::List,Mike Buland
there are a couple more fine points to touch on in Bu::Hash::iterator, I should go through and review the whole thing at this point (iterator-wise).
2009-08-27Huh, the Bu::Cache::Ptr didn't have comparison operators, seems odd. I shouldMike Buland
probably document some of that...if you do an == with Bu::Cache::Ptr objects it will compare them to see if they are the same pointer, not if the data contained is compatible. i.e. to see if two pointers are the same data, you can do: a == b but to see if a and b contain compatible data, do: *a == *b :)
2009-08-24Fixed a minor helper in Bu::MemBuf, and corrected some docs on Bu::Stream, theMike Buland
synopsis line made the canWrite function misleading. I also addad a script that could actually be used for any project, it builds a tarball release of all the files that are in SVN, so it will skip object code and the like.
2009-08-22Pretty much just removed the debugging from SharedCore, it wasn't at fault, andMike Buland
it passed many more valgrind tests.
2009-08-21Added loads of debugging to sharedcore, we're sure it's to blame, but not asMike Buland
much anymore, for the fishtrax issues, maybe.
2009-08-20Added a typedef to the cache, and most list manipulation functions now returnMike Buland
a reference to the list, so you can chain appends and whatnot.
2009-08-14Massive freaking changes!!!Mike Buland
Bu:;SharedCore actually is in and works, it's well tested and there are no known memory leaks or violations as of now. It's been applied to Bu::List and Bu::FBasicString so far. This means that everything using Bu::List and Bu::FBasicString will be much, much faster and use considerably less memory. I still have plans to apply this to Hash and maybe a couple of other core classes.
2009-08-14A good start on a speed test framework.Mike Buland
2009-08-13Ok, shared core looks good, and I added a unit test for Bu::List to check a fewMike Buland
basics. It works, so now I'm going to apply SharedCore to Bu::List and see how bad it is. Also, I got rid of all the warnings and things that showed up during compilation, they were all silly anyway. Finally, mkunit.sh is much cooler. Hard to believe it's a shell script, it now also adds proper #line directives to the cpp output so if there is an error or warning g++ will give you the right line number in your .unit file, not the resultant cpp file.
2009-08-13Bu::Hash can now be sent through the Formatter, it's cute.Mike Buland
2009-08-13Bu::FString now has some fun conversion operators, you can do:Mike Buland
X << strVar; where X is any primitive, and strVar is an FString. We'll add other converters later, but it's fun so far.
2009-08-11Added some more functions to Bu::FBasicString, including a setSize function.Mike Buland
Also added some awesome helpers to Bu::FString in the form of << operators to convert a string to many common types. Handy.
2009-08-09Really, just a lot of documenting.Mike Buland
2009-08-04***IMPORTANT*** The function Bu::Md5::getResult no longer returns a hex string,Mike Buland
it returns the raw binary string that makes up the md5 sum, this matches the original goal of the API and makes the whole system more general and transportable. I have added a handy helper function named getHexResult that will return the same classic hex md5 string we're used to, change anything in your code that uses getResult to getHexResult now. I've also added a handy function to the CryptoHash to write the result to a stream, writeResult. I've fixed some more things in the formatter, and added a cryptPass function that works very much like the system crypt function, md5 and base64. If I knew more about the glibc implementation I could probably make them compatible. For now there are some subtle differences in the formatting and the salting algorithm, also the output mantains it's base64 trailer (==) wheras the system function chops those off. There's also another helper that will only work on linux for now, that only takes the password, and generates a salt for you using urandom.
2009-08-03Hey, buffer has some good tweaks, added some stuff and fixed stuff in formatterMike Buland
and base64 no longer accidentally complains about properly formatted streams, as much...
2009-07-31I switched the Bu::Stream::isEOS function to be named Bu::Stream::isEos, andMike Buland
also made sure the copyright is at the top of all the files, it's been too long. Anyway, this may effect some code, but not much, and it's an easy enough fix.
2009-07-31Wow, Bu::Base64 had a bug about premature end of stream / not base64 data, nowMike Buland
it throws exceptions. It'll still try to process bad data for a while though. Also, it turns out that Bu::File never reported EOS, now it does, appropriately. I'm about to change Bu::Stream::isEOS to be Bu::Stream::isEos, this is your warning.
2009-07-31Fixed Bu::Process' close function, it wasn't closing, now it actually closesMike Buland
the pipes and waits for the child process like it should. It doesn't force the child to close right now, I'm not sure it should, we'll figure that out later.
2009-07-31Silly, the new g++ complained about some "style." Now it doesn't.Mike Buland
2009-07-31Added a character based splitting function to FBasicString and made more of theMike Buland
parsing functions publicly accessible in Url, and added some more helpers.
2009-07-30I think I fixed a bug in Bu::Base64, we'll see what happens.Mike Buland
2009-07-30Bu::Buffer actually works, and works really well. I dig it. Bu::BZip2 nowMike Buland
follows the new filter guidelines, where read and write report the amount of data consumed, not the amount processed. I.e. when writing, it reports how much of your incoming data it used, not how many bytes it wrote on the other end.
2009-07-29Decoding now skips whitespaceMike Buland
sweet.
2009-07-29Base64, now more clever with fewer options.Mike Buland
2009-07-29Wow, socket, as it turned out, was not able to close after the remote endMike Buland
disconnected. It now automatically closes down the local end when the remote end dies.
2009-07-16Client code is even cooler, it supports flushing data in case of buffering inMike Buland
the filter chain, I'm going to go ahead and make that optional coming up.
2009-06-30Bu::Client now gives you the option to add additional filters to the filterMike Buland
chain on the base stream, which for the moment is a socket. I also demonstrate this in the new rot13 test, with a rot13 filter, and a simple echo protocol.
2009-06-28Added the Bu::ListHash class, it's a really simple wrapper for Bu::Hash thatMike Buland
puts all of the values in a Bu::List assosiated with the key. When you insert, it will append to the list at that key, and create a list if it needs to. When erasing, getting, etc, you operate on the whole list, not just one element.
2009-06-26Fixed a couple of things up, now build creates a shared object as well as a nonMike Buland
shared, checkinst.sh makes sure that symlinks are in /usr/lib and /usr/include so that you don't need a libbu++ symlink in any directories. If you still want the static version, then just delete the shared object, or switch your link line to do this: -Wl,-Bstatic -lbu++ -Wl,-Bdynamic Instead of just -lbu++, it'll include libbu++ as static, and everything else as dynamic. You could always just use -static, but then the whole thing is going to be static. Also, the dynamic library is already linked against all the extra libs you need, so no need to link against pthread or libbz2.
2009-06-18Added a new enum value to Bu::File, Bu::File::WriteNew which combines Write,Mike Buland
Truncate, and Create, the flags used most commonly when writing a new file. Also added the Bu::Base64 filter class, it does base64 encoding and decoding, it may need a couple more interfaces added, but for the most part, it's solid.
2009-06-16The Bu::FBasicString::iterator and const_iterator didn't have != comparsionMike Buland
functions for comparing with chr type.