Age | Commit message (Collapse) | Author |
|
|
|
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.
|
|
|
|
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.
|
|
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.
|
|
encoding and decoding and uri encoded splitting etc in one class.
|
|
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...
|
|
Also I added a bunch of classes that I've been tinkering with that are almost
ready for use, so I figured I may as well throw them in here.
|
|
about each object that it has and weather or not to sync it. This will probably
be made optional in the future.
|
|
cachestorenids all support synchronizing now. Url is pretty much done.
|
|
to rock. sha1 is still only a shell, I dunno if/when I'm going to implement
that one.
So far Bu::Md5 is 100% compatible with md5sum in all tests performed so far, in
fact the test program's output is compatible with md5sum in every way (and it's
so cute and little too!)
Oh, minor update for stdstream and the formatter, they can handle more handy
types now.
|
|
|
|
lets see how nice we can really make it.
|
|
indexing. It is now many times faster, and requires less overhead. Also,
more stuff iterator related in every class. More on that later.
|
|
block size. Isn't that nifty?
|
|
creator functions for the cache store...soon, you'll also be able to define
you're own loader/writer functions, but the default will still work exactly
like this.
I also did more work on nidstool, I think I may actually have to create a
tools dir that will just compile some executables for the libbu++ root, because
this thing is handy. You can get info on the system, trace streams' blocks,
and I'm working on an analysis function that will help you figure out how to
optomize your nids files. Plus, it'll have a function soon for re-writing a
nids stream, which will let you change the block size, defragment, and remove
unused blocks.
|
|
often within nids. There's still a problem somewhere, but I'll find it.
Also, even after having the file class canRead and canWrite functions work
properly, and using them before trying to write to a nids to update info, we
never ever write anything, so something is still wrong there. For now, all
utilities that open a nids stream read-only will crash when it closes. Pretty
minor really.
|
|
BitString is...not so good...I may have to rewrite big chunks.
|
|
clear function to Bu::Stack
|
|
unary operators now, such as negate and not, and it now handles functions.
Functions are actually implemented as unary operators at the moment, so they'll
only act on a single value, no commas :-P, but it would probably be pretty easy
to make it work on longer call lists. Although I do think that this will work
for pretty much all cases out there.
|
|
Bu::Socket::read will throw an exception if the socket has been closed. Also,
you'll get an exception at object creation if the socket could connect to a
computer, but not the given port.
|
|
one to a Calc and one to a Store. It takes ownership of the two objects, and
deletes them when it gets cleaned up.
|
|
implement in Bu::ItoServer, but I'll get to it. Basically you can trigger a
"tick" any time you want and it will propegate as an onTick event to all active
clients. You can also have these generated automatically everytime the system
passes through a polling cycle. In this case, you should never ever write
data to the socket every tick. It will cause your program to go bursurk.
|
|
added some more tests and whatnot. A lot happened, but I can't remember
everything.
Also, Bu::File reports errors in more error cases.
|
|
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.
|
|
can be hashed. And we're about to test actually loading and saving persistant
cache items. Fun.
|
|
do a few more tests, and hopefully get something loading/saving.
|
|
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.
|
|
functors. I like template functions a little more, but functors can be at
least as fast. It won't be much of a change.
|
|
goes into an infinite loop while doing certain kinds of read. Also, it zeros
out new blocks to make things easier to cope with in the hex editor, it'll
probably also compress better.
I also fixed Bu::MemBuf so that you can now write to arbitrary places
mid-stream.
|
|
|
|
What changed API-Wise:
- I deleted a constructor in Bu::File that shouldn't have been used anyway.
- I changed it from using fopen style mode strings to using libbu++ style
mode flags. Check the docs for the complete list, but basically instead of
"wb" you do Bu::File::Write, and so on, you can or any of the libbu++ flags
together. There is no binary/text mode, it just writes whatever you tell it
to verbatim (binary mode). Lots of extras are supported. Nothing else
should have changed (except now the file stream is unbuffered, like all the
other streams).
Sorry if this breaks anything, if it's too annoying, use the last revision for
a while longer.
|
|
exception related code that's been annoying me. You should no longer have to
include any exception header explicitly for normal operations, every class that
has it's own exception to throw defines it in it's own headers.
This may break some code that uses libbu++, but it's an easy fix, just delete
the include for exceptions.h. Sometime soon I would also like to move from
Bu::ExceptionBase to Bu::Exception, but that will affect a lot more code than
this change did.
|
|
ok, nids is still in flux, they'll be gone soon).
|
|
|
|
hell out of it. Good times, everyone. This is a major chunk for congo, and
the new optimizations should be good.
|
|
I wouldn't update to this just yet, if you have problems, back off a rev. I'm
trying to update the code to work on both 32bit, and 64bit systems, and
hopefully anything else that comes along.
Currently some of the archive code is broken, testing must be done on both
archetectures.
|
|
version of gcc complained about them, none of these changes will break backward
compatibility, so I fixed them.
I added more docs too, it seems.
|
|
it yet, the name will change. I really, really, really want the name to change.
|
|
fixed, and the Bu::ItoHeap is working and tested. Note that when multiple items
have the same sort order, they will come out in random order.
|
|
allocators for all work, every data type used in a Bu::Heap must support the
equals operator and <= or >=, or you need to write your own comparison functor.
The heap works as both a min-heap and max-heap, just change out the functor used
for camparison, kinda' cool.
The print function I'll leave in for a little while, but not in the long run, it
just prints a dot graph to stdout.
Next up, the Ito version.
|
|
I'm thinking the heap should add one layer to the binary tree each time it
grows, which means double+1 each time. The Bu::ItoHeap will be implemented as
soon as the rest of Bu::Heap is done.
Also, I finally added bu/util.h which is mainly handy template functions like
Bu::swap, Bu::min, Bu::max, and Bu::mid. A few more may be added.
|
|
|
|
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.
|
|
|
|
installed. That was odd. Anyway, also set props on the bu, unit, and test
directories so that the contents won't be listed on svn status.
|
|
effort.
|
|
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.
|
|
coming up...it's just like popen only cool and managed, and streamey.
|
|
compile error I introduced last commit.
|