Disk ARchive  2.7.13
Full featured and portable backup and archiving tool
Public Member Functions | Protected Member Functions | Private Attributes | List of all members
libdar::entrepot Class Referenceabstract

the Entrepot interface More...

#include <entrepot.hpp>

+ Inheritance diagram for libdar::entrepot:
+ Collaboration diagram for libdar::entrepot:

Public Member Functions

 entrepot ()
 constructor
 
 entrepot (const entrepot &ref)=default
 copy constructor
 
 entrepot (entrepot &&ref) noexcept=default
 move constructor
 
entrepotoperator= (const entrepot &ref)=default
 assignment operator
 
entrepotoperator= (entrepot &&ref) noexcept=default
 move operator
 
virtual ~entrepot ()=default
 destructor
 
bool operator== (const entrepot &ref) const
 says whether two entrepot objects points to the same location
 
virtual void set_location (const path &chemin)
 defines the directory where to proceed to future open() – this is a "chdir" semantics
 
virtual void set_root (const path &p_root)
 defines the root to use if set_location is given a relative path
 
virtual path get_full_path () const
 returns the full path of location More...
 
virtual std::string get_url () const =0
 full path of current directory + anything necessary to provide URL formated information
 
void set_user_ownership (const std::string &x_user)
 set default ownership for files to be created thanks to the open() methods
 
void set_group_ownership (const std::string &x_group)
 
virtual const pathget_location () const
 
virtual const pathget_root () const
 
const std::string & get_user_ownership () const
 
const std::string & get_group_ownership () const
 
fichier_globalopen (const std::shared_ptr< user_interaction > &dialog, const std::string &filename, gf_mode mode, bool force_permission, U_I permission, bool fail_if_exists, bool erase, hash_algo algo, bool provide_a_plain_file=true) const
 defines the way to open a file and return a "class fichier_global" object as last argument upon success More...
 
virtual void read_dir_reset () const =0
 routines to read existing files in the current directory (see set_location() / set_root() methods)
 
virtual bool read_dir_next (std::string &filename) const =0
 
void unlink (const std::string &filename) const
 
virtual entrepotclone () const =0
 generate a clone of "this" More...
 

Protected Member Functions

virtual fichier_globalinherited_open (const std::shared_ptr< user_interaction > &dialog, const std::string &filename, gf_mode mode, bool force_permission, U_I permission, bool fail_if_exists, bool erase) const =0
 
virtual void inherited_unlink (const std::string &filename) const =0
 
virtual void read_dir_flush ()=0
 

Private Attributes

path where
 
path root
 
std::string user
 
std::string group
 

Detailed Description

the Entrepot interface

Definition at line 55 of file entrepot.hpp.

Member Function Documentation

◆ clone()

virtual entrepot* libdar::entrepot::clone ( ) const
pure virtual

generate a clone of "this"

Deprecated:
this method will disapear in the future it is only kept there to allow the APIv5 adaptation layer to work over APIv6

Implemented in libdar::entrepot_local, and libdar::entrepot_libcurl.

◆ get_full_path()

virtual path libdar::entrepot::get_full_path ( ) const
virtual

returns the full path of location

Note
this is equivalent to get_root()/get_location() if get_location() is relative path else get_location()

Reimplemented in libdar::entrepot_libcurl.

Referenced by libdar::entrepot_local::get_url().

◆ open()

fichier_global* libdar::entrepot::open ( const std::shared_ptr< user_interaction > &  dialog,
const std::string &  filename,
gf_mode  mode,
bool  force_permission,
U_I  permission,
bool  fail_if_exists,
bool  erase,
hash_algo  algo,
bool  provide_a_plain_file = true 
) const

defines the way to open a file and return a "class fichier_global" object as last argument upon success

Parameters
[in]dialogfor user interaction
[in]filenameis the full path+name of the file to open (read/create/write to)
[in]modedefines which way to open the file (read-only, read-write or write-only)
[in]force_permissionwhether to set the file permission to the value given in the permission argument
[in]permissionif force_permission is set, change the file permission to that value
[in]fail_if_existstells whether the underlying implementation have to fail throwing Erange("exists") if the file already exist when write access is required
[in]erasetells whether the underlying implementation will empty an existing file before writing to it
[in]algodefines the hash file to create, other value than hash_none are accepted only in writeonly mode with erase or fail_if_exist set
[in]provide_a_plain_fileif true a plainly seekable object is returned which mimics the available features of a plain file, else a pipe-like object which has limited seek features but which can still record the offset position is returned and is suitable to be used on real named/anonymous pipes (if the provided filename is expected to be of such type for example)
Returns
upon success returns an object from a class inherited from fichier_global that the caller has the duty to delete, else an exception is thrown (most of the time it should be a Esystem object) by the called inherited class

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