]>
Commit | Line | Data |
---|---|---|
1 | /* SPDX-License-Identifier: LGPL-2.1-or-later */ | |
2 | #pragma once | |
3 | ||
4 | #include "journal-file.h" | |
5 | ||
6 | typedef struct RemoteServer RemoteServer; | |
7 | ||
8 | typedef struct Writer { | |
9 | JournalFile *journal; | |
10 | JournalMetrics metrics; | |
11 | char *output; /* directory where we write, for vacuuming */ | |
12 | ||
13 | MMapCache *mmap; | |
14 | RemoteServer *server; | |
15 | char *hashmap_key; | |
16 | ||
17 | uint64_t seqnum; | |
18 | ||
19 | unsigned n_ref; | |
20 | } Writer; | |
21 | ||
22 | int writer_new(RemoteServer *server, Writer **ret); | |
23 | Writer* writer_ref(Writer *w); | |
24 | Writer* writer_unref(Writer *w); | |
25 | ||
26 | DEFINE_TRIVIAL_CLEANUP_FUNC(Writer*, writer_unref); | |
27 | ||
28 | int writer_write(Writer *s, | |
29 | const struct iovec_wrapper *iovw, | |
30 | const dual_timestamp *ts, | |
31 | const sd_id128_t *boot_id, | |
32 | JournalFileFlags file_flags); | |
33 | ||
34 | typedef enum JournalWriteSplitMode { | |
35 | JOURNAL_WRITE_SPLIT_NONE, | |
36 | JOURNAL_WRITE_SPLIT_HOST, | |
37 | _JOURNAL_WRITE_SPLIT_MAX, | |
38 | _JOURNAL_WRITE_SPLIT_INVALID = -EINVAL, | |
39 | } JournalWriteSplitMode; |