32 lines
1.1 KiB
C
32 lines
1.1 KiB
C
|
|
#include "amduat/asl/store.h"
|
||
|
|
|
||
|
|
void amduat_asl_store_init(amduat_asl_store_t *store,
|
||
|
|
amduat_asl_store_config_t config,
|
||
|
|
amduat_asl_store_ops_t ops,
|
||
|
|
void *ctx) {
|
||
|
|
if (store == NULL) {
|
||
|
|
return;
|
||
|
|
}
|
||
|
|
store->config = config;
|
||
|
|
store->ops = ops;
|
||
|
|
store->ctx = ctx;
|
||
|
|
}
|
||
|
|
|
||
|
|
amduat_asl_store_error_t amduat_asl_store_put(amduat_asl_store_t *store,
|
||
|
|
amduat_artifact_t artifact,
|
||
|
|
amduat_reference_t *out_ref) {
|
||
|
|
if (store == NULL || store->ops.put == NULL) {
|
||
|
|
return AMDUAT_ASL_STORE_ERR_UNSUPPORTED;
|
||
|
|
}
|
||
|
|
return store->ops.put(store->ctx, artifact, out_ref);
|
||
|
|
}
|
||
|
|
|
||
|
|
amduat_asl_store_error_t amduat_asl_store_get(amduat_asl_store_t *store,
|
||
|
|
amduat_reference_t ref,
|
||
|
|
amduat_artifact_t *out_artifact) {
|
||
|
|
if (store == NULL || store->ops.get == NULL) {
|
||
|
|
return AMDUAT_ASL_STORE_ERR_UNSUPPORTED;
|
||
|
|
}
|
||
|
|
return store->ops.get(store->ctx, ref, out_artifact);
|
||
|
|
}
|