aboutsummaryrefslogtreecommitdiff
path: root/src/cache.h (follow)
AgeCommit message (Collapse)Author
2011-03-02Corrected a memory leak in Bu::Client, and hopefully sped up transmission some,Mike Buland
there's one more fix I can make later to really speed up transmission, but it's a little more delicate. Also, Cache::Ptr objects are now camparable even when unbound.
2011-01-20Wow, got the Stream changes propegated, all tests build with string instead ofMike Buland
fstring, and updated the copyright notice to extend to 2011
2010-05-10Added the new QueueBuf. It's brilliant, and I've wanted it for a long time.Mike Buland
...I mean brilliant as in cool.
2010-05-04Cache fixes?Mike Buland
2010-05-01Cache fixes.Mike Buland
2010-05-01The cache...Mike Buland
2010-04-30Many minor fixes to the caching system, membuf, and others, but mainly someMike Buland
important fixes for real-life use of the system.
2010-04-07Cache updates, mainly helper typedefs to make it easier to work with a cacheMike Buland
without knowing everything about it's keytype and whatnot. Minor fixes to the csv end-of-line handling.
2010-02-13Added and updated the license info in all the source files, they still saidMike Buland
copyright 2007-2008.
2010-01-25I had thought that I had done this ages ago. __cacheGetKey now has a generalMike Buland
template definition that just calls getKey() in the object, if the object doesn't support a getKey() method, then you can write your own, but now you don't have to.
2010-01-25The order of key, object in all of the cache related systems has beed fixed,Mike Buland
key just belongs first, that's all there is to it.
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-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-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-05-28The cache can now efficiently report how many items are stored in it, butMike Buland
there's no way to find out how many are in memory now, I may add something for that later, but it seems more or less unimportant (except maybe for fine-tuning and making interesting looking displays).
2009-05-28Added some helpers to the Bu::Cache::Ptr, you can clear them now, and cast toMike Buland
bool to see if they're bound, you still have to use isValid to see if they're valid or not. Also, fixed a bug in libbu++ that's been around for a while, apparently, in the Bu::Socket code. Non-blocking reading wasn't working correctly, when data wasn't waiting on the line, it would return immediately with zero bytes read. That was sure stupid. This should fix a lot of things.
2009-04-20Stupid cache pointer assignment operator not actually returning itself properly.Mike Buland
2009-04-10Added some new goodness to the fbasicstring, fixing some inconsistancies andMike Buland
adding some more helpers. Hopefully this won't affect anything, but if it complains about any functions not working the way they used to, see if they're returning an int or an iterator. I made several functions handle iterators instead of ints, the int versions have an "Idx" suffix added now. I'm trying to switch entirely to iterators to reduce flattening and increase performance and stability. Also...something must have changed in the cache code...
2009-04-02Removed some uses of printf in libbu++, I would like to get rid of all of themMike Buland
some day, but I'm not in much of a rush, I just wanted to do a quick survey. Also added the Formatter::flush special stream value, so now you can do a: sio << "hello" << sio.flush; and it'll flush output immediately. I also tweaked a few things in the cachestore and cache so that they actually throw exceptions and the like instead of just printing out some garbage.
2009-02-24Woot, the cache system now supports intellegent sync'ing. It will ask the cacheMike Buland
about each object that it has and weather or not to sync it. This will probably be made optional in the future.
2009-02-24Whoa, lots of updates. Md5 is more general, nids, cache, cachestore, andMike Buland
cachestorenids all support synchronizing now. Url is pretty much done.
2009-01-27Hey, I think that'll fix some things valgrind was bitching about. ApparentlyMike Buland
BitString is...not so good...I may have to rewrite big chunks.
2009-01-16They keys can be accessed now for all stores that support it, they pretty muchMike Buland
all should, but they don't really haaave to.
2009-01-16Ok...we'll try this change up of the cache system. It now takes two pointers,Mike Buland
one to a Calc and one to a Store. It takes ownership of the two objects, and deletes them when it gets cleaned up.
2009-01-05I mergered Bu::CPtr into Bu::Cache as Bu::Cache::Ptr. This makes more sense toMike Buland
me, is much less messy, and makes the syntax work a little better for me as well. What the hell was a CPtr? Who knows, but a Cache::Ptr, that makes sense. Also, fewer includes to deal with now, just need Cache and you're set. Oh, also, made Cache::Ptr behave much more like a regular pointer, they can be assigned now, as well as created empty (NULL).
2008-12-20All of the basic, core workings of the Cache are complete, and tested. EvenMike Buland
added some more tests and whatnot. A lot happened, but I can't remember everything. Also, Bu::File reports errors in more error cases.
2008-12-13The Calc should be functional, and is being called by the Cache itself. TheMike Buland
Bu::CacheCalc still needs to reference the Bu::Cache so that it can make the changes it needs to.
2008-12-03Alright, the caching system now passes the basic CRUD tests with arbitraryMike Buland
keytypes. It doesn't yet use the stackable CacheStore concept, but the code is all in place to make it easy to switch to. There also needs to be some more accounting code in place, so that we can actually use the Schedulers, whatever they happen to be called in the future. A whacky side note, it turns out that we totally need to ensure an object is loaded from the cache in order to delete it, we can't ensure that any references to other objects that are in the cache will be loaded otherwise.
2008-12-01Wow, that's a lot of changes. You can use anything as a key now, as long as itMike Buland
can be hashed. And we're about to test actually loading and saving persistant cache items. Fun.
2008-12-01Woo! Very nearly there cache-wise, I'm about to change the name of the handler,Mike Buland
do a few more tests, and hopefully get something loading/saving.
2008-11-10Ok, the cache-id officiation is being delegated to the CacheHandlers, this isMike Buland
just fine, since they can do it any way they want. The Congo CacheHandlers will all have to be specialized versions of the generic ones, but they'll use all the general functionality, just make up IDs differently. It'll rock.
2008-10-09More cache development. I'm going to have to switch from template functions toMike Buland
functors. I like template functions a little more, but functors can be at least as fast. It won't be much of a change.
2008-10-08Hey, more cachey goo!Mike Buland