add function sf_binlog_writer_get_index_filename

recovery_and_balance V1.1.13
YuQing 2022-03-08 17:13:29 +08:00
parent 25ca590416
commit d129c6151e
3 changed files with 29 additions and 11 deletions

View File

@ -191,6 +191,11 @@ static inline SFBinlogWriterBuffer *sf_binlog_writer_alloc_versioned_buffer_ex(
sf_file_writer_get_filename(data_path, subdir_name, \ sf_file_writer_get_filename(data_path, subdir_name, \
binlog_index, filename, size) 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) \ #define sf_binlog_writer_set_binlog_index(writer, binlog_index) \
sf_file_writer_set_binlog_index(&(writer)->fw, binlog_index) sf_file_writer_set_binlog_index(&(writer)->fw, binlog_index)

View File

@ -44,29 +44,39 @@
writer->cfg.data_path, writer->cfg.subdir_name, \ writer->cfg.data_path, writer->cfg.subdir_name, \
SF_BINLOG_FILE_PREFIX, writer->binlog.index) 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) static int write_to_binlog_index_file(SFFileWriterInfo *writer)
{ {
char full_filename[PATH_MAX]; char filename[PATH_MAX];
char buff[256]; char buff[256];
int result; int result;
int len; int len;
snprintf(full_filename, sizeof(full_filename), "%s/%s/%s", GET_BINLOG_INDEX_FILENAME(writer, filename, sizeof(filename));
writer->cfg.data_path, writer->cfg.subdir_name,
BINLOG_INDEX_FILENAME);
len = sprintf(buff, "%s=%d\n" len = sprintf(buff, "%s=%d\n"
"%s=%d\n", "%s=%d\n",
BINLOG_INDEX_ITEM_CURRENT_WRITE, BINLOG_INDEX_ITEM_CURRENT_WRITE,
writer->binlog.index, writer->binlog.index,
BINLOG_INDEX_ITEM_CURRENT_COMPRESS, BINLOG_INDEX_ITEM_CURRENT_COMPRESS,
writer->binlog.compress_index); writer->binlog.compress_index);
if ((result=safeWriteToFile(full_filename, buff, len)) != 0) { if ((result=safeWriteToFile(filename, buff, len)) != 0) {
logError("file: "__FILE__", line: %d, " logError("file: "__FILE__", line: %d, "
"write to file \"%s\" fail, " "write to file \"%s\" fail, errno: %d, error info: %s",
"errno: %d, error info: %s", __LINE__, filename, result, STRERROR(result));
__LINE__, full_filename,
result, STRERROR(result));
} }
return result; return result;

View File

@ -117,6 +117,9 @@ static inline const char *sf_file_writer_get_filename(
return 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, int sf_file_writer_set_binlog_index(SFFileWriterInfo *writer,
const int binlog_index); const int binlog_index);