00001
00002
00003
00004
00005
00006
00007
00032 #ifndef CHIRP_RELI_H
00033 #define CHIRP_RELI_H
00034
00035 #include "chirp_types.h"
00036
00037 #include <sys/types.h>
00038 #include <stdio.h>
00039 #include <dirent.h>
00040
00059 struct chirp_file *chirp_reli_open(const char *host, const char *path, INT64_T flags, INT64_T mode, time_t stoptime);
00060
00069 INT64_T chirp_reli_close(struct chirp_file *file, time_t stoptime);
00070
00081 INT64_T chirp_reli_pread(struct chirp_file *file, void *buffer, INT64_T length, INT64_T offset, time_t stoptime);
00082
00094 INT64_T chirp_reli_pwrite(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T offset, time_t stoptime);
00095
00106 INT64_T chirp_reli_pread_unbuffered(struct chirp_file *file, void *buffer, INT64_T length, INT64_T offset, time_t stoptime);
00107
00118 INT64_T chirp_reli_pwrite_unbuffered(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T offset, time_t stoptime);
00119
00134 INT64_T chirp_reli_sread(struct chirp_file *file, void *buffer, INT64_T length, INT64_T stride_length, INT64_T stride_skip, INT64_T offset, time_t stoptime);
00135
00150 INT64_T chirp_reli_swrite(struct chirp_file *file, const void *buffer, INT64_T length, INT64_T stride_length, INT64_T stride_skip, INT64_T offset, time_t stoptime);
00151
00160 INT64_T chirp_reli_fstat(struct chirp_file *file, struct chirp_stat *info, time_t stoptime);
00161
00170 INT64_T chirp_reli_fstatfs(struct chirp_file *file, struct chirp_statfs *info, time_t stoptime);
00171
00181 INT64_T chirp_reli_fchown(struct chirp_file *file, INT64_T uid, INT64_T gid, time_t stoptime);
00182
00192 INT64_T chirp_reli_fchmod(struct chirp_file *file, INT64_T mode, time_t stoptime);
00193
00201 INT64_T chirp_reli_ftruncate(struct chirp_file *file, INT64_T length, time_t stoptime);
00202
00212 INT64_T chirp_reli_flush(struct chirp_file *file, time_t stoptime);
00213
00214 INT64_T chirp_reli_fsync(struct chirp_file *file, time_t stoptime);
00215
00228 INT64_T chirp_reli_getfile(const char *host, const char *path, FILE * stream, time_t stoptime);
00229
00241 INT64_T chirp_reli_getfile_buffer(const char *host, const char *path, char **buffer, time_t stoptime);
00242
00256 INT64_T chirp_reli_putfile(const char *host, const char *path, FILE * stream, INT64_T mode, INT64_T length, time_t stoptime);
00257
00270 INT64_T chirp_reli_putfile_buffer(const char *host, const char *path, const void *buffer, INT64_T mode, size_t length, time_t stoptime);
00271
00282 CHIRP_SEARCH *chirp_reli_opensearch( const char *host, const char *paths, const char *pattern, int flags, time_t stoptime );
00283
00294 INT64_T chirp_reli_getlongdir(const char *host, const char *path, chirp_longdir_t callback, void *arg, time_t stoptime);
00295
00307 INT64_T chirp_reli_getdir(const char *host, const char *path, chirp_dir_t callback, void *arg, time_t stoptime);
00308
00319 struct chirp_dir *chirp_reli_opendir(const char *host, const char *path, time_t stoptime);
00320
00331 struct chirp_dirent *chirp_reli_readdir(struct chirp_dir *dir);
00332
00341 void chirp_reli_closedir(struct chirp_dir *dir);
00342
00343
00344 INT64_T chirp_reli_ticket_create(const char *host, char name[CHIRP_PATH_MAX], unsigned bits, time_t stoptime);
00345 INT64_T chirp_reli_ticket_register(const char *host, const char *name, const char *subject, time_t duration, time_t stoptime);
00346 INT64_T chirp_reli_ticket_delete(const char *host, const char *name, time_t stoptime);
00347 INT64_T chirp_reli_ticket_list(const char *host, const char *subject, char ***list, time_t stoptime);
00348 INT64_T chirp_reli_ticket_get(const char *host, const char *name, char **subject, char **ticket, time_t * duration, char ***rights, time_t stoptime);
00349 INT64_T chirp_reli_ticket_modify(const char *host, const char *name, const char *path, const char *aclmask, time_t stoptime);
00350
00360 INT64_T chirp_reli_getacl(const char *host, const char *path, chirp_dir_t callback, void *arg, time_t stoptime);
00361
00371 INT64_T chirp_reli_setacl(const char *host, const char *path, const char *subject, const char *rights, time_t stoptime);
00372
00381 INT64_T chirp_reli_resetacl(const char *host, const char *path, const char *rights, time_t stoptime);
00382
00391 INT64_T chirp_reli_locate(const char *host, const char *path, chirp_loc_t callback, void *arg, time_t stoptime);
00392
00401 INT64_T chirp_reli_whoami(const char *host, char *subject, INT64_T length, time_t stoptime);
00402
00413 INT64_T chirp_reli_whoareyou(const char *host, const char *rhost, char *subject, INT64_T length, time_t stoptime);
00414
00422 INT64_T chirp_reli_unlink(const char *host, const char *path, time_t stoptime);
00423
00432 INT64_T chirp_reli_rename(const char *host, const char *path, const char *newpath, time_t stoptime);
00433
00442 INT64_T chirp_reli_link(const char *host, const char *path, const char *newpath, time_t stoptime);
00443
00452 INT64_T chirp_reli_symlink(const char *host, const char *path, const char *newpath, time_t stoptime);
00453
00463 INT64_T chirp_reli_readlink(const char *host, const char *path, char *buf, INT64_T length, time_t stoptime);
00464
00465
00474 INT64_T chirp_reli_mkdir(const char *host, const char *path, INT64_T mode, time_t stoptime);
00475
00484 INT64_T chirp_reli_mkdir_recursive(const char *host, const char *path, INT64_T mode, time_t stoptime);
00485
00494 INT64_T chirp_reli_rmdir(const char *host, const char *path, time_t stoptime);
00495
00506 INT64_T chirp_reli_rmall(const char *host, const char *path, time_t stoptime);
00507
00517 INT64_T chirp_reli_stat(const char *host, const char *path, struct chirp_stat *info, time_t stoptime);
00518
00529 INT64_T chirp_reli_lstat(const char *host, const char *path, struct chirp_stat *info, time_t stoptime);
00530
00539 INT64_T chirp_reli_statfs(const char *host, const char *path, struct chirp_statfs *info, time_t stoptime);
00540
00552 INT64_T chirp_reli_access(const char *host, const char *path, INT64_T flags, time_t stoptime);
00553
00565 INT64_T chirp_reli_chmod(const char *host, const char *path, INT64_T mode, time_t stoptime);
00566
00577 INT64_T chirp_reli_chown(const char *host, const char *path, INT64_T uid, INT64_T gid, time_t stoptime);
00578
00589 INT64_T chirp_reli_lchown(const char *host, const char *path, INT64_T uid, INT64_T gid, time_t stoptime);
00590
00599 INT64_T chirp_reli_truncate(const char *host, const char *path, INT64_T length, time_t stoptime);
00600
00610 INT64_T chirp_reli_utime(const char *host, const char *path, time_t actime, time_t modtime, time_t stoptime);
00611
00626 INT64_T chirp_reli_hash(const char *host, const char *path, const char *algorithm, unsigned char digest[CHIRP_DIGEST_MAX], time_t stoptime);
00627
00641 INT64_T chirp_reli_md5(const char *host, const char *path, unsigned char digest[16], time_t stoptime);
00642
00653 INT64_T chirp_reli_setrep(const char *host, const char *path, int nreps, time_t stoptime );
00654
00655 INT64_T chirp_reli_getxattr(const char *host, const char *path, const char *name, void *data, size_t size, time_t stoptime);
00656 INT64_T chirp_reli_fgetxattr(struct chirp_file *file, const char *name, void *data, size_t size, time_t stoptime);
00657 INT64_T chirp_reli_lgetxattr(const char *host, const char *path, const char *name, void *data, size_t size, time_t stoptime);
00658 INT64_T chirp_reli_listxattr(const char *host, const char *path, char *list, size_t size, time_t stoptime);
00659 INT64_T chirp_reli_flistxattr(struct chirp_file *file, char *list, size_t size, time_t stoptime);
00660 INT64_T chirp_reli_llistxattr(const char *host, const char *path, char *list, size_t size, time_t stoptime);
00661 INT64_T chirp_reli_setxattr(const char *host, const char *path, const char *name, const void *data, size_t size, int flags, time_t stoptime);
00662 INT64_T chirp_reli_fsetxattr(struct chirp_file *file, const char *name, const void *data, size_t size, int flags, time_t stoptime);
00663 INT64_T chirp_reli_lsetxattr(const char *host, const char *path, const char *name, const void *data, size_t size, int flags, time_t stoptime);
00664 INT64_T chirp_reli_removexattr(const char *host, const char *path, const char *name, time_t stoptime);
00665 INT64_T chirp_reli_fremovexattr(struct chirp_file *file, const char *name, time_t stoptime);
00666 INT64_T chirp_reli_lremovexattr(const char *host, const char *path, const char *name, time_t stoptime);
00667
00668 INT64_T chirp_reli_job_create (const char *host, const char *json, chirp_jobid_t *id, time_t stoptime);
00669 INT64_T chirp_reli_job_commit (const char *host, const char *json, time_t stoptime);
00670 INT64_T chirp_reli_job_kill (const char *host, const char *json, time_t stoptime);
00671 INT64_T chirp_reli_job_status (const char *host, const char *json, char **status, time_t stoptime);
00672 INT64_T chirp_reli_job_wait (const char *host, chirp_jobid_t id, INT64_T timeout, char **status, time_t stoptime);
00673 INT64_T chirp_reli_job_reap (const char *host, const char *json, time_t stoptime);
00674
00682 INT64_T chirp_reli_remote_debug(const char *host, const char *flag, time_t stoptime);
00683
00697 INT64_T chirp_reli_localpath(const char *host, const char *path, char *localpath, int length, time_t stoptime);
00698
00710 INT64_T chirp_reli_audit(const char *host, const char *path, struct chirp_audit **list, time_t stoptime);
00711
00724 INT64_T chirp_reli_thirdput(const char *host, const char *path, const char *thirdhost, const char *thirdpath, time_t stoptime);
00725
00737 INT64_T chirp_reli_mkalloc(const char *host, const char *path, INT64_T size, INT64_T mode, time_t stoptime);
00738
00750 INT64_T chirp_reli_lsalloc(const char *host, const char *path, char *allocpath, INT64_T * total, INT64_T * inuse, time_t stoptime);
00751
00762 INT64_T chirp_reli_bulkio(struct chirp_bulkio *list, int count, time_t stoptime);
00763
00771 INT64_T chirp_reli_blocksize_get();
00772
00780 void chirp_reli_blocksize_set(INT64_T bs);
00781
00789 void chirp_reli_cleanup_before_fork();
00790
00794 void chirp_reli_disconnect( const char *host );
00795
00796 #endif
00797
00798