libwebsockets
Lightweight C library for HTML5 websockets
|
Go to the source code of this file.
Data Structures | |
struct | lws_fop_fd |
struct | lws_fops_index |
struct | lws_plat_file_ops |
Macros | |
#define | LWS_FOP_OPEN open |
#define | LWS_FOP_CLOSE close |
#define | LWS_FOP_SEEK_CUR seek_cur |
#define | LWS_FOP_READ read |
#define | LWS_FOP_WRITE write |
#define | LWS_FOP_FLAGS_MASK ((1 << 23) - 1) |
#define | LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP (1 << 24) |
#define | LWS_FOP_FLAG_COMPR_IS_GZIP (1 << 25) |
#define | LWS_FOP_FLAG_MOD_TIME_VALID (1 << 26) |
#define | LWS_FOP_FLAG_VIRTUAL (1 << 27) |
Typedefs | |
typedef struct lws_fop_fd * | lws_fop_fd_t |
Variables | |
struct lws_plat_file_ops | fops_zip |
struct lws_fop_fd |
Data Fields | ||
---|---|---|
lws_filefd_type | fd |
real file descriptor related to the file... |
const struct lws_plat_file_ops * | fops |
fops that apply to this fop_fd |
void * | filesystem_priv |
ignored by lws; owned by the fops handlers |
lws_filepos_t | pos |
generic "position in file" |
lws_filepos_t | len |
generic "length of file" |
lws_fop_flags_t | flags |
copy of the returned flags |
uint32_t | mod_time |
optional "modification time of file", only valid if .open() set the LWS_FOP_FLAG_MOD_TIME_VALID flag |
struct lws_fops_index |
struct lws_plat_file_ops |
Data Fields | ||
---|---|---|
lws_fop_fd_t(*)(const struct lws_plat_file_ops *fops_own, const struct lws_plat_file_ops *fops, const char *filename, const char *vpath, lws_fop_flags_t *flags) | LWS_FOP_OPEN |
Open file (always binary access if plat supports it) fops_own is the fops this was called through. fops is the base fops the open can use to find files to process as present as its own, like the zip fops does. vpath may be NULL, or if the fops understands it, the point at which the filename's virtual part starts. *flags & LWS_FOP_FLAGS_MASK should be set to O_RDONLY or O_RDWR. If the file may be gzip-compressed, LWS_FOP_FLAG_COMPR_ACCEPTABLE_GZIP is set. If it actually is gzip-compressed, then the open handler should OR LWS_FOP_FLAG_COMPR_IS_GZIP on to *flags before returning. |
int(*)(lws_fop_fd_t *fop_fd) | LWS_FOP_CLOSE |
close file AND set the pointer to NULL |
lws_fileofs_t(*)(lws_fop_fd_t fop_fd, lws_fileofs_t offset_from_cur_pos) | LWS_FOP_SEEK_CUR |
seek from current position |
int(*)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, uint8_t *buf, lws_filepos_t len) | LWS_FOP_READ |
Read from file, on exit *amount is set to amount actually read |
int(*)(lws_fop_fd_t fop_fd, lws_filepos_t *amount, uint8_t *buf, lws_filepos_t len) | LWS_FOP_WRITE |
Write to file, on exit *amount is set to amount actually written |
struct lws_fops_index | fi[3] |
vfs path signatures implying use of this fops |
const struct lws_plat_file_ops * | next |
NULL or next fops in list... eg copy static fops def to heap and modify copy at runtime |
struct lws_context * | cx |
the lws_context... eg copy static fops def to heap and modify copy at runtime |
#define LWS_FOP_OPEN open |
struct lws_plat_file_ops - Platform-specific file operations
These provide platform-agnostic ways to deal with filesystem access in the library and in the user code.
typedef struct lws_fop_fd* lws_fop_fd_t |
LWS_VISIBLE LWS_EXTERN struct lws_plat_file_ops *LWS_WARN_UNUSED_RESULT lws_get_fops | ( | struct lws_context * | context | ) |
lws_get_fops() - get current file ops
context | context |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN void lws_set_fops | ( | struct lws_context * | context, |
const struct lws_plat_file_ops * | fops ) |
References LWS_EXTERN, LWS_VISIBLE, and LWS_WARN_UNUSED_RESULT.
LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT lws_vfs_tell | ( | lws_fop_fd_t | fop_fd | ) |
lws_vfs_tell() - get current file position
fop_fd | fop_fd we are asking about |
References LWS_EXTERN, LWS_VISIBLE, and LWS_WARN_UNUSED_RESULT.
LWS_VISIBLE LWS_EXTERN lws_filepos_t LWS_WARN_UNUSED_RESULT lws_vfs_get_length | ( | lws_fop_fd_t | fop_fd | ) |
lws_vfs_get_length() - get current file total length in bytes
fop_fd | fop_fd we are asking about |
References LWS_EXTERN, LWS_VISIBLE, and LWS_WARN_UNUSED_RESULT.
LWS_VISIBLE LWS_EXTERN uint32_t LWS_WARN_UNUSED_RESULT lws_vfs_get_mod_time | ( | lws_fop_fd_t | fop_fd | ) |
lws_vfs_get_mod_time() - get time file last modified
fop_fd | fop_fd we are asking about |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN lws_fileofs_t lws_vfs_file_seek_set | ( | lws_fop_fd_t | fop_fd, |
lws_fileofs_t | offset ) |
lws_vfs_file_seek_set() - seek relative to start of file
fop_fd | fop_fd we are seeking in |
offset | offset from start of file |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN lws_fileofs_t lws_vfs_file_seek_end | ( | lws_fop_fd_t | fop_fd, |
lws_fileofs_t | offset ) |
lws_vfs_file_seek_end() - seek relative to end of file
fop_fd | fop_fd we are seeking in |
offset | offset from start of file |
References fops_zip, LWS_EXTERN, LWS_VISIBLE, and LWS_WARN_UNUSED_RESULT.
LWS_VISIBLE LWS_EXTERN lws_fop_fd_t LWS_WARN_UNUSED_RESULT lws_vfs_file_open | ( | const struct lws_plat_file_ops * | fops, |
const char * | vfs_path, | ||
lws_fop_flags_t * | flags ) |
lws_plat_file_open() - open vfs filepath
fops | file ops struct that applies to this descriptor |
vfs_path | filename to open |
flags | pointer to open flags |
The vfs_path is scanned for known fops signatures, and the open directed to any matching fops open.
User code should use this api to perform vfs opens.
returns semi-opaque handle
References LWS_INLINE.
LWS_VISIBLE LWS_EXTERN lws_fop_fd_t _lws_plat_file_open | ( | const struct lws_plat_file_ops * | fops_own, |
const struct lws_plat_file_ops * | fops, | ||
const char * | filename, | ||
const char * | vpath, | ||
lws_fop_flags_t * | flags ) |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_close | ( | lws_fop_fd_t * | fop_fd | ) |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN lws_fileofs_t _lws_plat_file_seek_cur | ( | lws_fop_fd_t | fop_fd, |
lws_fileofs_t | offset ) |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_read | ( | lws_fop_fd_t | fop_fd, |
lws_filepos_t * | amount, | ||
uint8_t * | buf, | ||
lws_filepos_t | len ) |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN int _lws_plat_file_write | ( | lws_fop_fd_t | fop_fd, |
lws_filepos_t * | amount, | ||
uint8_t * | buf, | ||
lws_filepos_t | len ) |
References LWS_EXTERN, and LWS_VISIBLE.
LWS_VISIBLE LWS_EXTERN int lws_alloc_vfs_file | ( | struct lws_context * | context, |
const char * | filename, | ||
uint8_t ** | buf, | ||
lws_filepos_t * | amount ) |
|
extern |
Referenced by lws_vfs_file_seek_end().