globus_gass_cache.h

Go to the documentation of this file.
00001 /*
00002  * Copyright 1999-2006 University of Chicago
00003  * 
00004  * Licensed under the Apache License, Version 2.0 (the "License");
00005  * you may not use this file except in compliance with the License.
00006  * You may obtain a copy of the License at
00007  * 
00008  * http://www.apache.org/licenses/LICENSE-2.0
00009  * 
00010  * Unless required by applicable law or agreed to in writing, software
00011  * distributed under the License is distributed on an "AS IS" BASIS,
00012  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00013  * See the License for the specific language governing permissions and
00014  * limitations under the License.
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  * Codes returned by globus_gass_cache module
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 /* not used in a first impl.: */
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 /* only for "done" or delete  :*/
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   /* GLOBUS_GASS_CACHE_H */

Generated on 5 Sep 2016 for globus_gass_cache by  doxygen 1.4.7