From d129c6151e8b6fe099c2a7ac58ab67408eb8db2f Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Tue, 8 Mar 2022 17:13:29 +0800 Subject: [PATCH] add function sf_binlog_writer_get_index_filename --- src/sf_binlog_writer.h | 5 +++++ src/sf_file_writer.c | 32 +++++++++++++++++++++----------- src/sf_file_writer.h | 3 +++ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/src/sf_binlog_writer.h b/src/sf_binlog_writer.h index 85923b6..4834118 100644 --- a/src/sf_binlog_writer.h +++ b/src/sf_binlog_writer.h @@ -191,6 +191,11 @@ static inline SFBinlogWriterBuffer *sf_binlog_writer_alloc_versioned_buffer_ex( sf_file_writer_get_filename(data_path, subdir_name, \ binlog_index, filename, size) +#define sf_binlog_writer_get_index_filename(data_path, \ + subdir_name, filename, size) \ + sf_file_writer_get_index_filename(data_path, \ + subdir_name, filename, size) + #define sf_binlog_writer_set_binlog_index(writer, binlog_index) \ sf_file_writer_set_binlog_index(&(writer)->fw, binlog_index) diff --git a/src/sf_file_writer.c b/src/sf_file_writer.c index 88f893c..20a07b7 100644 --- a/src/sf_file_writer.c +++ b/src/sf_file_writer.c @@ -40,33 +40,43 @@ #define BINLOG_INDEX_ITEM_CURRENT_COMPRESS "current_compress" #define GET_BINLOG_FILENAME(writer) \ - sprintf(writer->file.name, "%s/%s/%s"SF_BINLOG_FILE_EXT_FMT, \ + sprintf(writer->file.name, "%s/%s/%s"SF_BINLOG_FILE_EXT_FMT, \ writer->cfg.data_path, writer->cfg.subdir_name, \ SF_BINLOG_FILE_PREFIX, writer->binlog.index) +#define GET_BINLOG_INDEX_FILENAME_EX(data_path, subdir_name, filename, size) \ + snprintf(filename, size, "%s/%s/%s", data_path, \ + subdir_name, BINLOG_INDEX_FILENAME) + +#define GET_BINLOG_INDEX_FILENAME(writer, filename, size) \ + GET_BINLOG_INDEX_FILENAME_EX(writer->cfg.data_path, \ + writer->cfg.subdir_name, filename, size) + +const char *sf_file_writer_get_index_filename(const char *data_path, + const char *subdir_name, char *filename, const int size) +{ + GET_BINLOG_INDEX_FILENAME_EX(data_path, subdir_name, filename, size); + return filename; +} + static int write_to_binlog_index_file(SFFileWriterInfo *writer) { - char full_filename[PATH_MAX]; + char filename[PATH_MAX]; char buff[256]; int result; int len; - snprintf(full_filename, sizeof(full_filename), "%s/%s/%s", - writer->cfg.data_path, writer->cfg.subdir_name, - BINLOG_INDEX_FILENAME); - + GET_BINLOG_INDEX_FILENAME(writer, filename, sizeof(filename)); len = sprintf(buff, "%s=%d\n" "%s=%d\n", BINLOG_INDEX_ITEM_CURRENT_WRITE, writer->binlog.index, BINLOG_INDEX_ITEM_CURRENT_COMPRESS, writer->binlog.compress_index); - if ((result=safeWriteToFile(full_filename, buff, len)) != 0) { + if ((result=safeWriteToFile(filename, buff, len)) != 0) { logError("file: "__FILE__", line: %d, " - "write to file \"%s\" fail, " - "errno: %d, error info: %s", - __LINE__, full_filename, - result, STRERROR(result)); + "write to file \"%s\" fail, errno: %d, error info: %s", + __LINE__, filename, result, STRERROR(result)); } return result; diff --git a/src/sf_file_writer.h b/src/sf_file_writer.h index 74a7fca..e0b0634 100644 --- a/src/sf_file_writer.h +++ b/src/sf_file_writer.h @@ -117,6 +117,9 @@ static inline const char *sf_file_writer_get_filename( return filename; } +const char *sf_file_writer_get_index_filename(const char *data_path, + const char *subdir_name, char *filename, const int size); + int sf_file_writer_set_binlog_index(SFFileWriterInfo *writer, const int binlog_index);