EGEE
Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals

fts-simple.h

Go to the documentation of this file.
00001 
00022 #ifndef GLITE_DATA_TRANSFER_FTS_SIMPLE_H
00023 #define GLITE_DATA_TRANSFER_FTS_SIMPLE_H
00024 
00025 #ifdef __cplusplus
00026 extern "C" {
00027 #endif
00028 
00029 #include <glite/data/transfer/c/transfer-simple.h>
00030 
00031 /**********************************************************************
00032  * Constants
00033  */
00034 
00035 /* SURL generation pattern types */
00036 typedef enum
00037 {
00038     GLITE_FTS_SURL_LFN,
00039     GLITE_FTS_SURL_DAY,
00040     GLITE_FTS_SURL_HOUR,
00041     GLITE_FTS_SURL_FLAT
00042 } glite_fts_surl_pattern;
00043 
00044 /* Default SURL generation pattern */
00045 #define GLITE_FTS_SURL_DEFAULT      GLITE_FTS_SURL_LFN
00046 
00047 /* Job parameter key for gridftp */
00048 #define GLITE_FTS_PARAM_GRIDFTP     "gridftp"
00049 
00050 /* Job parameter key for MyProxy */
00051 #define GLITE_FTS_PARAM_MYPROXY     "myproxy"
00052 
00053 /* Job parameter key for DelegationID */
00054 #define GLITE_FTS_PARAM_DELEGATIONID    "delegationid"
00055 
00056 /* Job parameter for storageClass */
00057 #define GLITE_FTS_PARAM_SPACETOKEN   "spacetoken"
00058 #define GLITE_FTS_PARAM_SPACETOKEN_SOURCE   "source_spacetoken"
00059 
00060 #define GLITE_FTS_PARAM_COPY_PIN_LIFETIME "copy_pin_lifetime"
00061 #define GLITE_FTS_PARAM_LAN_CONNECTION "lan_connection"
00062 #define GLITE_FTS_PARAM_FAIL_NEARLINE "fail_nearline"
00063 
00064 /* SRM 2.2 overwrite flag */
00065 #define GLITE_FTS_PARAM_OVERWRITEFLAG   "overwrite"
00066 
00067 #define GLITE_FTS_PARAM_CHECKSUM_METHOD "checksum_method"
00068 
00069 /* Service Discovery parameter keys */
00070 #define GLITE_FTS_SD_PATTERN        "surl_pattern"
00071 #define GLITE_FTS_SD_SURL_PREFIX    "surl_prefix"
00072 #define GLITE_FTS_SD_SRM_ENDPOINT   "srm_endpoint"
00073 
00074 /* Service type for Service Discovery */
00075 #define GLITE_FTS_SD_TYPE       "org.glite.FileTransfer"
00076 
00077 /* Service type of Channel Agent for Service Discovery */
00078 #define GLITE_CA_SD_TYPE        "org.glite.ChannelAgent"
00079 
00080 /* Environment variable to override default service type */
00081 #define GLITE_FTS_SD_ENV        "GLITE_SD_FTS_TYPE"
00082 
00083 
00084 /**********************************************************************
00085  * General guidelines:
00086  * - Functions that return a pointer return NULL when there is an error.
00087  * - Functions that return 'int' return 0 when successful and -1 in case
00088  *   of an error.
00089  * - Any objects returned by a function is owned by the caller and has to
00090  *   be deallocated by the caller.
00091  */
00092 
00093 /**********************************************************************
00094  * Function prototypes - library management functions
00095  */
00096 
00097 /* Return the current FileTransfer endpoint used by the transfer context */
00098 const char *glite_fts_get_endpoint(glite_transfer_ctx *ctx);
00099 
00100 #if 0 /* These need more research */
00101 char *glite_fts_generate_surl(glite_transfer_ctx *ctx, const char *src);
00102 
00103 int glite_fts_set_srm_endpoint(glite_transfer_ctx *ctx, const char *uri);
00104 
00105 int glite_fts_set_surl_prefix(glite_transfer_ctx *ctx, const char *prefix);
00106 
00107 int glite_fts_set_surl_pattern(glite_transfer_ctx *ctx,
00108     glite_fts_surl_pattern pattern);
00109 #endif 
00110 
00111 /**********************************************************************
00112  * Function prototypes - org.glite.data.transfer.ServiceBase
00113  */
00114 
00125 char *glite_fts_getVersion(glite_transfer_ctx *ctx);
00126 
00132 char *glite_fts_getSchemaVersion(glite_transfer_ctx *ctx);
00133 
00139 char *glite_fts_getInterfaceVersion(glite_transfer_ctx *ctx);
00140 
00147 char *glite_fts_getServiceMetadata(glite_transfer_ctx *ctx, const char *key);
00148 
00153 /**********************************************************************
00154  * Function prototypes - org.glite.data.transfer.fts.FileTransfer
00155  */
00156 
00171 char *glite_fts_submit(glite_transfer_ctx *ctx,
00172     const glite_transfer_TransferJob *job);
00173 
00182 char *glite_fts_transferSubmit(glite_transfer_ctx *ctx,
00183     const glite_transfer_TransferJob *job, 
00184     int withDelegation, int withChecksums);
00185 
00192 char *glite_fts_placementSubmit(glite_transfer_ctx *ctx,
00193     const glite_transfer_PlacementJob *job, int withDelegation);
00194 
00204 glite_transfer_JobStatus **glite_fts_listRequests(glite_transfer_ctx *ctx,
00205     int numStates, const char * const states[], const char *channelName,
00206     int *resultCount);
00207 
00219 glite_transfer_JobStatus **glite_fts_listRequests2(glite_transfer_ctx *ctx,
00220     int numStates, const char * const states[], const char *channelName,
00221    const char* restrict_dn, const char* restrict_vo,
00222     int *resultCount);
00223 
00233 glite_transfer_FileTransferStatus **glite_fts_getFileStatus(glite_transfer_ctx *ctx,
00234     const char *requestId, int offset, int limit, int *resultCount);
00235 
00242 glite_transfer_JobStatus *glite_fts_getTransferJobStatus(glite_transfer_ctx *ctx,
00243     const char *requestId);
00244 
00251 glite_transfer_TransferJobSummary *glite_fts_getTransferJobSummary(glite_transfer_ctx *ctx,
00252     const char *requestId);
00253 glite_transfer_TransferJobSummary2 *glite_fts_getTransferJobSummary2(glite_transfer_ctx *ctx,
00254     const char *requestId);
00255 
00256 
00268 int glite_fts_cancel(glite_transfer_ctx *ctx, int nitems, const char **requestIds);
00269 
00277 int glite_fts_addVOManager(glite_transfer_ctx *ctx, const char *VOname,
00278         const char *principal);
00279 
00287 int glite_fts_removeVOManager(glite_transfer_ctx *ctx, const char *VOname,
00288         const char *principal);
00289 
00297 char **glite_fts_listVOManagers(glite_transfer_ctx *ctx, const char *VOname,
00298         int *resultcount);
00299 
00305 glite_transfer_Roles *glite_fts_getRoles(glite_transfer_ctx *ctx);
00306 
00312 glite_transfer_Roles *glite_fts_getRolesOf(glite_transfer_ctx *ctx, const char *otherDN);
00313 
00321 int glite_fts_setJobPriority(glite_transfer_ctx *ctx,
00322         const char *requestID, const int priority);
00323 
00328 #ifdef __cplusplus
00329 }
00330 #endif
00331 
00332 #endif /* GLITE_DATA_TRANSFER_FTS_SIMPLE_H */
The GLite Project. All rights reserved.