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