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����������������������������...下载