mirror of
https://github.com/ostreedev/ostree.git
synced 2024-10-26 17:25:36 +03:00
deltas: Stub out a few more opcodes
This commit is contained in:
parent
8fb29c9e5d
commit
7aea18cf0d
@ -135,6 +135,7 @@ typedef enum {
|
||||
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_SET_READ_SOURCE = 'R',
|
||||
OSTREE_STATIC_DELTA_OP_CLOSE = 'c'
|
||||
} OstreeStaticDeltaOpCode;
|
||||
|
||||
|
@ -83,6 +83,10 @@ typedef struct {
|
||||
GError **error);
|
||||
|
||||
OPPROTO(open_splice_and_close)
|
||||
OPPROTO(open)
|
||||
OPPROTO(write)
|
||||
OPPROTO(set_read_source)
|
||||
OPPROTO(close)
|
||||
#undef OPPROTO
|
||||
|
||||
static gboolean
|
||||
@ -223,6 +227,22 @@ _ostree_static_delta_part_execute_raw (OstreeRepo *repo,
|
||||
if (!dispatch_open_splice_and_close (repo, state, cancellable, error))
|
||||
goto out;
|
||||
break;
|
||||
case OSTREE_STATIC_DELTA_OP_OPEN:
|
||||
if (!dispatch_open (repo, state, cancellable, error))
|
||||
goto out;
|
||||
break;
|
||||
case OSTREE_STATIC_DELTA_OP_WRITE:
|
||||
if (!dispatch_write (repo, state, cancellable, error))
|
||||
goto out;
|
||||
break;
|
||||
case OSTREE_STATIC_DELTA_OP_SET_READ_SOURCE:
|
||||
if (!dispatch_set_read_source (repo, state, cancellable, error))
|
||||
goto out;
|
||||
break;
|
||||
case OSTREE_STATIC_DELTA_OP_CLOSE:
|
||||
if (!dispatch_close (repo, state, cancellable, error))
|
||||
goto out;
|
||||
break;
|
||||
default:
|
||||
g_set_error (error, G_IO_ERROR, G_IO_ERROR_INVALID_ARGUMENT,
|
||||
"Unknown opcode %u at offset %u", opcode, n_executed);
|
||||
@ -533,3 +553,72 @@ dispatch_open_splice_and_close (OstreeRepo *repo,
|
||||
g_prefix_error (error, "opcode open-splice-and-close: ");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
dispatch_open (OstreeRepo *repo,
|
||||
StaticDeltaExecutionState *state,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
|
||||
if (!open_output_target (state, cancellable, error))
|
||||
goto out;
|
||||
|
||||
ret = TRUE;
|
||||
out:
|
||||
if (!ret)
|
||||
g_prefix_error (error, "opcode open: ");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
dispatch_write (OstreeRepo *repo,
|
||||
StaticDeltaExecutionState *state,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
ret = TRUE;
|
||||
/* out: */
|
||||
if (!ret)
|
||||
g_prefix_error (error, "opcode open-splice-and-close: ");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
dispatch_set_read_source (OstreeRepo *repo,
|
||||
StaticDeltaExecutionState *state,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
ret = TRUE;
|
||||
/* out: */
|
||||
if (!ret)
|
||||
g_prefix_error (error, "opcode open-splice-and-close: ");
|
||||
return ret;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
dispatch_close (OstreeRepo *repo,
|
||||
StaticDeltaExecutionState *state,
|
||||
GCancellable *cancellable,
|
||||
GError **error)
|
||||
{
|
||||
gboolean ret = FALSE;
|
||||
|
||||
g_assert_not_reached ();
|
||||
|
||||
ret = TRUE;
|
||||
/* out: */
|
||||
if (!ret)
|
||||
g_prefix_error (error, "opcode open-splice-and-close: ");
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user