24#ifndef __GUESTSTORECLIENTLIB_H__
25#define __GUESTSTORECLIENTLIB_H__
27#include "vm_basic_types.h"
29#define GUESTSTORE_LIB_ERR_LIST \
30 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_SUCCESS = 0, \
33 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_GENERIC, \
36 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_TLS, \
39 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_NOT_INITIALIZED, \
40 gsliberr.not.initialized, \
42 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_INVALID_PARAMETER, \
43 gsliberr.invalid.parameter, \
44 "Invalid parameter") \
45 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_NOT_ENOUGH_MEMORY, \
46 gsliberr.not.enough.memory, \
47 "Not enough memory") \
48 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CREATE_OUTPUT_FILE, \
49 gsliberr.create.output.file, \
50 "Create output file error") \
51 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_WRITE_OUTPUT_FILE, \
52 gsliberr.write.output.file, \
53 "Write output file error") \
54 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONNECT_GENERIC, \
55 gsliberr.connect.generic, \
56 "Connect generic error") \
57 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONNECT_SERVICE_NOT_RUNNING, \
58 gsliberr.connect.service.not.running, \
59 "Connect service not running") \
60 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONNECT_PERMISSION_DENIED, \
61 gsliberr.connect.permission.denied, \
62 "Connect permission denied") \
63 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONNECT_SECURITY_VIOLATION, \
64 gsliberr.connect.security.violation, \
65 "Connect security violation") \
66 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONNECT_PEER_RESET, \
67 gsliberr.connect.peer.reset, \
68 "Connect peer reset") \
69 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_SEND, \
72 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_RECV, \
75 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONTENT_FORBIDDEN, \
76 gsliberr.content.forbidden, \
77 "Content forbidden") \
78 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CONTENT_NOT_FOUND, \
79 gsliberr.content.not.found, \
80 "Content not found") \
81 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_SERVER, \
84 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CANCELLED, \
87 GUESTSTORE_LIB_ERR_ITEM(GSLIBERR_CHECKSUM, \
94#define GUESTSTORE_LIB_ERR_ITEM(a, b, c) a,
96GUESTSTORE_LIB_ERR_LIST
99#undef GUESTSTORE_LIB_ERR_ITEM
105 GSLIBLOGLEVEL_ERROR = 1,
106 GSLIBLOGLEVEL_WARNING,
109} GuestStoreLibLogLevel;
120typedef void (*GuestStore_Logger) (GuestStoreLibLogLevel level,
128typedef void (*GuestStore_Panic) (
const char *message,
135typedef Bool (*GuestStore_GetContentCallback) (int64 contentSize,
136 int64 contentBytesReceived,
143GuestStore_Init(
void);
149GuestStore_GetContent(
150 const char *contentPath,
151 const char *outputPath,
152 GuestStore_Logger logger,
153 GuestStore_Panic panic,
154 GuestStore_GetContentCallback getContentCb,
162GuestStore_DeInit(
void);