davix
|
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) |
64bits version of /ref Davix::DavPosix::stat. | |
int | get_quota (const RequestParams *params, const std::string &url, QuotaInfo *st, DavixError **err) |
get_quota gives quota information on a directory | |
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 information. | |
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. | |
int | rename (const RequestParams *params, const std::string &source_url, const std::string &target_url, DavixError **err) |
rename a target file or collection. | |
int | unlink (const RequestParams *params, const std::string &url, DavixError **err) |
execute a remove file operation. | |
int | rmdir (const RequestParams *params, const std::string &url, DavixError **err) |
execute a remove directory operation. | |
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. | |
ssize_t | read (DAVIX_FD *fd, void *buffer, size_t count, DavixError **err) |
read a file in a POSIX-like approach with HTTP(S). | |
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). | |
dav_ssize_t | pread64 (DAVIX_FD *fd, void *buffer, dav_size_t count, dav_off_t offset, DavixError **err) |
64bits version of /ref Davix::DavPosix::pread | |
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). | |
dav_ssize_t | pwrite64 (DAVIX_FD *fd, const void *buffer, dav_size_t count, dav_off_t offset, DavixError **err) |
64bits version of /ref Davix::DavPosix::pwrite | |
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). | |
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). | |
off_t | lseek (DAVIX_FD *fd, off_t offset, int flags, DavixError **err) |
move the cursor a davix file with HTTP(S). | |
dav_off_t | lseek64 (DAVIX_FD *fd, dav_off_t, int flags, DavixError **err) |
64bits versions of /ref Davix::DavixPosix::lseek | |
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 advise) |
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 | ) |
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 | advise | ||
) |
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 |
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 information.
Similar to Davix::DavPosix::opendir but provide stat() information 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. Able to do several read operations in one single request. NOTE: The return code is the number of data bytes received from the server, not the total number of bytes written into the buffers. The two might not be equal if range coalescing is performed. Check diov_size of the output vector to make sure the buffers contain the expected number of bytes.
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 |
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 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 | ||
) |
execute an readdirpp function
Similar to Davix::DavPosix::readdir but provide stat() information for each entry.
Supported by Webdav.
dir | directory handle |
st | struct to fill |
err | Davix Error report |
int Davix::DavPosix::rename | ( | const RequestParams * | params, |
const std::string & | source_url, | ||
const std::string & | target_url, | ||
DavixError ** | err | ||
) |
rename a target file or collection.
Behavior similar to the POSIX rename function.
params | request options, can be NULL |
source_url | old url of the resource |
target_url | new url of the resource |
err | Davix error report system |
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 /ref Davix::DavPosix::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 |