]> git.ipfire.org Git - thirdparty/systemd.git/blob - src/journal-remote/journal-remote-write.h
4c84bb2fac7225548c5861e255a7df9a0ccb6f4c
[thirdparty/systemd.git] / src / journal-remote / journal-remote-write.h
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;