]> mj.ucw.cz Git - libucw.git/commitdiff
Added function for measuring bucket file size (as an oid) and used it
authorMartin Mares <mj@ucw.cz>
Sun, 12 Jan 2003 17:36:53 +0000 (17:36 +0000)
committerMartin Mares <mj@ucw.cz>
Sun, 12 Jan 2003 17:36:53 +0000 (17:36 +0000)
for better progress indicator in the scanner.

lib/bucket.c
lib/bucket.h

index aff993107924dcb08f70b55233840b5a59a83c00..9be78b280931358402904ce18764c173df961c87 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *     Sherlock Library -- Object Buckets
  *
- *     (c) 2001--2002 Martin Mares <mj@ucw.cz>
+ *     (c) 2001--2003 Martin Mares <mj@ucw.cz>
  *
  *     This software may be freely distributed and used according to the terms
  *     of the GNU Lesser General Public License.
@@ -272,6 +272,13 @@ obuck_fetch_end(struct fastbuf *b UNUSED)
 {
 }
 
+oid_t
+obuck_predict_last_oid(void)
+{
+  sh_off_t size = sh_seek(obuck_fd, 0, SEEK_END);
+  return size >> OBUCK_SHIFT;
+}
+
 struct fastbuf *
 obuck_create(void)
 {
index 798e9a9a37727dbe1c2fe7665e9710d0e9d938d2..811455238678b461188cd6a656bb1a5f84d0494b 100644 (file)
@@ -1,7 +1,7 @@
 /*
  *     Sherlock Library -- Object Buckets
  *
- *     (c) 2001 Martin Mares <mj@ucw.cz>
+ *     (c) 2001--2003 Martin Mares <mj@ucw.cz>
  *
  *     This software may be freely distributed and used according to the terms
  *     of the GNU Lesser General Public License.
@@ -45,6 +45,7 @@ void obuck_sync(void);                /* Flush all buffers to disk */
 void obuck_lock_read(void);    /* Explicit locking to make sure other threads don't touch buckets now */
 void obuck_lock_write(void);
 void obuck_unlock(void);
+oid_t obuck_predict_last_oid(void); /* Get OID corresponding to the next to be created bucket (i.e., bucket file size estimate) */
 
 /* Searching for buckets */
 void obuck_find_by_oid(struct obuck_header *hdrp);