parent
25ca590416
commit
d129c6151e
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,33 +40,43 @@
|
||||||
#define BINLOG_INDEX_ITEM_CURRENT_COMPRESS "current_compress"
|
#define BINLOG_INDEX_ITEM_CURRENT_COMPRESS "current_compress"
|
||||||
|
|
||||||
#define GET_BINLOG_FILENAME(writer) \
|
#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, \
|
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;
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue