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
56 unsigned (*digest_parse)(llcas_cas_t, const char *printed_digest,
57 uint8_t *bytes, size_t bytes_size, char **error);
58
60 char **error);
61
62 char *(*cas_get_hash_schema_name)(llcas_cas_t);
63
65 char **error);
66
68
70 bool globally, char **error);
71
74 char **error);
78
80 const llcas_objectid_t *refs, size_t refs_count,
81 llcas_objectid_t *, char **error);
82
83 bool (*cas_store_from_filepath)(llcas_cas_t, const char *filepath,
84 llcas_objectid_t *, char **error);
85
87
90
92
94 size_t index);
95
98 const char *filepath,
99 char **error);
100
101 /*===--------------------------------------------------------------------===*\
102 |* Action cache API
103 \*===--------------------------------------------------------------------===*/
104
106 llcas_digest_t key,
107 llcas_objectid_t *p_value,
108 bool globally,
109 char **error);
110
112 bool globally, void *ctx_cb,
115
117 llcas_objectid_t value, bool globally,
118 char **error);
119
121 llcas_objectid_t value,
122 bool globally, void *ctx_cb,
125
127};
128
129#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_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:86
bool(* cas_store_from_filepath)(llcas_cas_t, const char *filepath, llcas_objectid_t *, char **error)
Definition PluginAPI.h:83
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:79
size_t(* object_refs_get_count)(llcas_cas_t, llcas_object_refs_t)
Definition PluginAPI.h:91
bool(* digest_print)(llcas_cas_t, llcas_digest_t, char **printed_id, char **error)
Definition PluginAPI.h:59
llcas_lookup_result_t(* cas_contains_object)(llcas_cas_t, llcas_objectid_t, bool globally, char **error)
Definition PluginAPI.h:69
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:72
bool(* cas_options_set_option)(llcas_cas_options_t, const char *name, const char *value, char **error)
Definition PluginAPI.h:40
bool(* actioncache_validate)(llcas_cas_t, char **error)
Definition PluginAPI.h:126
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:67
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:111
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:75
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:88
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
bool(* actioncache_put_for_digest)(llcas_cas_t, llcas_digest_t key, llcas_objectid_t value, bool globally, char **error)
Definition PluginAPI.h:116
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:105
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:120
bool(* cas_set_ondisk_size_limit)(llcas_cas_t, int64_t size_limit, char **error)
Definition PluginAPI.h:49
bool(* cas_get_objectid)(llcas_cas_t, llcas_digest_t, llcas_objectid_t *, char **error)
Definition PluginAPI.h:64
llcas_objectid_t(* object_refs_get_id)(llcas_cas_t, llcas_object_refs_t, size_t index)
Definition PluginAPI.h:93
unsigned(* digest_parse)(llcas_cas_t, const char *printed_digest, uint8_t *bytes, size_t bytes_size, char **error)
Definition PluginAPI.h:56
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:96
A loaded CAS object.
Object references for a CAS object.
Identifier for a CAS object.