Compare commits
3 Commits
b6e24d0548
...
e9e33883bf
| Author | SHA1 | Date |
|---|---|---|
|
|
e9e33883bf | |
|
|
318640572f | |
|
|
f6e2de5668 |
|
|
@ -2,8 +2,8 @@
|
|||
%define CommitVersion %(echo $COMMIT_VERSION)
|
||||
|
||||
Name: libserverframe
|
||||
Version: 1.2.5
|
||||
Release: 1%{?dist}
|
||||
Version: 1.2.6
|
||||
Release: 3%{?dist}
|
||||
Summary: network framework library
|
||||
License: AGPL v3.0
|
||||
Group: Arch/Tech
|
||||
|
|
@ -12,9 +12,9 @@ Source: http://github.com/happyfish100/libserverframe/%{name}-%{version}.tar.gz
|
|||
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
BuildRequires: libfastcommon-devel >= 1.0.75
|
||||
BuildRequires: libfastcommon-devel >= 1.0.76
|
||||
Requires: %__cp %__mv %__chmod %__grep %__mkdir %__install %__id
|
||||
Requires: libfastcommon >= 1.0.75
|
||||
Requires: libfastcommon >= 1.0.76
|
||||
|
||||
%description
|
||||
common framework library
|
||||
|
|
|
|||
|
|
@ -247,6 +247,9 @@ int sf_binlog_writer_notify_exit(SFBinlogWriterInfo *writer);
|
|||
#define sf_binlog_writer_set_flags(writer, flags) \
|
||||
sf_file_writer_set_flags(&(writer)->fw, flags)
|
||||
|
||||
#define sf_binlog_writer_set_write_done_callback(writer, callback, args) \
|
||||
sf_file_writer_set_write_done_callback(&(writer)->fw, callback, args)
|
||||
|
||||
#define sf_binlog_writer_get_last_version_ex(writer, log_level) \
|
||||
sf_file_writer_get_last_version_ex(&(writer)->fw, log_level)
|
||||
|
||||
|
|
|
|||
|
|
@ -244,6 +244,11 @@ static int do_write_to_file(SFFileWriterInfo *writer,
|
|||
}
|
||||
|
||||
writer->file.size += len;
|
||||
if (writer->write_done_callback.func != NULL) {
|
||||
writer->write_done_callback.func(writer,
|
||||
writer->write_done_callback.args);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -422,6 +427,7 @@ int sf_file_writer_init(SFFileWriterInfo *writer, const char *data_path,
|
|||
writer->last_versions.pending = 0;
|
||||
writer->last_versions.done = 0;
|
||||
writer->flags = 0;
|
||||
sf_file_writer_set_write_done_callback(writer, NULL, NULL);
|
||||
if ((result=sf_binlog_buffer_init(&writer->
|
||||
binlog_buffer, buffer_size)) != 0)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -30,6 +30,11 @@
|
|||
#define SF_BINLOG_FILE_PREFIX "binlog"
|
||||
#define SF_BINLOG_FILE_EXT_FMT ".%06d"
|
||||
|
||||
struct sf_file_writer_info;
|
||||
|
||||
typedef void (*sf_file_write_done_callback)(
|
||||
struct sf_file_writer_info *writer, void *args);
|
||||
|
||||
typedef struct sf_file_writer_info {
|
||||
struct {
|
||||
const char *data_path;
|
||||
|
|
@ -60,6 +65,12 @@ typedef struct sf_file_writer_info {
|
|||
int64_t pending;
|
||||
volatile int64_t done;
|
||||
} last_versions;
|
||||
|
||||
struct {
|
||||
sf_file_write_done_callback func;
|
||||
void *args;
|
||||
} write_done_callback;
|
||||
|
||||
} SFFileWriterInfo;
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
|
@ -103,6 +114,14 @@ static inline void sf_file_writer_set_call_fsync(
|
|||
writer->cfg.call_fsync = call_fsync;
|
||||
}
|
||||
|
||||
static inline void sf_file_writer_set_write_done_callback (
|
||||
SFFileWriterInfo *writer, sf_file_write_done_callback callback,
|
||||
void *args)
|
||||
{
|
||||
writer->write_done_callback.func = callback;
|
||||
writer->write_done_callback.args = args;
|
||||
}
|
||||
|
||||
static inline int64_t sf_file_writer_get_last_version_ex(
|
||||
SFFileWriterInfo *writer, const int log_level)
|
||||
{
|
||||
|
|
|
|||
Loading…
Reference in New Issue