export function sf_file_writer_direct_write

use_iouring
YuQing 2025-03-15 10:10:01 +08:00
parent 7ee7e7b535
commit 3815c0b2ce
3 changed files with 15 additions and 4 deletions

View File

@ -257,7 +257,7 @@ static int do_write_to_file(SFFileWriterInfo *writer,
return 0;
}
static int check_write_to_file(SFFileWriterInfo *writer,
int sf_file_writer_direct_write(SFFileWriterInfo *writer,
char *buff, const int len)
{
int result;
@ -293,7 +293,7 @@ int sf_file_writer_flush(SFFileWriterInfo *writer)
return 0;
}
if ((result=check_write_to_file(writer, writer->
if ((result=sf_file_writer_direct_write(writer, writer->
binlog_buffer.buff, len)) == 0)
{
if (writer->flags & SF_FILE_WRITER_FLAGS_WANT_DONE_VERSION) {
@ -359,8 +359,8 @@ int sf_file_writer_deal_versioned_buffer(SFFileWriterInfo *writer,
}
}
if ((result=check_write_to_file(writer, buffer->buff,
buffer->length)) == 0)
if ((result=sf_file_writer_direct_write(writer, buffer->
buff, buffer->length)) == 0)
{
if (writer->flags & SF_FILE_WRITER_FLAGS_WANT_DONE_VERSION) {
writer->last_versions.pending = version;

View File

@ -84,6 +84,9 @@ int sf_file_writer_init(SFFileWriterInfo *writer, const char *data_path,
void sf_file_writer_destroy(SFFileWriterInfo *writer);
int sf_file_writer_direct_write(SFFileWriterInfo *writer,
char *buff, const int len);
int sf_file_writer_deal_versioned_buffer(SFFileWriterInfo *writer,
BufferInfo *buffer, const int64_t version);
@ -247,6 +250,13 @@ int sf_file_writer_set_binlog_start_index(SFFileWriterInfo *writer,
int sf_file_writer_set_binlog_write_index(SFFileWriterInfo *writer,
const int last_index);
static inline int sf_file_writer_rotate_file(SFFileWriterInfo *writer)
{
int last_index;
last_index = sf_file_writer_get_current_write_index(writer);
return sf_file_writer_set_binlog_write_index(writer, last_index + 1);
}
int sf_file_writer_get_last_lines(const char *data_path,
const char *subdir_name, const int current_write_index,
char *buff, const int buff_size, int *count, int *length);

View File

@ -44,6 +44,7 @@
#define SF_BINLOG_BUFFER_PRODUCER_DATA_LENGTH(bf) ((bf).data_end - (bf).buff)
#define SF_BINLOG_BUFFER_PRODUCER_BUFF_REMAIN(bf) ((bf).buff_end - (bf).data_end)
#define SF_BINLOG_BUFFER_CONSUMER_DATA_LENGTH(bf) ((bf).current - (bf).buff)
#define SF_BINLOG_BUFFER_CONSUMER_DATA_REMAIN(bf) ((bf).data_end - (bf).current)
typedef int (*sf_accept_done_callback)(struct fast_task_info *task,