[Groonga-commit] groonga/groonga at 6d3bad5 [master] Add grn_io_get_disk_usage()

Back to archive index

Kouhei Sutou null+****@clear*****
Tue Aug 15 21:59:55 JST 2017


Kouhei Sutou	2017-08-15 21:59:55 +0900 (Tue, 15 Aug 2017)

  New Revision: 6d3bad5b827dcfabcada8f30d5dd6484ec4faa07
  https://github.com/groonga/groonga/commit/6d3bad5b827dcfabcada8f30d5dd6484ec4faa07

  Message:
    Add grn_io_get_disk_usage()

  Modified files:
    lib/grn_io.h
    lib/io.c

  Modified: lib/grn_io.h (+1 -0)
===================================================================
--- lib/grn_io.h    2017-08-15 21:58:47 +0900 (99eabb7e0)
+++ lib/grn_io.h    2017-08-15 21:59:55 +0900 (6cea27f29)
@@ -314,6 +314,7 @@ GRN_API void grn_io_unlock(grn_io *io);
 void grn_io_clear_lock(grn_io *io);
 uint32_t grn_io_is_locked(grn_io *io);
 grn_bool grn_io_is_corrupt(grn_ctx *ctx, grn_io *io);
+size_t grn_io_get_disk_usage(grn_ctx *ctx, grn_io *io);
 
 #define GRN_IO_ARRAY_AT(io,array,offset,flags,res) do {\
   grn_io_array_info *ainfo = &(io)->ainfo[array];\

  Modified: lib/io.c (+25 -0)
===================================================================
--- lib/io.c    2017-08-15 21:58:47 +0900 (5b18b66ca)
+++ lib/io.c    2017-08-15 21:59:55 +0900 (8f57e9d35)
@@ -1523,6 +1523,31 @@ grn_io_is_corrupt(grn_ctx *ctx, grn_io *io)
   return GRN_FALSE;
 }
 
+size_t
+grn_io_get_disk_usage(grn_ctx *ctx, grn_io *io)
+{
+  size_t usage = 0;
+  uint32_t i;
+  uint32_t n_files;
+
+  if (!io) {
+    return usage;
+  }
+
+  n_files = grn_io_n_files(ctx, io);
+  for (i = 0; i < n_files; i++) {
+    char path[PATH_MAX];
+    struct stat s;
+    gen_pathname(io->path, path, i);
+    if (stat(path, &s) != 0) {
+      continue;
+    }
+    usage += s.st_size;
+  }
+
+  return usage;
+}
+
 /** mmap abstraction **/
 
 static size_t mmap_size = 0;
-------------- next part --------------
HTML����������������������������...
下载 



More information about the Groonga-commit mailing list
Back to archive index