mrm_shared_cache_builder.h [plain text]
#ifndef mrm_shared_cache_builder_hpp
#define mrm_shared_cache_builder_hpp
#include <Availability.h>
#include <stdint.h>
#ifdef __cplusplus
extern "C" {
#endif
enum Platform {
unknown = 0,
macOS = 1, iOS = 2, tvOS = 3, watchOS = 4, bridgeOS = 5, iOSMac = 6, iOS_simulator = 7, tvOS_simulator = 8, watchOS_simulator = 9 };
enum Disposition
{
Unknown = 0,
InternalDevelopment = 1,
Customer = 2,
InternalMinDevelopment = 3
};
enum FileFlags
{
NoFlags = 0,
MustBeInCache = 1,
ShouldBeExcludedFromCacheIfUnusedLeaf = 2,
RequiredClosure = 3,
DylibOrderFile = 100,
DirtyDataOrderFile = 101
};
struct BuildOptions_v1
{
uint64_t version; const char * updateName; const char * deviceName;
enum Disposition disposition; enum Platform platform; const char ** archs;
uint64_t numArchs;
bool verboseDiagnostics;
bool isLocallyBuiltCache;
};
struct BuildResult {
uint64_t version; const char* loggingPrefix;
const char ** warnings;
uint64_t numWarnings;
const char ** errors;
uint64_t numErrors;
const char* sharedCachePath;
const char* cdHash;
};
struct FileResult {
const char* path;
const uint8_t* data; uint64_t size;
};
struct SharedCacheBuilder;
__API_AVAILABLE(macos(10.12))
struct SharedCacheBuilder* createSharedCacheBuilder(const struct BuildOptions_v1* options);
__API_AVAILABLE(macos(10.12))
bool addFile(struct SharedCacheBuilder* builder, const char* path, uint8_t* data, uint64_t size, enum FileFlags fileFlags);
__API_AVAILABLE(macos(10.12))
bool addSymlink(struct SharedCacheBuilder* builder, const char* fromPath, const char* toPath);
__API_AVAILABLE(macos(10.12))
bool runSharedCacheBuilder(struct SharedCacheBuilder* builder);
__API_AVAILABLE(macos(10.12))
uint64_t getErrorCount(const struct SharedCacheBuilder* builder);
__API_AVAILABLE(macos(10.12))
const char* getError(const struct SharedCacheBuilder* builder, uint64_t errorIndex);
__API_AVAILABLE(macos(10.12))
uint64_t getCacheResultCount(const struct SharedCacheBuilder* builder);
__API_AVAILABLE(macos(10.12))
void getCacheResult(struct SharedCacheBuilder* builder, uint64_t cacheIndex, struct BuildResult* result);
__API_AVAILABLE(macos(10.12))
uint64_t getFileResultCount(const struct SharedCacheBuilder* builder);
__API_AVAILABLE(macos(10.12))
void getFileResult(struct SharedCacheBuilder* builder, uint64_t fileIndex, struct FileResult* result);
__API_AVAILABLE(macos(10.12))
void destroySharedCacheBuilder(struct SharedCacheBuilder* builder);
#ifdef __cplusplus
}
#endif
#endif