2017-11-18 17:09:20 +01:00
|
|
|
/* SPDX-License-Identifier: LGPL-2.1+ */
|
2016-02-16 20:05:15 +01:00
|
|
|
#pragma once
|
|
|
|
|
2012-11-01 23:08:03 +01:00
|
|
|
#include "journal-file.h"
|
2016-11-06 03:40:54 +01:00
|
|
|
#include "journal-importer.h"
|
2012-11-01 23:08:03 +01:00
|
|
|
|
2014-07-02 06:15:37 +02:00
|
|
|
typedef struct RemoteServer RemoteServer;
|
|
|
|
|
2012-11-01 23:08:03 +01:00
|
|
|
typedef struct Writer {
|
|
|
|
JournalFile *journal;
|
|
|
|
JournalMetrics metrics;
|
2014-07-02 06:15:37 +02:00
|
|
|
|
2012-11-01 23:08:03 +01:00
|
|
|
MMapCache *mmap;
|
2014-07-02 06:15:37 +02:00
|
|
|
RemoteServer *server;
|
|
|
|
char *hashmap_key;
|
|
|
|
|
2012-11-01 23:08:03 +01:00
|
|
|
uint64_t seqnum;
|
2014-07-02 06:15:37 +02:00
|
|
|
|
2018-08-27 06:48:04 +02:00
|
|
|
unsigned n_ref;
|
2012-11-01 23:08:03 +01:00
|
|
|
} Writer;
|
|
|
|
|
2014-07-02 06:15:37 +02:00
|
|
|
Writer* writer_new(RemoteServer* server);
|
|
|
|
Writer* writer_ref(Writer *w);
|
|
|
|
Writer* writer_unref(Writer *w);
|
|
|
|
|
|
|
|
DEFINE_TRIVIAL_CLEANUP_FUNC(Writer*, writer_unref);
|
|
|
|
|
2012-11-01 23:08:03 +01:00
|
|
|
int writer_write(Writer *s,
|
|
|
|
struct iovec_wrapper *iovw,
|
|
|
|
dual_timestamp *ts,
|
2019-03-14 19:24:52 +01:00
|
|
|
sd_id128_t *boot_id,
|
2012-11-01 23:08:03 +01:00
|
|
|
bool compress,
|
|
|
|
bool seal);
|
2014-06-22 19:36:31 +02:00
|
|
|
|
|
|
|
typedef enum JournalWriteSplitMode {
|
|
|
|
JOURNAL_WRITE_SPLIT_NONE,
|
|
|
|
JOURNAL_WRITE_SPLIT_HOST,
|
|
|
|
_JOURNAL_WRITE_SPLIT_MAX,
|
|
|
|
_JOURNAL_WRITE_SPLIT_INVALID = -1
|
|
|
|
} JournalWriteSplitMode;
|