> From: Justin Erenkrantz [mailto:[EMAIL PROTECTED]] > > On Thu, May 30, 2002 at 05:50:45PM -0400, Cliff Woolley wrote: > > On Thu, 30 May 2002, Justin Erenkrantz wrote: > > > > > The fact here is that not all buckets can be "read" such as EOS, > > > flush, and error. > > > > Sure they can. They just contain zero data bytes. > > Right, but the problem is how are these "metadata" buckets identified > if their types aren't checked for explicitly? It'd be nice if we > came up with a way to prevent every module for checking for EOS, > flush, and error each time. -- Justin
All of the metadata buckets have a common interface. They all have a 0 length. So, filters should be written so that any 0 length bucket is just moved from one brigade to the next. If 0 length buckets are removed from the brigade, then the filter is most likely doing something wrong. The only time this isn't true, is when the bucket is a 0 length heap/mmap/file/transient bucket, but those don't really matter, because the lowest level filters will remove those cleanly. Since the lowest level filters know which are the metadata buckets, they also know that any 0 length bucket that isn't a metadata bucket can be removed. Ryan
