kurl.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef KURL_H
  2. #define KURL_H
  3. #include <sys/types.h>
  4. #define KURL_NULL 1
  5. #define KURL_INV_WHENCE 2
  6. #define KURL_SEEK_OUT 3
  7. #define KURL_NO_AUTH 4
  8. struct kurl_t;
  9. typedef struct kurl_t kurl_t;
  10. typedef struct {
  11. const char *s3keyid;
  12. const char *s3secretkey;
  13. const char *s3key_fn;
  14. } kurl_opt_t;
  15. #ifdef __cplusplus
  16. extern "C" {
  17. #endif
  18. int kurl_init(void);
  19. void kurl_destroy(void);
  20. kurl_t *kurl_open(const char *url, kurl_opt_t *opt);
  21. kurl_t *kurl_dopen(int fd);
  22. int kurl_close(kurl_t *ku);
  23. ssize_t kurl_read(kurl_t *ku, void *buf, size_t nbytes);
  24. off_t kurl_seek(kurl_t *ku, off_t offset, int whence);
  25. int kurl_buflen(kurl_t *ku, int len);
  26. off_t kurl_tell(const kurl_t *ku);
  27. int kurl_eof(const kurl_t *ku);
  28. int kurl_fileno(const kurl_t *ku);
  29. int kurl_error(const kurl_t *ku);
  30. #ifdef __cplusplus
  31. }
  32. #endif
  33. #ifndef KNETFILE_H
  34. #define KNETFILE_H
  35. typedef kurl_t knetFile;
  36. #define knet_open(fn, mode) kurl_open(fn, 0)
  37. #define knet_dopen(fd, mode) kurl_dopen(fd)
  38. #define knet_close(fp) kurl_close(fp)
  39. #define knet_read(fp, buf, len) kurl_read(fp, buf, len)
  40. #define knet_seek(fp, off, whence) kurl_seek(fp, off, whence)
  41. #define knet_tell(fp) kurl_tell(fp)
  42. #define knet_fileno(fp) kurl_fileno(fp)
  43. #define knet_win32_init() kurl_init()
  44. #define knet_win32_destroy() kurl_destroy()
  45. #endif
  46. #endif