Davix::DavFile Class Reference

Davix File Interface. More...

#include <davfile.hpp>

Data Structures

class  Iterator

Public Member Functions

 DavFile (Context &c, const Uri &url)
 default constructor
 DavFile (Context &c, const RequestParams &params, const Uri &url)
 DavFile (const DavFile &orig)
virtual ~DavFile ()
 destructor
const UrigetUri () const
 return Uri of the current file
std::vector< DavFilegetReplicas (const RequestParams *params, DavixError **err) throw ()
 return all replicas associated to this file
dav_ssize_t readPartialBufferVec (const RequestParams *params, const DavIOVecInput *input_vec, DavIOVecOuput *ioutput_vec, const dav_size_t count_vec, DavixError **err) throw ()
 Vector read operation Able to do several read on several data chunk in one single operation. Uses Http multi-part when supported by the server, simulate a vector read operation otherwise.
dav_ssize_t readPartial (const RequestParams *params, void *buff, dav_size_t count, dav_off_t offset, DavixError **err) throw ()
 Partial position independant read.
dav_ssize_t getToFd (const RequestParams *params, int fd, DavixError **err) throw ()
 Get the full file content and write it to file descriptor.
dav_ssize_t getToFd (const RequestParams *params, int fd, dav_size_t size_read, DavixError **err) throw ()
 Get the first 'size_read' bytes of the file and write it to file descriptor.
dav_ssize_t getFull (const RequestParams *params, std::vector< char > &buffer, DavixError **err) throw ()
 Get the full file content in a dynamically allocated buffer.
dav_ssize_t get (const RequestParams *params, std::vector< char > &buffer)
 Get the full file content to buffer.
void put (const RequestParams *params, int fd, dav_size_t size_write)
 Create/Replace file content.
void put (const RequestParams *params, const char *buffer, dav_size_t size_write)
 Create/Replace file content.
void move (const RequestParams *params, DavFile &destination)
 move
void deletion (const RequestParams *params=NULL)
 Suppress the current entity or collection.
int deletion (const RequestParams *params, DavixError **err) throw ()
 Suppress the current entity or collection.
void makeCollection (const RequestParams *params=NULL)
 create a collection (directory or bucket) at the current url
int makeCollection (const RequestParams *params, DavixError **err) throw ()
 create a collection (directory or bucket) at the current url
StatInfostatInfo (const RequestParams *params, StatInfo &info)
 execute a file meta-data query
int stat (const RequestParams *params, struct stat *st, DavixError **err) throw ()
 execute a POSIX-like stat() query
Iterator listCollection (const RequestParams *params)
 Collection listing.
std::string & checksum (const RequestParams *params, std::string &checksm, const std::string &chk_algo)
 compute checksum of the file
int checksum (const RequestParams *params, std::string &checksm, const std::string &chk_algo, DavixError **err) throw ()
 compute checksum of the file with the given algorithm (MD5, CRC32, ADLER32)
void prefetchInfo (off_t offset, dav_size_t size_read, advise_t adv)
 provide information on the next file operation
QuotaInfoquotaInfo (const RequestParams *params, QuotaInfo &info)
 retrieve quota information
 DEPRECATED (dav_ssize_t getAllReplicas(const RequestParams *params, ReplicaVec &vec, DavixError **err))
 DEPRECATED (int putFromFd(const RequestParams *params, int fd, dav_size_t size_write, DavixError **err) throw())

Detailed Description

Davix File Interface.

Davix File interface


Constructor & Destructor Documentation

Davix::DavFile::DavFile ( Context c,
const Uri url 
)

default constructor

Parameters:
c context
url remote file URL

Member Function Documentation

int Davix::DavFile::checksum ( const RequestParams params,
std::string &  checksm,
const std::string &  chk_algo,
DavixError **  err 
) throw ()

compute checksum of the file with the given algorithm (MD5, CRC32, ADLER32)

Exception safe version of checksum

example_code_snippets.cpp checksum no throw

std::string& Davix::DavFile::checksum ( const RequestParams params,
std::string &  checksm,
const std::string &  chk_algo 
)

compute checksum of the file

with the given algorithm (MD5, CRC32, ADLER32)

server implementation dependend

Davix::checksum support LCGDM-DAV, dCache Jetty and Aws S3 checksum support

Parameters:
params request parameters
checksm checksum buffer
chk_algo string of the algorithm (eg: "MD5" )
Returns:
reference to checksm
Exceptions:
throw DavixException if error occurs

example_code_snippets.cpp checksum

int Davix::DavFile::deletion ( const RequestParams params,
DavixError **  err 
) throw ()

Suppress the current entity or collection.

Exception safe version of deletion(const RequestParams* params = NULL)

example_code_snippets.cpp delete no throw

void Davix::DavFile::deletion ( const RequestParams params = NULL  ) 

Suppress the current entity or collection.

Parameters:
params Davix request Parameters
Exceptions:
throw DavixException if error occurs

example_code_snippets.cpp delete

Davix::DavFile::DEPRECATED ( int   putFromFdconst RequestParams *params, int fd, dav_size_t size_write, DavixError **err) throw(  ) 
Deprecated:
please use put() as the replacement, will be removed in 2.0
Davix::DavFile::DEPRECATED ( dav_ssize_t   getAllReplicasconst RequestParams *params, ReplicaVec &vec, DavixError **err  ) 
Deprecated:
deprecated, will be removed in 2.0
dav_ssize_t Davix::DavFile::get ( const RequestParams params,
std::vector< char > &  buffer 
)

Get the full file content to buffer.

Parameters:
params Davix request Parameters
buffer reference to a vector for storing the result
Returns:
total number of bytes read, or -1 if error occures

Get the file content in a dynamically allocated buffer

WARNING: this operation is without size limit for the content

example_code_snippets.cpp get

dav_ssize_t Davix::DavFile::getFull ( const RequestParams params,
std::vector< char > &  buffer,
DavixError **  err 
) throw ()

Get the full file content in a dynamically allocated buffer.

Parameters:
params Davix request Parameters
buffer reference to a vector for the result
err Davix error report
Returns:
total number of bytes read, or -1 if error occures

example_code_snippets.cpp getFull

std::vector<DavFile> Davix::DavFile::getReplicas ( const RequestParams params,
DavixError **  err 
) throw ()

return all replicas associated to this file

Replicas are found using a corresponding The MetaLink standard ( rfc5854, rfc6249 )

Parameters:
params Davix Request parameters
err Davix error report
Returns:
Replica vector, if error is found return empty vector and set err properly

example_code_snippets.cpp getReplicas

dav_ssize_t Davix::DavFile::getToFd ( const RequestParams params,
int  fd,
dav_size_t  size_read,
DavixError **  err 
) throw ()

Get the first 'size_read' bytes of the file and write it to file descriptor.

Parameters:
params Davix request Parameters
fd file descriptor for write operation
size_read number of bytes to read
err Davix error report
Returns:
total number of bytes read, or -1 if error occures

example_code_snippets.cpp getToFd sized

dav_ssize_t Davix::DavFile::getToFd ( const RequestParams params,
int  fd,
DavixError **  err 
) throw ()

Get the full file content and write it to file descriptor.

Parameters:
params Davix request Parameters
fd file descriptor for write operation
err Davix error report
Returns:
total number of bytes read, or -1 if error occures

example_code_snippets.cpp getToFd

Iterator Davix::DavFile::listCollection ( const RequestParams params  ) 

Collection listing.

Parameters:
params Davix request parameters
Returns:
Iterator to the collection

example_code_snippets.cpp listCollection

int Davix::DavFile::makeCollection ( const RequestParams params,
DavixError **  err 
) throw ()

create a collection (directory or bucket) at the current url

Exception safe version of makeCollection(const RequestParams *params = NULL)

example_code_snippets.cpp makeCollection no throw

void Davix::DavFile::makeCollection ( const RequestParams params = NULL  ) 

create a collection (directory or bucket) at the current url

Parameters:
params Davix request Parameters
Exceptions:
throw DavixException if error occurs

example_code_snippets.cpp makeCollection

void Davix::DavFile::move ( const RequestParams params,
DavFile destination 
)

move

Parameters:
params Davix request Parameters
destination destination resource

Move the current resource to Destination.

The result of the operation depend of the protocol used.

Protocol supported currently: WebDav, S3

example_code_snippets.cpp move

void Davix::DavFile::prefetchInfo ( off_t  offset,
dav_size_t  size_read,
advise_t  adv 
)

provide information on the next file operation

provide information on the next file operations for optimizations and prefetching

Parameters:
offset 
size_read 
adv 
void Davix::DavFile::put ( const RequestParams params,
const char *  buffer,
dav_size_t  size_write 
)

Create/Replace file content.

Parameters:
params Davix request Parameters
buffer buffer with data to write
size_write number of bytes to write
Exceptions:
throw DavixException if an error occurs

Set a new content for the file. The new content comes from buffer.

example_code_snippets.cpp put buffer

void Davix::DavFile::put ( const RequestParams params,
int  fd,
dav_size_t  size_write 
)

Create/Replace file content.

Parameters:
params Davix request Parameters
fd file descriptor
size_write number of bytes to write
Exceptions:
throw DavixException if an error occurs

Create / Replace the file. Read the new content from the file descriptor fd for a maximum of size_write bytes.

example_code_snippets.cpp put fd

QuotaInfo& Davix::DavFile::quotaInfo ( const RequestParams params,
QuotaInfo info 
)

retrieve quota information

retrieve quota information about a directory

Parameters:
params 
info 
dav_ssize_t Davix::DavFile::readPartial ( const RequestParams params,
void *  buff,
dav_size_t  count,
dav_off_t  offset,
DavixError **  err 
) throw ()

Partial position independant read.

Use ranged request when supported by the server, simulate a ranged request when not supported

Parameters:
params Davix request Parameters
buff buffer
count maximum read size
offset starting offset for the read operation
err Davix error report
Returns:
total number of bytes read, or -1 if error occures

example_code_snippets.cpp readPartial

dav_ssize_t Davix::DavFile::readPartialBufferVec ( const RequestParams params,
const DavIOVecInput input_vec,
DavIOVecOuput ioutput_vec,
const dav_size_t  count_vec,
DavixError **  err 
) throw ()

Vector read operation Able to do several read on several data chunk in one single operation. Uses Http multi-part when supported by the server, simulate a vector read operation otherwise.

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.

Parameters:
params Davix request Parameters
input_vec input vectors, parameters
ioutput_vec output vectors, results
count_vec number of vector
err Davix error report
Returns:
total number of bytes read, or -1 if error occures

example_code_snippets.cpp readPartialBufferVec

int Davix::DavFile::stat ( const RequestParams params,
struct stat *  st,
DavixError **  err 
) throw ()

execute a POSIX-like stat() query

Parameters:
params Davix request parameters
st stat struct
err Davix error report
Returns:
0 if success, or -1 if error occures

example_code_snippets.cpp stat

StatInfo& Davix::DavFile::statInfo ( const RequestParams params,
StatInfo info 
)

execute a file meta-data query

Parameters:
params Davix request Parameters
st stat struct
err Davix error report
Returns:
0 if success, or -1 if error occures

example_code_snippets.cpp statInfo


The documentation for this class was generated from the following file:

Generated on 8 May 2019 for davix by  doxygen 1.6.1