00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef GLITE_DATA_TRANSFER_SIMPLE_H
00014 #define GLITE_DATA_TRANSFER_SIMPLE_H
00015
00016 #ifdef __cplusplus
00017 extern "C" {
00018 #endif
00019
00020 #include <stdarg.h>
00021 #include <stdint.h>
00022 #include <time.h>
00023
00024
00025
00026
00027
00028
00029 typedef struct _glite_transfer_ctx glite_transfer_ctx;
00030
00035 typedef struct _glite_transfer_Channel glite_transfer_Channel;
00036 typedef struct _glite_transfer_FileTransferStatus glite_transfer_FileTransferStatus;
00037 typedef struct _glite_transfer_JobStatus glite_transfer_JobStatus;
00038 typedef struct _glite_transfer_PlacementJob glite_transfer_PlacementJob;
00039 typedef struct _glite_transfer_TransferJob glite_transfer_TransferJob;
00040 typedef struct _glite_transfer_TransferJobElement glite_transfer_TransferJobElement;
00041 typedef struct _glite_transfer_TransferJobSummary glite_transfer_TransferJobSummary;
00042 typedef struct _glite_transfer_TransferParams glite_transfer_TransferParams;
00043 typedef struct _glite_transfer_StringPair glite_transfer_StringPair;
00044 typedef struct _glite_transfer_Roles glite_transfer_Roles;
00045 typedef struct _glite_transfer_VOShareElement glite_transfer_VOShareElement;
00046
00047 typedef struct _glite_transfer_TransferSnapshot glite_transfer_TransferSnapshot;
00048 typedef struct _glite_transfer_TransferSummary glite_transfer_TransferSummary;
00049 typedef struct _glite_transfer_TransferActivity glite_transfer_TransferActivity;
00050 typedef struct _glite_transfer_TransferActivityPeriod glite_transfer_TransferActivityPeriod;
00051 typedef struct _glite_transfer_TransferAgent glite_transfer_TransferAgent;
00052
00053
00054
00055
00056
00057
00061 typedef enum
00062 {
00063 GLITE_TRANSFER_EXCEPTION_AUTHORIZATION = -8,
00064 GLITE_TRANSFER_EXCEPTION_CANNOTCANCEL = -7,
00065 GLITE_TRANSFER_EXCEPTION_FILENOTFOUND = -6,
00066 GLITE_TRANSFER_EXCEPTION_INTERNAL = -5,
00067 GLITE_TRANSFER_EXCEPTION_INVALIDARGUMENT = -4,
00068 GLITE_TRANSFER_EXCEPTION_NOTEXISTS = -3,
00069 GLITE_TRANSFER_EXCEPTION_SERVICEBUSY = -2,
00070 GLITE_TRANSFER_EXCEPTION_TRANSFER = -1,
00071 GLITE_TRANSFER_ERROR_NONE,
00072 GLITE_TRANSFER_ERROR_UNKNOWN,
00073 GLITE_TRANSFER_ERROR_INVALIDARGUMENT,
00074 GLITE_TRANSFER_ERROR_OUTOFMEMORY,
00075 GLITE_TRANSFER_ERROR_SERVICEDISCOVERY,
00076 GLITE_TRANSFER_ERROR_SOAP
00077 } glite_transfer_errclass;
00078
00085 typedef enum
00086 {
00087 GLITE_TRANSFER_CATALOGFAILED = -5,
00088 GLITE_TRANSFER_FINISHED_DIRTY = -4,
00089 GLITE_TRANSFER_UNKNOWN = -3,
00090 GLITE_TRANSFER_CANCELED = -2,
00091 GLITE_TRANSFER_TRANSFERFAILED = -1,
00092 GLITE_TRANSFER_FINISHED = 0,
00093 GLITE_TRANSFER_SUBMITTED,
00094 GLITE_TRANSFER_PENDING,
00095 GLITE_TRANSFER_ACTIVE,
00096 GLITE_TRANSFER_CANCELING,
00097 GLITE_TRANSFER_WAITING,
00098 GLITE_TRANSFER_HOLD,
00099 GLITE_TRANSFER_DONE
00100 } glite_transfer_state;
00101
00105 typedef enum
00106 {
00107 GLITE_CHANNEL_UNKNOWN = -1,
00108 GLITE_CHANNEL_ACTIVE,
00109 GLITE_CHANNEL_INACTIVE,
00110 GLITE_CHANNEL_DRAIN,
00111 GLITE_CHANNEL_STOPPED,
00112 GLITE_CHANNEL_HALTED
00113 } glite_channel_state;
00114
00115
00116
00117
00118
00119
00123 struct _glite_transfer_FileTransferStatus
00124 {
00125 char *logicalName;
00126 char *sourceSURL;
00127 char *destSURL;
00128 glite_transfer_state transferFileState;
00129 int numFailures;
00130 char *reason;
00131 char *reason_class;
00132 int duration;
00133 };
00134
00138 struct _glite_transfer_JobStatus
00139 {
00140 char *jobId;
00141 glite_transfer_state jobStatus;
00142 char *channelName;
00143 char *clientDN;
00144 char *reason;
00145 char *voName;
00146 struct timespec submitTime;
00147 int numFiles;
00148 int priority;
00149 };
00150
00162 struct _glite_transfer_PlacementJob
00163 {
00164 char **logicalFiles;
00165 unsigned __sizeLogicalFiles;
00166 char *sourceSE;
00167 char *destSE;
00168 glite_transfer_TransferParams *jobParams;
00169 char *credential;
00170 };
00171
00175 struct _glite_transfer_TransferJob
00176 {
00177 glite_transfer_TransferJobElement **transferJobElements;
00178 unsigned __sizetransferJobElements;
00179 glite_transfer_TransferParams *jobParams;
00180 char *credential;
00181 };
00182
00186 struct _glite_transfer_TransferJobElement
00187 {
00188 char *source;
00189 char *dest;
00190 };
00191
00195 struct _glite_transfer_VOShareElement
00196 {
00197 char *VOName;
00198 char *share;
00199 };
00200
00204 struct _glite_transfer_TransferJobSummary
00205 {
00206 glite_transfer_JobStatus *jobStatus;
00208 int numDone;
00209 int numActive;
00210 int numPending;
00211 int numCanceled;
00212 int numCanceling;
00213 int numFailed;
00214 int numFinished;
00215 int numSubmitted;
00216 int numHold;
00217 int numWaiting;
00218 int numCatalogFailed;
00219 int numRestarted;
00220 };
00221
00225 struct _glite_transfer_TransferParams
00226 {
00227 char **keys;
00228 char **values;
00229 unsigned num;
00230 };
00231
00235 struct _glite_transfer_Channel
00236 {
00237 char *channelName;
00238 char *sourceSite;
00239 char *destSite;
00240 char *contact;
00241 int numberOfStreams;
00242 int numberOfFiles;
00243 int bandwidth;
00244 int nominalThroughput;
00245 int __sizeVOShares;
00246 glite_transfer_VOShareElement **VOShares;
00247 glite_channel_state state;
00248 };
00249
00253 struct _glite_transfer_StringPair
00254 {
00255 char *string1;
00256 char *string2;
00257 };
00258
00262 struct _glite_transfer_Roles
00263 {
00264 char *clientDN;
00265 char *serviceAdmin;
00266 char *submitter;
00267 int __sizeVOManager;
00268 glite_transfer_StringPair **VOManager;
00269 int __sizechannelManager;
00270 glite_transfer_StringPair **channelManager;
00271 };
00272
00276 struct _glite_transfer_TransferSnapshot
00277 {
00278 time_t *time;
00279 int numSubmittedJobs;
00280 int numPendingJobs;
00281 int numActiveJobs;
00282 int numDoneJobs;
00283 int numHoldJobs;
00284 int numFailedJobs;
00285 int numCanceledJobs;
00286 int numCancelingJobs;
00287 int numFinishedDirtyJobs;
00288 int numFinishedJobs;
00289 int numSubmittedFiles;
00290 int numPendingFiles;
00291 int numActiveFiles;
00292 int numDoneFiles;
00293 int numWaitingFiles;
00294 int numHoldFiles;
00295 int numCancelingFiles;
00296 int numCanceledFiles;
00297 int numFailedFiles;
00298 int numFinishedFiles;
00299 int numCatalogFailedFiles;
00300 };
00301
00305 struct _glite_transfer_TransferSummary
00306 {
00307 char *channelName;
00308 char *voName;
00309 int __sizesnapshots;
00310 glite_transfer_TransferSnapshot **snapshots;
00311 };
00312
00316 struct _glite_transfer_TransferActivityPeriod
00317 {
00318 time_t *startTime;
00319 time_t *endTime;
00320 float averageRate;
00321 long bytesWritten;
00322 };
00323
00327 struct _glite_transfer_TransferActivity
00328 {
00329 char *channelName;
00330 char *voName;
00331 int __sizeactivityPeriods;
00332 glite_transfer_TransferActivityPeriod **activityPeriods;
00333 };
00334
00338 struct _glite_transfer_TransferAgent
00339 {
00340 char *name;
00341 char *DN;
00342 char *host;
00343 char *type;
00344 time_t *lastActive;
00345 char *state;
00346 char *version;
00347 char *contact;
00348 };
00349
00354
00355
00356
00357
00370 glite_transfer_ctx *glite_transfer_new(const char *endpoint);
00371
00377 void glite_transfer_free(glite_transfer_ctx *ctx);
00378
00386 void glite_transfer_add_sites(glite_transfer_ctx *ctx, const char *s, const char *d);
00387
00397 const char *glite_transfer_get_error(glite_transfer_ctx *ctx);
00398
00406 glite_transfer_errclass glite_transfer_get_errclass(glite_transfer_ctx *ctx);
00407
00416 void glite_transfer_set_error(glite_transfer_ctx *ctx,
00417 glite_transfer_errclass errclass, const char *fmt, ...);
00418
00427 void glite_transfer_set_verror(glite_transfer_ctx *ctx,
00428 glite_transfer_errclass errclass, const char *fmt, va_list ap);
00429
00439 glite_transfer_state glite_transfer_state_parse(glite_transfer_ctx *ctx,
00440 const char *state);
00441
00449 const char *glite_transfer_state_str(glite_transfer_state state);
00450
00451
00452
00453
00454
00455
00456
00457
00468 glite_transfer_FileTransferStatus *glite_transfer_FileTransferStatus_new(glite_transfer_ctx *ctx,
00469 const char *source, const char *dest, glite_transfer_state state);
00476 void glite_transfer_FileTransferStatus_free(glite_transfer_ctx *ctx,
00477 glite_transfer_FileTransferStatus *status);
00485 void glite_transfer_FileTransferStatus_freeArray(glite_transfer_ctx *ctx,
00486 int nitems, glite_transfer_FileTransferStatus *status[]);
00495 glite_transfer_FileTransferStatus *glite_transfer_FileTransferStatus_clone(glite_transfer_ctx *ctx,
00496 const glite_transfer_FileTransferStatus *status);
00506 int glite_transfer_FileTransferStatus_setLogicalName(glite_transfer_ctx *ctx,
00507 glite_transfer_FileTransferStatus *status, const char *name);
00517 int glite_transfer_FileTransferStatus_setReason(glite_transfer_ctx *ctx,
00518 glite_transfer_FileTransferStatus *status, const char *reason);
00528 int glite_transfer_FileTransferStatus_setReasonClass(glite_transfer_ctx *ctx,
00529 glite_transfer_FileTransferStatus *status, const char *reasonClass);
00530
00540 glite_transfer_JobStatus *glite_transfer_JobStatus_new(glite_transfer_ctx *ctx,
00541 const char *jobId, glite_transfer_state jobStatus);
00548 void glite_transfer_JobStatus_free(glite_transfer_ctx *ctx,
00549 glite_transfer_JobStatus *status);
00557 void glite_transfer_JobStatus_freeArray(glite_transfer_ctx *ctx, int nitems,
00558 glite_transfer_JobStatus *status[]);
00567 glite_transfer_JobStatus *glite_transfer_JobStatus_clone(glite_transfer_ctx *ctx,
00568 const glite_transfer_JobStatus *orig);
00569
00579 glite_transfer_PlacementJob *glite_transfer_PlacementJob_new(glite_transfer_ctx *ctx,
00580 const char *sourceSE, const char *destSE);
00587 void glite_transfer_PlacementJob_free(glite_transfer_ctx *ctx,
00588 glite_transfer_PlacementJob *job);
00597 glite_transfer_PlacementJob *glite_transfer_PlacementJob_clone(glite_transfer_ctx *ctx,
00598 const glite_transfer_PlacementJob *orig);
00608 int glite_transfer_PlacementJob_setParams(glite_transfer_ctx *ctx,
00609 glite_transfer_PlacementJob *job,
00610 const glite_transfer_TransferParams *params);
00620 int glite_transfer_PlacementJob_add(glite_transfer_ctx *ctx,
00621 glite_transfer_PlacementJob *job, const char *logicalFile);
00622
00632 glite_transfer_TransferJobElement *glite_transfer_TransferJobElement_new(glite_transfer_ctx *ctx,
00633 const char *src, const char *dst);
00640 void glite_transfer_TransferJobElement_free(glite_transfer_ctx *ctx,
00641 glite_transfer_TransferJobElement *elem);
00649 void glite_transfer_TransferJobElement_freeArray(glite_transfer_ctx *ctx,
00650 int nitems, glite_transfer_TransferJobElement *elems[]);
00659 glite_transfer_TransferJobElement *glite_transfer_TransferJobElement_clone(glite_transfer_ctx *ctx,
00660 const glite_transfer_TransferJobElement *orig);
00661
00669 glite_transfer_TransferJobSummary *glite_transfer_TransferJobSummary_new(glite_transfer_ctx *ctx);
00676 void glite_transfer_TransferJobSummary_free(glite_transfer_ctx *ctx,
00677 glite_transfer_TransferJobSummary *summary);
00686 glite_transfer_TransferJobSummary *glite_transfer_TransferJobSummary_clone(glite_transfer_ctx *ctx,
00687 const glite_transfer_TransferJobSummary *orig);
00688
00696 glite_transfer_TransferJob *glite_transfer_TransferJob_new(glite_transfer_ctx *ctx);
00703 void glite_transfer_TransferJob_free(glite_transfer_ctx *ctx,
00704 glite_transfer_TransferJob *job);
00713 glite_transfer_TransferJob *glite_transfer_TransferJob_clone(glite_transfer_ctx *ctx,
00714 const glite_transfer_TransferJob *orig);
00724 int glite_transfer_TransferJob_setParams(glite_transfer_ctx *ctx,
00725 glite_transfer_TransferJob *job,
00726 const glite_transfer_TransferParams *params);
00737 int glite_transfer_TransferJob_add(glite_transfer_ctx *ctx,
00738 glite_transfer_TransferJob *job,
00739 const char *src, const char *dst);
00740
00748 glite_transfer_TransferParams *glite_transfer_TransferParams_new(glite_transfer_ctx *ctx);
00755 void glite_transfer_TransferParams_free(glite_transfer_ctx *ctx,
00756 glite_transfer_TransferParams *params);
00765 glite_transfer_TransferParams *glite_transfer_TransferParams_clone(glite_transfer_ctx *ctx,
00766 const glite_transfer_TransferParams *orig);
00777 int glite_transfer_TransferParams_add(glite_transfer_ctx *ctx,
00778 glite_transfer_TransferParams *params, const char *key, const char *value);
00779
00790 glite_transfer_Channel *glite_transfer_Channel_new(glite_transfer_ctx *ctx,
00791 const char *name, const char *domainA, const char *domainB);
00798 void glite_transfer_Channel_free(glite_transfer_ctx *ctx,
00799 glite_transfer_Channel *channel);
00808 glite_transfer_Channel *glite_transfer_Channel_clone(glite_transfer_ctx *ctx,
00809 const glite_transfer_Channel *orig);
00819 int glite_transfer_Channel_setContact(glite_transfer_ctx *ctx,
00820 glite_transfer_Channel *channel, const char *contact);
00830 int glite_transfer_Channel_setState(glite_transfer_ctx *ctx,
00831 glite_transfer_Channel *channel, glite_channel_state state);
00832
00836 glite_transfer_Roles *glite_transfer_Roles_new(glite_transfer_ctx *ctx);
00837
00838 #ifdef __cplusplus
00839 }
00840 #endif
00841
00842 #endif