LLVM 24.0.0git
PluginAPI.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8///
9/// \file
10/// Defines \c llcas_functions_t, the table of function pointers that is
11/// populated by looking up the \c llcas_* symbols of a loaded CAS plugin.
12///
13//===----------------------------------------------------------------------===//
14
15#ifndef LLVM_LIB_CAS_PLUGINAPI_H
16#define LLVM_LIB_CAS_PLUGINAPI_H
17
19
20/// See documentation in \c "llvm-c/CAS/PluginAPI_functions.h" for how these
21/// functions are used.
23 void (*get_plugin_version)(unsigned *major, unsigned *minor);
24
25 void (*string_dispose)(char *);
26
28
30
32
34
36 unsigned minor);
37
39
41 const char *value, char **error);
42
44
46
48
50 char **error);
51
53
54 bool (*cas_validate)(llcas_cas_t, bool check_hash, char **error);
55
57 bool check_hash,
58 bool force, char **error);
59
61 char **error);
62
63 unsigned (*digest_parse)(llcas_cas_t, const char *printed_digest,
64 uint8_t *bytes, size_t bytes_size, char **error);
65
67 char **error);
68
69 char *(*cas_get_hash_schema_name)(llcas_cas_t);
70
72 char **error);
73
75
77 bool globally, char **error);
78
81 char **error);
85
87 const llcas_objectid_t *refs, size_t refs_count,
88 llcas_objectid_t *, char **error);
89
90 bool (*cas_store_from_filepath)(llcas_cas_t, const char *filepath,
91 llcas_objectid_t *, char **error);
92
94
97
100
102
104
106 size_t index);
107
110 const char *filepath,
111 char **error);
112
113 /*===--------------------------------------------------------------------===*\
114 |* Action cache API
115 \*===--------------------------------------------------------------------===*/
116
118 llcas_digest_t key,
119 llcas_objectid_t *p_value,
120 bool globally,
121 char **error);
122
124 bool globally, void *ctx_cb,
127
129 llcas_objectid_t value, bool globally,
130 char **error);
131
133 llcas_objectid_t value,
134 bool globally, void *ctx_cb,
137
139};
140
141#endif // LLVM_LIB_CAS_PLUGINAPI_H
struct llcas_cas_options_s * llcas_cas_options_t
struct llcas_cancellable_s * llcas_cancellable_t
void(* llcas_actioncache_get_cb)(void *ctx, llcas_lookup_result_t, llcas_objectid_t, char *error)
Callback for llcas_actioncache_get_for_digest_async.
struct llcas_cas_s * llcas_cas_t
llcas_validation_result_t
Return values for llcas_cas_validate_if_needed and llcas_cas_recover_ondisk_data.
llcas_lookup_result_t
Return values for a load operation.
void(* llcas_cas_load_object_cb)(void *ctx, llcas_lookup_result_t, llcas_loaded_object_t, char *error)
Callback for llcas_cas_load_object_async.
void(* llcas_actioncache_put_cb)(void *ctx, bool failed, char *error)
Callback for llcas_actioncache_put_for_digest_async.
static const char * name
#define error(X)
Data buffer for stored CAS objects.
Digest hash bytes.
See documentation in "llvm-c/CAS/PluginAPI_functions.h" for how these functions are used.
Definition PluginAPI.h:22
llcas_data_t(* loaded_object_get_data)(llcas_cas_t, llcas_loaded_object_t)
Definition PluginAPI.h:93
bool(* cas_store_from_filepath)(llcas_cas_t, const char *filepath, llcas_objectid_t *, char **error)
Definition PluginAPI.h:90
void(* string_dispose)(char *)
Definition PluginAPI.h:25
bool(* cas_store_object)(llcas_cas_t, llcas_data_t, const llcas_objectid_t *refs, size_t refs_count, llcas_objectid_t *, char **error)
Definition PluginAPI.h:86
size_t(* object_refs_get_count)(llcas_cas_t, llcas_object_refs_t)
Definition PluginAPI.h:103
bool(* digest_print)(llcas_cas_t, llcas_digest_t, char **printed_id, char **error)
Definition PluginAPI.h:66
llcas_lookup_result_t(* cas_contains_object)(llcas_cas_t, llcas_objectid_t, bool globally, char **error)
Definition PluginAPI.h:76
int64_t(* cas_get_ondisk_size)(llcas_cas_t, char **error)
Definition PluginAPI.h:47
void(* cas_dispose)(llcas_cas_t)
Definition PluginAPI.h:45
llcas_lookup_result_t(* cas_load_object)(llcas_cas_t, llcas_objectid_t, llcas_loaded_object_t *, char **error)
Definition PluginAPI.h:79
bool(* cas_options_set_option)(llcas_cas_options_t, const char *name, const char *value, char **error)
Definition PluginAPI.h:40
void(* standalone_data_dispose)(llcas_data_t)
Definition PluginAPI.h:101
bool(* actioncache_validate)(llcas_cas_t, char **error)
Definition PluginAPI.h:138
bool(* cas_validate)(llcas_cas_t, bool check_hash, char **error)
Definition PluginAPI.h:54
llcas_digest_t(* objectid_get_digest)(llcas_cas_t, llcas_objectid_t)
Definition PluginAPI.h:74
llcas_validation_result_t(* cas_validate_if_needed)(llcas_cas_options_t, bool check_hash, bool force, char **error)
Definition PluginAPI.h:56
void(* actioncache_get_for_digest_async)(llcas_cas_t, llcas_digest_t key, bool globally, void *ctx_cb, llcas_actioncache_get_cb, llcas_cancellable_t *)
Definition PluginAPI.h:123
void(* cas_load_object_async)(llcas_cas_t, llcas_objectid_t, void *ctx_cb, llcas_cas_load_object_cb, llcas_cancellable_t *)
Definition PluginAPI.h:82
llcas_cas_options_t(* cas_options_create)(void)
Definition PluginAPI.h:31
void(* cancellable_dispose)(llcas_cancellable_t)
Definition PluginAPI.h:29
void(* cancellable_cancel)(llcas_cancellable_t)
Definition PluginAPI.h:27
llcas_object_refs_t(* loaded_object_get_refs)(llcas_cas_t, llcas_loaded_object_t)
Definition PluginAPI.h:95
bool(* cas_prune_ondisk_data)(llcas_cas_t, char **error)
Definition PluginAPI.h:52
void(* cas_options_set_ondisk_path)(llcas_cas_options_t, const char *path)
Definition PluginAPI.h:38
void(* cas_options_set_client_version)(llcas_cas_options_t, unsigned major, unsigned minor)
Definition PluginAPI.h:35
llcas_cas_t(* cas_create)(llcas_cas_options_t, char **error)
Definition PluginAPI.h:43
llcas_validation_result_t(* cas_recover_ondisk_data)(llcas_cas_options_t, char **error)
Definition PluginAPI.h:60
bool(* actioncache_put_for_digest)(llcas_cas_t, llcas_digest_t key, llcas_objectid_t value, bool globally, char **error)
Definition PluginAPI.h:128
llcas_lookup_result_t(* actioncache_get_for_digest)(llcas_cas_t, llcas_digest_t key, llcas_objectid_t *p_value, bool globally, char **error)
Definition PluginAPI.h:117
void(* cas_options_dispose)(llcas_cas_options_t)
Definition PluginAPI.h:33
void(* actioncache_put_for_digest_async)(llcas_cas_t, llcas_digest_t key, llcas_objectid_t value, bool globally, void *ctx_cb, llcas_actioncache_put_cb, llcas_cancellable_t *)
Definition PluginAPI.h:132
bool(* cas_set_ondisk_size_limit)(llcas_cas_t, int64_t size_limit, char **error)
Definition PluginAPI.h:49
llcas_data_t(* loaded_object_get_standalone_data)(llcas_cas_t, llcas_loaded_object_t)
Definition PluginAPI.h:98
bool(* cas_get_objectid)(llcas_cas_t, llcas_digest_t, llcas_objectid_t *, char **error)
Definition PluginAPI.h:71
llcas_objectid_t(* object_refs_get_id)(llcas_cas_t, llcas_object_refs_t, size_t index)
Definition PluginAPI.h:105
unsigned(* digest_parse)(llcas_cas_t, const char *printed_digest, uint8_t *bytes, size_t bytes_size, char **error)
Definition PluginAPI.h:63
void(* get_plugin_version)(unsigned *major, unsigned *minor)
Definition PluginAPI.h:23
bool(* loaded_object_export_data_to_filepath)(llcas_cas_t, llcas_loaded_object_t, const char *filepath, char **error)
Definition PluginAPI.h:108
A loaded CAS object.
Object references for a CAS object.
Identifier for a CAS object.