libBigWig
BigWigIO.h
Go to the documentation of this file.
1 #ifndef NOCURL
2 #include <curl/curl.h>
3 #else
4 #include <stdio.h>
5 typedef int CURLcode;
6 typedef void CURL;
7 #define CURLE_OK 0
8 #define CURLE_FAILED_INIT 1
9 #endif
10 
17 extern size_t GLOBAL_DEFAULTBUFFERSIZE;
18 
23  BWG_FILE = 0,
24  BWG_HTTP = 1,
25  BWG_HTTPS = 2,
26  BWG_FTP = 3
27 };
28 
32 typedef struct {
33  union {
34 #ifndef NOCURL
35  CURL *curl;
36 #endif
37  FILE *fp;
38  } x;
39  void *memBuf;
40  size_t filePos;
41  size_t bufPos;
42  size_t bufSize;
43  size_t bufLen;
46  char *fname;
47 } URL_t;
48 
62 size_t urlRead(URL_t *URL, void *buf, size_t bufSize);
63 
74 CURLcode urlSeek(URL_t *URL, size_t pos);
75 
91 URL_t *urlOpen(char *fname, CURLcode (*callBack)(CURL*), const char* mode);
92 
102 void urlClose(URL_t *URL);
This structure holds the file pointers and buffers needed for raw access to local and remote files...
Definition: BigWigIO.h:32
bigWigFile_type_enum
Definition: BigWigIO.h:22
void urlClose(URL_t *URL)
Close a local/remote file.
Definition: io.c:275
size_t urlRead(URL_t *URL, void *buf, size_t bufSize)
Reads data into the given buffer.
Definition: io.c:89
FILE * fp
Definition: BigWigIO.h:37
size_t bufPos
Definition: BigWigIO.h:41
size_t GLOBAL_DEFAULTBUFFERSIZE
Definition: io.c:12
size_t bufSize
Definition: BigWigIO.h:42
size_t filePos
Definition: BigWigIO.h:40
size_t bufLen
Definition: BigWigIO.h:43
URL_t * urlOpen(char *fname, CURLcode(*callBack)(CURL *), const char *mode)
Open a local or remote file.
Definition: io.c:159
char * fname
Definition: BigWigIO.h:46
CURLcode urlSeek(URL_t *URL, size_t pos)
Seeks to a given position in a local or remote file.
Definition: io.c:120
void * memBuf
Definition: BigWigIO.h:39
CURL * curl
Definition: BigWigIO.h:35
int isCompressed
Definition: BigWigIO.h:45