00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00022 #ifndef GLOBUS_GASS_CACHE_H
00023 #define GLOBUS_GASS_CACHE_H
00024
00025 #include "globus_common.h"
00026
00027 #include <sys/param.h>
00028
00029 #ifdef __cplusplus
00030 extern "C" {
00031 #endif
00032
00033 #ifndef GLOBUS_GLOBAL_DOCUMENT_SET
00034
00038 #endif
00039
00042
00043
00044
00045 #define GLOBUS_GASS_CACHE_ADD_NEW 1
00046 #define GLOBUS_GASS_CACHE_URL_NOT_FOUND 2
00047 #define GLOBUS_GASS_CACHE_ADD_EXISTS 3
00048
00049 #define GLOBUS_GASS_CACHE_ERROR_NO_HOME -1
00050 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_CREATE -2
00051 #define GLOBUS_GASS_CACHE_ERROR_NAME_TOO_LONG -3
00052 #define GLOBUS_GASS_CACHE_ERROR_LOCK_ERROR -4
00053
00054 #define GLOBUS_GASS_CACHE_ERROR_LOCK_TIME_OUT -5
00055 #define GLOBUS_GASS_CACHE_ERROR_OPEN_STATE -6
00056 #define GLOBUS_GASS_CACHE_ERROR_STATE_F_CORRUPT -7
00057 #define GLOBUS_GASS_CACHE_ERROR_NO_MEMORY -8
00058 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_CREATE_DATA_F -9
00059
00060 #define GLOBUS_GASS_CACHE_ERROR_URL_NOT_FOUND -10
00061 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_DEL_LOCK -11
00062 #define GLOBUS_GASS_CACHE_ERROR_WRONG_TAG -12
00063 #define GLOBUS_GASS_CACHE_ERROR_ALREADY_DONE -13
00064 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_WRITE -14
00065 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_READ -15
00066 #define GLOBUS_GASS_CACHE_ERROR_CAN_NOT_DELETE_DATA_F -16
00067 #define GLOBUS_GASS_CACHE_ERROR_CACHE_NOT_OPENED -17
00068 #define GLOBUS_GASS_CACHE_ERROR_CACHE_ALREADY_OPENED -18
00069 #define GLOBUS_GASS_CACHE_ERROR_INVALID_PARRAMETER -19
00070 #define GLOBUS_GASS_CACHE_ERROR_INVALID_VERSION -20
00071 #define GLOBUS_GASS_CACHE_ERROR_NO_SPACE -21
00072 #define GLOBUS_GASS_CACHE_ERROR_QUOTA_EXCEEDED -22
00073
00074 #define GLOBUS_GASS_CACHE_TIMESTAMP_UNKNOWN 0UL
00075
00084 typedef struct globus_i_gass_cache_t * globus_gass_cache_t;
00085
00086
00087 extern
00088 int
00089 globus_gass_cache_open(const char* cache_directory_path,
00090 globus_gass_cache_t* cache_handle);
00091
00092 extern int
00093 globus_gass_cache_close(globus_gass_cache_t * cache_handle);
00094
00095 extern
00096 int
00097 globus_gass_cache_add(globus_gass_cache_t cache_handle,
00098 const char *url,
00099 const char *tag,
00100 globus_bool_t create,
00101 unsigned long *timestamp,
00102 char **local_filename);
00103
00104 extern
00105 int
00106 globus_gass_cache_add_done(
00107 globus_gass_cache_t cache_handle,
00108 const char *url,
00109 const char *tag,
00110 unsigned long timestamp);
00111
00112 extern
00113 int
00114 globus_gass_cache_query(
00115 globus_gass_cache_t cache_handle,
00116 const char *url,
00117 const char *tag,
00118 globus_bool_t wait_for_lock,
00119 unsigned long *timestamp,
00120 char **local_filename,
00121 globus_bool_t *is_locked );
00122
00123
00124 extern
00125 int
00126 globus_gass_cache_delete_start(
00127 globus_gass_cache_t cache_handle,
00128 const char *url,
00129 const char *tag,
00130 unsigned long *timestamp);
00131
00132 extern
00133 int
00134 globus_gass_cache_delete(
00135 globus_gass_cache_t cache_handle,
00136 const char *url,
00137 const char *tag,
00138 unsigned long timestamp,
00139 globus_bool_t is_locked);
00140
00141 extern
00142 int
00143 globus_gass_cache_cleanup_tag(
00144 globus_gass_cache_t cache_handle,
00145 const char *url,
00146 const char *tag);
00147
00148 extern
00149 int
00150 globus_gass_cache_cleanup_tag_all(
00151 globus_gass_cache_t cache_handle,
00152 char *tag );
00153
00154 extern
00155 int
00156 globus_gass_cache_mangle_url( const globus_gass_cache_t cache_handle,
00157 const char *url,
00158 char **mangled_url,
00159 int *length );
00160
00161 extern
00162 int
00163 globus_gass_cache_mangle_tag( const globus_gass_cache_t cache_handle,
00164 const char *tag,
00165 char **mangled_tag,
00166 int *length );
00167
00168 extern
00169 int
00170 globus_gass_cache_get_dirs( const globus_gass_cache_t cache_handle,
00171 const char *url,
00172 const char *tag,
00173 char **global_root,
00174 char **local_root,
00175 char **tmp_root,
00176 char **log_root,
00177 char **global_dir,
00178 char **local_dir );
00179
00180 extern
00181 int
00182 globus_gass_cache_get_cache_dir( const globus_gass_cache_t cache_handle,
00183 char **cache_dir );
00184
00185 extern
00186 int
00187 globus_gass_cache_get_cache_type_string( const globus_gass_cache_t cache_handle,
00188 char **cache_type );
00189
00190 extern
00191 const char *
00192 globus_gass_cache_error_string(
00193 int error_code);
00194
00199 #define GLOBUS_GASS_CACHE_MODULE (&globus_i_gass_cache_module)
00200
00201 extern globus_module_descriptor_t globus_i_gass_cache_module;
00202
00203 #ifdef __cplusplus
00204 }
00205 #endif
00206
00207 #endif