POSIX-like API of Davix. More...
#include <davposix.hpp>
Public Member Functions | |
DavPosix (Context *handle) | |
default constructor | |
int | stat (const RequestParams *params, const std::string &str, struct stat *st, DavixError **err) |
POSIX-like stat() call. | |
int | stat64 (const RequestParams *params, const std::string &url, StatInfo *st, DavixError **err) |
DAVIX_DIR * | opendir (const RequestParams *params, const std::string &url, DavixError **err) |
open a directory for listing | |
struct dirent * | readdir (DAVIX_DIR *dir, DavixError **err) |
read an entry directory | |
int | closedir (DAVIX_DIR *d, DavixError **err) |
close a directory handle | |
DAVIX_DIR * | opendirpp (const RequestParams *params, const std::string &url, DavixError **err) |
open a directory for listing with per entry meta-data informations | |
struct dirent * | readdirpp (DAVIX_DIR *dir, struct stat *st, DavixError **err) |
execute an readdirpp function | |
int | closedirpp (DAVIX_DIR *d, DavixError **err) |
close a directory handle | |
int | mkdir (const RequestParams *params, const std::string &url, mode_t right, DavixError **err) |
execute a mkdir function with Webdav behavior similar to the POSIX mkdir function | |
int | unlink (const RequestParams *params, const std::string &url, DavixError **err) |
execute a remove file operation behavior similar to the POSIX unlink function | |
int | rmdir (const RequestParams *params, const std::string &url, DavixError **err) |
execute a remove directory operation behavior similar to the POSIX rmdir function | |
DAVIX_FD * | open (const RequestParams *params, const std::string &url, int flags, DavixError **err) |
open a file for read/write operation in a POSIX-like approach behavior similar to the POSIX open function This operation is supported on plain HTTP servers. | |
ssize_t | read (DAVIX_FD *fd, void *buffer, size_t count, DavixError **err) |
read a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX read function | |
ssize_t | pread (DAVIX_FD *fd, void *buffer, size_t count, off_t offset, DavixError **err) |
do a partial read of a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX pread function | |
dav_ssize_t | pread64 (DAVIX_FD *fd, void *buffer, dav_size_t count, dav_off_t offset, DavixError **err) |
ssize_t | pwrite (DAVIX_FD *fd, const void *buffer, size_t count, off_t offset, DavixError **err) |
do a partial write of a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX pwrite function | |
dav_ssize_t | pwrite64 (DAVIX_FD *fd, const void *buffer, dav_size_t count, dav_off_t offset, DavixError **err) |
dav_ssize_t | preadVec (DAVIX_FD *fd, const DavIOVecInput *input_vec, DavIOVecOuput *output_vec, dav_size_t count_vec, DavixError **err) |
pread_vec a file in a POSIX-like approach with HTTP(S) Vector read operation Allow to do several read operations in one single request | |
ssize_t | write (DAVIX_FD *fd, const void *buf, size_t count, DavixError **err) |
write a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX write function | |
off_t | lseek (DAVIX_FD *fd, off_t offset, int flags, DavixError **err) |
move the cursor a davix file with HTTP(S) behavior similar to the POSIX lseek function | |
dav_off_t | lseek64 (DAVIX_FD *fd, dav_off_t, int flags, DavixError **err) |
int | close (DAVIX_FD *fd, DavixError **err) |
close a existing file descriptor | |
void | fadvise (DAVIX_FD *fd, dav_off_t offset, dav_size_t len, advise_t advice) |
give advise about next file operation |
POSIX-like API of Davix.
DavPosix offers a POSIX-like API for HTTP/WebDav file operations
POSIX API can be used for convenience when porting application to a POSIX like interface.
DavPosix and all associated method are Thread safe.
Davix::DavPosix::DavPosix | ( | Context * | handle | ) |
default constructor
handle |
int Davix::DavPosix::close | ( | DAVIX_FD * | fd, | |
DavixError ** | err | |||
) |
close a existing file descriptor
Note : all file descriptors MUST be closed before the destruction of the parent davix context
fd | davix file descriptor | |
err | Davix Error report |
int Davix::DavPosix::closedir | ( | DAVIX_DIR * | d, | |
DavixError ** | err | |||
) |
close a directory handle
d | directory handle to close | |
err | Davix error report system |
int Davix::DavPosix::closedirpp | ( | DAVIX_DIR * | d, | |
DavixError ** | err | |||
) |
close a directory handle
d | directory handle to close | |
err | Davix error report system |
void Davix::DavPosix::fadvise | ( | DAVIX_FD * | fd, | |
dav_off_t | offset, | |||
dav_size_t | len, | |||
advise_t | advice | |||
) |
give advise about next file operation
similar to posix_fadvise, allow I/O optimizations non-blocking asynchronous function
fd | Davix file descriptor | |
offset | offset of the next chunk to read | |
len | size of the next chunk to read | |
advise | type of pattern for I/O : sequential, random |
off_t Davix::DavPosix::lseek | ( | DAVIX_FD * | fd, | |
off_t | offset, | |||
int | flags, | |||
DavixError ** | err | |||
) |
move the cursor a davix file with HTTP(S) behavior similar to the POSIX lseek function
fd | davix file descriptor | |
offset | offset in byte inside the file | |
flags | lseek flags, similar to the lseek function | |
err | Davix Error report |
dav_off_t Davix::DavPosix::lseek64 | ( | DAVIX_FD * | fd, | |
dav_off_t | , | |||
int | flags, | |||
DavixError ** | err | |||
) |
64bits versions of lseek
int Davix::DavPosix::mkdir | ( | const RequestParams * | params, | |
const std::string & | url, | |||
mode_t | right, | |||
DavixError ** | err | |||
) |
execute a mkdir function with Webdav behavior similar to the POSIX mkdir function
params | request options, can be NULL | |
url | url of the directory to create | |
right | default mode of the directory ( ignored for now ) | |
err | Davix error report system |
DAVIX_FD* Davix::DavPosix::open | ( | const RequestParams * | params, | |
const std::string & | url, | |||
int | flags, | |||
DavixError ** | err | |||
) |
open a file for read/write operation in a POSIX-like approach behavior similar to the POSIX open function This operation is supported on plain HTTP servers.
params | request options, can be NULL | |
url | url of the HTTP file to open | |
flags | open flags, similar to the POSIX function open | |
err | Davix Error report |
DAVIX_DIR* Davix::DavPosix::opendir | ( | const RequestParams * | params, | |
const std::string & | url, | |||
DavixError ** | err | |||
) |
open a directory for listing
behavior similar to the POSIX opendir function Supported by Webdav
params | request options, can be NULL | |
url | url of the directory to list | |
err | Davix error report system |
DAVIX_DIR* Davix::DavPosix::opendirpp | ( | const RequestParams * | params, | |
const std::string & | url, | |||
DavixError ** | err | |||
) |
open a directory for listing with per entry meta-data informations
Similar to Davix::DavPosix::opendir but provide stat() informations for each entry Supported by Webdav
params | request options, can be NULL | |
url | url of the directory to list | |
err | Davix error report system |
ssize_t Davix::DavPosix::pread | ( | DAVIX_FD * | fd, | |
void * | buffer, | |||
size_t | count, | |||
off_t | offset, | |||
DavixError ** | err | |||
) |
do a partial read of a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX pread function
fd | davix file descriptor | |
buffer | buffer to fill | |
count | maximum number of bytes to read | |
offset | offset to use | |
err | Davix Error report |
dav_ssize_t Davix::DavPosix::preadVec | ( | DAVIX_FD * | fd, | |
const DavIOVecInput * | input_vec, | |||
DavIOVecOuput * | output_vec, | |||
dav_size_t | count_vec, | |||
DavixError ** | err | |||
) |
pread_vec a file in a POSIX-like approach with HTTP(S) Vector read operation Allow to do several read operations in one single request
fd | davix file descriptor | |
input_vec | input vectors, parameters | |
output_vec | output vectors, results | |
count_vec | number of vector struct | |
err | Davix Error report |
ssize_t Davix::DavPosix::pwrite | ( | DAVIX_FD * | fd, | |
const void * | buffer, | |||
size_t | count, | |||
off_t | offset, | |||
DavixError ** | err | |||
) |
do a partial write of a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX pwrite function
fd | davix file descriptor | |
buffer | buffer to fill | |
count | maximum number of bytes to write | |
offset | offset to use | |
err | Davix Error report |
dav_ssize_t Davix::DavPosix::pwrite64 | ( | DAVIX_FD * | fd, | |
const void * | buffer, | |||
dav_size_t | count, | |||
dav_off_t | offset, | |||
DavixError ** | err | |||
) |
64bits version of pwrite
ssize_t Davix::DavPosix::read | ( | DAVIX_FD * | fd, | |
void * | buffer, | |||
size_t | count, | |||
DavixError ** | err | |||
) |
read a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX read function
fd | davix file descriptor | |
buffer | buffer to fill | |
count | maximum number of bytes to read | |
err | Davix Error report |
struct dirent* Davix::DavPosix::readdir | ( | DAVIX_DIR * | dir, | |
DavixError ** | err | |||
) | [read] |
read an entry directory
behavior similar to the POSIX readdir function
dir | directory handle | |
err | Davix Error report |
struct dirent* Davix::DavPosix::readdirpp | ( | DAVIX_DIR * | dir, | |
struct stat * | st, | |||
DavixError ** | err | |||
) | [read] |
execute an readdirpp function
Similar to Davix::DavPosix::readdir but provide stat() informations for each entry Supported by Webdav
dir | directory handle | |
st | struct to fill | |
err | Davix Error report |
int Davix::DavPosix::rmdir | ( | const RequestParams * | params, | |
const std::string & | url, | |||
DavixError ** | err | |||
) |
execute a remove directory operation behavior similar to the POSIX rmdir function
params | request options, can be NULL | |
url | directory to delete | |
err | Davix error report system |
int Davix::DavPosix::stat | ( | const RequestParams * | params, | |
const std::string & | str, | |||
struct stat * | st, | |||
DavixError ** | err | |||
) |
POSIX-like stat() call.
behavior similar to the POSIX stat function, see man 3 stat Supported by Webdav, Http and S3 Depending of the protocol, some struct stat field can be ignored.
params | request options, can be NULL | |
str | string url | |
st | stat struct to fill | |
err | Davix error report system |
int Davix::DavPosix::stat64 | ( | const RequestParams * | params, | |
const std::string & | url, | |||
StatInfo * | st, | |||
DavixError ** | err | |||
) |
64bits version of stat
int Davix::DavPosix::unlink | ( | const RequestParams * | params, | |
const std::string & | url, | |||
DavixError ** | err | |||
) |
execute a remove file operation behavior similar to the POSIX unlink function
params | request options, can be NULL | |
url | file to delete | |
err | Davix error report system |
ssize_t Davix::DavPosix::write | ( | DAVIX_FD * | fd, | |
const void * | buf, | |||
size_t | count, | |||
DavixError ** | err | |||
) |
write a file in a POSIX-like approach with HTTP(S) behavior similar to the POSIX write function
fd | davix file descriptor | |
buf | buffer with the write content | |
count | number of bytes to write | |
err | Davix Error report |