Davix::DavPosix Class Reference

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.
DAVIX_DIR * opendir (const RequestParams *params, const std::string &url, DavixError **err)
 open a directory for listing
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
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 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
int close (DAVIX_FD *fd, DavixError **err)
 close a existing file descriptor


Detailed Description

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.


Constructor & Destructor Documentation

Davix::DavPosix::DavPosix ( Context handle  ) 

default constructor

Parameters:
handle 


Member Function Documentation

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

Parameters:
fd davix file descriptor
err Davix Error report
Returns:
0 if success, negative value if error

int Davix::DavPosix::closedir ( DAVIX_DIR *  d,
DavixError **  err 
)

close a directory handle

Parameters:
d directory handle to close
err Davix error report system
Returns:
0 if success else a negative value and err is set.

int Davix::DavPosix::closedirpp ( DAVIX_DIR *  d,
DavixError **  err 
)

close a directory handle

Parameters:
d directory handle to close
err Davix error report system
Returns:
0 if success else a negative value and err is set.

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

Parameters:
fd davix file descriptor
offset offset in byte inside the file
flags lseek flags, similar to the lseek function
err Davix Error report
Returns:
the offset position or a negative value if an error occures

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

Warning:
dependening of the server, implementation, mode_t parameter can be ignored
Parameters:
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
Returns:
0 if success else a negative value and err is set.

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.

Parameters:
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
Returns:
Davix file descriptor in case of success, or NULL if an error occures.

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

Parameters:
params request options, can be NULL
url url of the directory to list
err Davix error report system
Returns:
DAVIX_DIR davix readdir handle, NULL if error

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

Parameters:
params request options, can be NULL
url url of the directory to list
err Davix error report system
Returns:
DAVIX_DIR davix readdir handle or NULL if error, in this case err is set.

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

Parameters:
fd davix file descriptor
buffer buffer to fill
count maximum number of bytes to read
offset offset to use
err Davix Error report
Returns:
the size of data or a negative value if an error occured

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

Parameters:
fd davix file descriptor
input_vec input vectors, parameters
output_vec output vectors, results
count_vec number of vector struct
err Davix Error report
Returns:
total number of bytes read, or -1 if error occures

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

Parameters:
fd davix file descriptor
buffer buffer to fill
count maximum number of bytes to read
err Davix Error report
Returns:
the size of data or a negative value if an error occured

struct dirent* Davix::DavPosix::readdir ( DAVIX_DIR *  dir,
DavixError **  err 
)

read an entry directory

behavior similar to the POSIX readdir function

Parameters:
dir directory handle
err Davix Error report
Returns:
dirent struct if success, or NULL if error

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() informations for each entry Supported by Webdav

Parameters:
dir directory handle
st struct to fill
err Davix Error report
Returns:
dirent struct if success, or NULL if error

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

Parameters:
params request options, can be NULL
url directory to delete
err Davix error report system
Returns:
0 if success else a negative value and err is set.

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.

Parameters:
params request options, can be NULL
str string url
st stat struct to fill
err Davix error report system
Returns:
0 if success, negative value if error

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

Parameters:
params request options, can be NULL
url file to delete
err Davix error report system
Returns:
0 if success else a negative value and err is set.

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

Parameters:
fd davix file descriptor
buf buffer with the write content
count number of bytes to write
err Davix Error report
Returns:
the size of the written data or a negative value if an error occured


The documentation for this class was generated from the following file:
Generated on 20 Jun 2013 for davix by  doxygen 1.4.7