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

fts-simple.h

Go to the documentation of this file.
00001 /*
00002  *  Copyright (c) Members of the EGEE Collaboration. 2005.
00003  *  See http://eu-egee.org/partners/ for details on the copyright holders.
00004  *  For license conditions see the license file or http://eu-egee.org/license.html
00005  *
00006  *  GLite Data Management - Simple file fts API
00007  *
00008  *  Authors: Gabor Gombas <Gabor.Gombas@cern.ch>
00009  *           Zoltan Farkas <Zoltan.Farkas@cern.ch>
00010  *
00011  */
00012 
00013 #ifndef GLITE_DATA_TRANSFER_FTS_SIMPLE_H
00014 #define GLITE_DATA_TRANSFER_FTS_SIMPLE_H
00015 
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019 
00020 #include <glite/data/transfer/c/transfer-simple.h>
00021 
00022 /**********************************************************************
00023  * Constants
00024  */
00025 
00026 /* SURL generation pattern types */
00027 typedef enum
00028 {
00029     GLITE_FTS_SURL_LFN,
00030     GLITE_FTS_SURL_DAY,
00031     GLITE_FTS_SURL_HOUR,
00032     GLITE_FTS_SURL_FLAT
00033 } glite_fts_surl_pattern;
00034 
00035 /* Default SURL generation pattern */
00036 #define GLITE_FTS_SURL_DEFAULT      GLITE_FTS_SURL_LFN
00037 
00038 /* Job parameter key for gridftp */
00039 #define GLITE_FTS_PARAM_GRIDFTP     "gridftp"
00040 
00041 /* Job parameter key for MyProxy */
00042 #define GLITE_FTS_PARAM_MYPROXY     "myproxy"
00043 
00044 /* Job parameter key for DelegationID */
00045 #define GLITE_FTS_PARAM_DELEGATIONID    "delegationid"
00046 
00047 /* Job parameter for storageClass */
00048 #define GLITE_FTS_PARAM_SPACETOKEN   "spacetoken"
00049 #define GLITE_FTS_PARAM_SPACETOKEN_SOURCE   "source_spacetoken"
00050 
00051 /* SRM 2.2 overwrite flag */
00052 #define GLITE_FTS_PARAM_OVERWRITEFLAG   "overwrite"
00053 
00054 /* Service Discovery parameter keys */
00055 #define GLITE_FTS_SD_PATTERN        "surl_pattern"
00056 #define GLITE_FTS_SD_SURL_PREFIX    "surl_prefix"
00057 #define GLITE_FTS_SD_SRM_ENDPOINT   "srm_endpoint"
00058 
00059 /* Service type for Service Discovery */
00060 #define GLITE_FTS_SD_TYPE       "org.glite.FileTransfer"
00061 
00062 /* Service type of Channel Agent for Service Discovery */
00063 #define GLITE_CA_SD_TYPE        "org.glite.ChannelAgent"
00064 
00065 /* Environment variable to override default service type */
00066 #define GLITE_FTS_SD_ENV        "GLITE_SD_FTS_TYPE"
00067 
00068 
00069 /**********************************************************************
00070  * General guidelines:
00071  * - Functions that return a pointer return NULL when there is an error.
00072  * - Functions that return 'int' return 0 when successful and -1 in case
00073  *   of an error.
00074  * - Any objects returned by a function is owned by the caller and has to
00075  *   be deallocated by the caller.
00076  */
00077 
00078 /**********************************************************************
00079  * Function prototypes - library management functions
00080  */
00081 
00082 /* Return the current FileTransfer endpoint used by the transfer context */
00083 const char *glite_fts_get_endpoint(glite_transfer_ctx *ctx);
00084 
00085 #if 0 /* These need more research */
00086 char *glite_fts_generate_surl(glite_transfer_ctx *ctx, const char *src);
00087 
00088 int glite_fts_set_srm_endpoint(glite_transfer_ctx *ctx, const char *uri);
00089 
00090 int glite_fts_set_surl_prefix(glite_transfer_ctx *ctx, const char *prefix);
00091 
00092 int glite_fts_set_surl_pattern(glite_transfer_ctx *ctx,
00093     glite_fts_surl_pattern pattern);
00094 #endif 
00095 
00096 /**********************************************************************
00097  * Function prototypes - org.glite.data.transfer.ServiceBase
00098  */
00099 
00112 char *glite_fts_getVersion(glite_transfer_ctx *ctx);
00113 
00121 char *glite_fts_getSchemaVersion(glite_transfer_ctx *ctx);
00122 
00130 char *glite_fts_getInterfaceVersion(glite_transfer_ctx *ctx);
00131 
00140 char *glite_fts_getServiceMetadata(glite_transfer_ctx *ctx, const char *key);
00141 
00146 /**********************************************************************
00147  * Function prototypes - org.glite.data.transfer.fts.FileTransfer
00148  */
00149 
00166 char *glite_fts_submit(glite_transfer_ctx *ctx,
00167     const glite_transfer_TransferJob *job);
00168 
00177 char *glite_fts_transferSubmit(glite_transfer_ctx *ctx,
00178     const glite_transfer_TransferJob *job, int withDelegation);
00179 
00188 char *glite_fts_placementSubmit(glite_transfer_ctx *ctx,
00189     const glite_transfer_PlacementJob *job, int withDelegation);
00190 
00202 glite_transfer_JobStatus **glite_fts_listRequests(glite_transfer_ctx *ctx,
00203     int numStates, const char * const states[], const char *channelName,
00204     int *resultCount);
00205 
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 
00235 glite_transfer_FileTransferStatus **glite_fts_getFileStatus(glite_transfer_ctx *ctx,
00236     const char *requestId, int offset, int limit, int *resultCount);
00237 
00246 glite_transfer_JobStatus *glite_fts_getTransferJobStatus(glite_transfer_ctx *ctx,
00247     const char *requestId);
00248 
00257 glite_transfer_TransferJobSummary *glite_fts_getTransferJobSummary(glite_transfer_ctx *ctx,
00258     const char *requestId);
00259 glite_transfer_TransferJobSummary2 *glite_fts_getTransferJobSummary2(glite_transfer_ctx *ctx,
00260     const char *requestId);
00261 
00262 
00277 int glite_fts_cancel(glite_transfer_ctx *ctx, int nitems, const char **requestIds);
00278 
00288 int glite_fts_addVOManager(glite_transfer_ctx *ctx, const char *VOname,
00289         const char *principal);
00290 
00300 int glite_fts_removeVOManager(glite_transfer_ctx *ctx, const char *VOname,
00301         const char *principal);
00302 
00312 char **glite_fts_listVOManagers(glite_transfer_ctx *ctx, const char *VOname,
00313         int *resultcount);
00314 
00322 glite_transfer_Roles *glite_fts_getRoles(glite_transfer_ctx *ctx);
00323 
00331 glite_transfer_Roles *glite_fts_getRolesOf(glite_transfer_ctx *ctx, const char *otherDN);
00332 
00342 int glite_fts_setJobPriority(glite_transfer_ctx *ctx,
00343         const char *requestID, const int priority);
00344 
00349 #ifdef __cplusplus
00350 }
00351 #endif
00352 
00353 #endif /* GLITE_DATA_TRANSFER_FTS_SIMPLE_H */
The GLite Project. All rights reserved.