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, \
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)

View File

@ -44,29 +44,39 @@
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;

View File

@ -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);