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 Albe 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
 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

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 Albe 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.

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 25 Aug 2015 for davix by  doxygen 1.6.1