AcessNative - Debugging and implementing, getting there now
[tpg/acess2.git] / Usermode / include / uri.h
1 /*
2  * Acess2 - URI Parser and opener
3  * By John Hodge (thePowersGang)
4  */
5 #ifndef _LIB_URI_H_
6 #define _LIB_URI_H_
7
8 typedef struct sURI     tURI;
9 typedef struct sURIFile tURIFile;
10 typedef struct sURIHandler      tURIHandler;
11
12 enum eURIModes
13 {
14         URI_MODE_READ  = 0x01,
15         URI_MODE_WRITE = 0x02
16 };
17
18 struct sURI
19 {
20         char    *Proto;
21         char    *Host;
22         char    *PortStr;
23          int    PortNum;
24         char    *Path;
25 };
26
27 struct sURIHandler
28 {
29         char    *Name;
30          int    BlockSize;
31         
32          int    (*Open)(char *Host, int Port, char *Path, int Flags);
33         void    (*Close)(int Handle);
34         size_t  (*Read)(int Handle, size_t Bytes, void *Buffer);
35         size_t  (*Write)(int Handle, size_t Bytes, void *Buffer);
36         size_t  (*GetSize)(int Handle);
37 };
38
39 // === FUNCTIONS ===
40 extern tURI     *URI_Parse(const char *String);
41 extern tURIFile *URI_Open(int Mode, tURI *URI);
42 extern int      URI_GetSize(tURIFile *File, size_t *Size);
43 extern size_t   URI_Read(tURIFile *File, size_t Bytes, void *Buffer);
44 extern size_t   URI_Write(tURIFile *File, size_t Bytes, void *Buffer);
45 extern void     URI_Close(tURIFile *File);
46
47 #endif

UCC git Repository :: git.ucc.asn.au