diff options
author | Colin Walters <walters@verbum.org> | 2015-01-29 01:03:55 -0500 |
---|---|---|
committer | Colin Walters <walters@verbum.org> | 2015-02-16 10:10:35 -0500 |
commit | d749932f6b00ebcf3f79100f1a9ad9f2a5f1fc98 (patch) | |
tree | e643021b9ee9df5bfd78fb8c0f184a7fb355980d /src/libostree/ostree-repo-static-delta-private.h | |
parent | 513d47a90cb076e6e73eb92053ed5d73d6d3dd16 (diff) | |
download | ostree-d749932f6b00ebcf3f79100f1a9ad9f2a5f1fc98.tar.gz |
deltas: Rework format to allow streaming
There's still some silliness here, but there is now only one opcode
open-splice-and-close, that writes a single chunk from the payload.
This is really all we need for metadata, and small content objects are
also fine with this.
We get some deduplication between content objects by creating a
dictionary for (uid,gid,mode) tuples and xattrs.
This still keeps the operation/payload code in, so we could do
rollsums in a future update easily.
Diffstat (limited to 'src/libostree/ostree-repo-static-delta-private.h')
-rw-r--r-- | src/libostree/ostree-repo-static-delta-private.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/libostree/ostree-repo-static-delta-private.h b/src/libostree/ostree-repo-static-delta-private.h index 4c0f8c14..0661787f 100644 --- a/src/libostree/ostree-repo-static-delta-private.h +++ b/src/libostree/ostree-repo-static-delta-private.h @@ -34,10 +34,12 @@ G_BEGIN_DECLS * * y compression type (0: none, 'x': lzma) * --- - * ay data source + * a(uuu) modes + * aa(ayay) xattrs + * ay raw data source * ay operations */ -#define OSTREE_STATIC_DELTA_PART_PAYLOAD_FORMAT_V0 "(ayay)" +#define OSTREE_STATIC_DELTA_PART_PAYLOAD_FORMAT_V0 "(a(uuu)aa(ayay)ayay)" /** * OSTREE_STATIC_DELTA_META_ENTRY_FORMAT: @@ -130,9 +132,10 @@ gboolean _ostree_static_delta_part_execute_finish (OstreeRepo *repo, GError **error); typedef enum { - OSTREE_STATIC_DELTA_OP_WRITE = 1, - OSTREE_STATIC_DELTA_OP_GUNZIP = 2, - OSTREE_STATIC_DELTA_OP_CLOSE = 3 + OSTREE_STATIC_DELTA_OP_OPEN_SPLICE_AND_CLOSE = 'S', + OSTREE_STATIC_DELTA_OP_OPEN = 'o', + OSTREE_STATIC_DELTA_OP_WRITE = 'w', + OSTREE_STATIC_DELTA_OP_CLOSE = 'c' } OstreeStaticDeltaOpCode; gboolean |