aboutsummaryrefslogtreecommitdiff
path: root/src (follow)
AgeCommit message (Collapse)Author
2015-08-24Added some refcount debugging.Mike Buland
2015-08-24Minor stability/speed improvements, don't try to write null strings to a stream.Mike Buland
2015-08-22Added some handy functions to inject data back into the telnet buffer.Mike Buland
This is great if you want to pre-fill a field, say.
2015-08-22Minor tweak to non-canoninical callback handling. It had the same problem thatMike Buland
the canonical mode had so long ago.
2015-08-16Thread safety update for the previous commit. I left one structure accessMike Buland
unprotected, but fortunately this time I was able to use a read lock which is much lest nasty and persistant.
2015-08-16Fixed a highly essoteric issue. The ReadWriteMutex was locked in write whileMike Buland
syncing changes. That was important so that more changes wouldn't be added while we're writing, but it also meant that in a very particular circumstance where one thread was syncing changes, another was marking changes as having happened, and another locked an object that was being written because it had changes they would all deadlock. This should be fixed now.
2015-08-16Couldn't print out the minimum value for any given signed integer. I fixed theMike Buland
code, but I have a feeling the fix could be much better. I'll look into it later on.
2015-07-20Added a close function. It's nice to be able to close your connection wheneverMike Buland
you want to.
2015-07-14constant cache pointers can now be bound and unbound. It may seem odd, but it'sMike Buland
important, they are references to constant data, weather they should be able to become bound still.
2015-07-07In theory the protocol client shouldn't send a backspace to indicate that aMike Buland
backspace key was pressed, backspace is to move the cursor back one non-destructively, DEL is sent to indicate that a backspace was pressed. I now treat BS as DEL when serving because some clients (windows), send the BS instead of DEL key and everything else just seems to take it. I think there's a way to negotiate that, which I'll look into later.
2015-07-07Fixed the buffering code in ProtocolTelnet to clear the buffer before handingMike Buland
you the next line.
2015-06-16Const chnaged functions. I think this makes sense.Mike Buland
2014-11-28Autoconfig now detects libraries that libbu++ can use and generates theMike Buland
appropriate headers. bin2cpp now uses those headers to compile correctly despite having missing filters.
2014-11-28Minor tweak to bin2cpp, it now will now include a comment showing you the nameMike Buland
of each file in the source. It would be nice to have an enumeration or something at some point too.
2014-10-03Tweaked Bu::Uuid loading to pad it's data more cleanly. This will help ensureMike Buland
that we don't get valgrind errors, and is probably safer in general. Added Bu::ArchiveStream. It could use some tweaks, but as a quick hack it's handy to allow systems that can only read/write from/to streams to work with archives.
2014-08-14Neither the Bu::Client class or the Bu::ProtocolTelnet class were threadsafeMike Buland
and both really need to be. Bu::Client is used in multi-threaded applications and has been for a while, so it's a no brainer. It may need a little bit more safety added around variable access, but all the buffers are safe now. ProtocolTelnet has it's own issus, and I should probably rework a few parts of it before too long so we can better accomidate things like line editing.
2014-08-12Minor tweak to the read/write mutex test.Mike Buland
2014-08-08The cache didn't handle syncing objects that were marked changed and thenMike Buland
deleted before the sync could occur properly. They are now ignored during sync.
2014-07-22Deferred erase now works on cache entries. You can erase a cache entry whileMike Buland
it still has active references, and it will be safely cleaned up when the last reference is released.
2014-06-13Telnet really needed a flush function. Now it has one.Mike Buland
We can't be waiting for an update later on to flush our buffers all the time!
2014-03-05Added a method to null/clear a cache pointer, and one to see if it's set at all.Mike Buland
2014-02-03Corrected Myriad unit test on 64 bit platforms.Mike Buland
I assumed a long would be 4 bytes, that was silly!
2014-02-03Changed copyright to 2007-2014.Mike Buland
2014-02-03Compiles with LLVM 3.4 as well now.Mike Buland
2014-02-02I can make it compile with gcc or LLVM, but not both yet.Mike Buland
2014-01-30Attempting to fix OSX compatibility, it's not 100%, but it builds and most ↵Mike Buland
things seem to work. We've also tested against LLVM.
2014-01-22Updated the cache system. It now ensures that objects are initialized withMike Buland
cache information before they are deserialized from storage. This changed the signature of the cache loading template function, but the new function isn't harder to use, and provides the key information as well.
2013-07-26Got rid of the last non-const formatter << operator references.Mike Buland
2013-07-26Fixed some random whining issues, dropped extra char * formatter references,Mike Buland
and fixed a null/integer issue in Bu::Hash
2013-07-26Removed an incorrect formatter << operator, and corrected a const_iterator vsMike Buland
iterator issue in Bu::String.
2013-07-20Added a Locker class to the Bu::CacheObject base class. This is a super simpleMike Buland
wrapper that lets you take advantage of nifty Locker based mutex locking when in a CacheObject subclass.
2013-07-18Fixed caching changed issue. The cache now marks objects as unchanged for youMike Buland
after they are saved. It needs some more testing, but the theory is sound.
2013-07-03Modified the Bu::CacheBase API, what was erase is eraseNow, and erase is aboutMike Buland
to be re-engineered to actually do a lazy erase like removing an iNode in a posix filesystem. While the file remains open it exists, but the references visible to the user on disk are gone.
2013-04-08Minor tweaks to the cache object base class. The per-object mutex is actuallyMike Buland
in the CacheEntry class, not the CacheObject, so you can't lock it until you have an entry. This isn't a big deal unless your objects aren't actually part of a cache yet. I changed it so that lock/unlock have no effect if you haven't joined to a cache yet, probably not ideal, I'll think about moving that mutex. I also fixed it so you can lock/unlock even when const.
2013-03-25Corrected a pure virtual call issue while destroying caches.Mike Buland
2013-03-21The Bu::MyriadCache now ensures that it saves the myriad structure afterMike Buland
saving an entry or syncing.
2013-03-18Cache object handles changed() events when no cache has been set cleanly now.Mike Buland
2013-03-18Added the has function to the new cache system. If the object identified byMike Buland
key is loaded then the query doesn't even get to the superclass.
2013-03-18Corrected compliation issue in the new cache with older GCC versions.Mike Buland
2013-03-17The new cache system has been broken out into it's individual headers, and isMike Buland
now ready for actual use.
2013-03-17The new cache system is tested and ready, it just needs to be put in it's place.Mike Buland
The old cache system will be going away now, so if you need it for anything, grab a version before this commit. Oh, also, happy 1,000th commit!
2013-03-13Added bind/unbind to the Cache system. Fixed typo in docs of heap.Mike Buland
2013-03-13The new caching system is almost there. It's more elaborate internally, andMike Buland
it works very, very differently, but the interface is proving much easier to use and it should be much faster, not to mention thread-safe.
2013-03-12Bu::Uuid now supports being formatted, it uses the standard toString() method.Mike Buland
The new cache is really coming along now.
2013-03-12Mostly planning changes, nothing real functional but I want to commit and changeMike Buland
computers.
2013-03-03Adding the Bu::DualFilter which could work out really well, it's going in forMike Buland
testing now. The idea is that it makes it easy to use a bi-directional stream like a tcpstream that requires a seperate filter instance for each read and write side.
2013-02-27Added a unit test for Bu::SynchroHash. It's just a tweaked copy of the testMike Buland
for Bu::Hash, which tests the basics alright, but not the synchro part. I'm still trying to figure out a good test for that.
2013-02-26Added auto-lock classes to the Bu::ReadWriteMutex, I think I like that type ofMike Buland
encapsulation, at least for the read/write guy. Also started work on a thread-safe wrapper for the standard hash. There is a lot of functionality we just have to leave out in this, it's just too dangerous in a thread-safe class.
2013-02-25Really minor addition to the new cache system. I think I will split it intoMike Buland
two classes, one for the store, one for the cache itself. The index will have to go with the store, which I find a little odd, but it'll...probably work out.
2013-02-23Just made all tests include libpthread, it makes sense these days.Mike Buland
Creating an experimental new cache system that's controlled primarily with a subclass. This should cut down significantly on the amount of code needed to use the cache. The new one also features a required (for now) base class for objects that use the cache. This simplifies so many different things.