NCCLOUD  0.1
Public Member Functions | Static Public Member Functions
Storage Class Reference

Abstract base class for storage modules. More...

#include <storage.h>

Public Member Functions

virtual int init (std::map< std::string, std::string > &storage_param)=0
 Initialize the Storage instance based on storage_param.
virtual int store_chunk (std::string &srcdir, std::string &filename, int chunk_index)=0
 Upload a locally-stored chunk to a destination repository.
virtual int store_chunks (std::string &srcdir, std::string &filename, std::vector< int > &chunk_indices)=0
 Batched version of store_chunk().
virtual int store_metadata (std::string &srcdir, std::string &filename)=0
 Upload a locally-stored metadata file to a destination repository.
virtual int store_metadata_and_chunks (std::string &srcdir, std::string &filename, std::vector< int > &chunk_indices)=0
 Combined store_metadata() and store_chunks().
virtual int get_chunk (std::string &dstdir, std::string &filename, int chunk_index)=0
 Download a chunk from a repository to a local destination.
virtual int get_chunks (std::string &dstdir, std::string &filename, std::vector< int > &chunk_indices)=0
 Batched version of get_chunk().
virtual int get_metadata (std::string &dstdir, std::string &filename)=0
 Download a metadata file from a repository to a local destination.
virtual int get_metadata_and_chunks (std::string &dstdir, std::string &filename, std::vector< int > &chunk_indices)=0
 Combined get_metadata() and get_chunks().
virtual int delete_chunk (std::string &filename, int chunk_index)=0
 Delete a chunk from a repository.
virtual int delete_chunks (std::string &filename, std::vector< int > &chunk_indices)=0
 Batched version of delete_chunk().
virtual int delete_metadata (std::string &filename)=0
 Delete a metadata file from a repository.
virtual int delete_metadata_and_chunks (std::string &filename, std::vector< int > &chunk_indices)=0
 Combined delete_metadata() and delete_chunks().
virtual int list_files (void)=0
 Print a list of all files stored on the repository.
virtual int check_health (void)=0
 Checks accessibility of repository.

Static Public Member Functions

static Storageuse_storage (int type)
 Return an instance of a storage scheme, based on user's choice.

Detailed Description

Abstract base class for storage modules.


Member Function Documentation

virtual int Storage::check_health ( void  ) [pure virtual]

Checks accessibility of repository.

Returns:
0 if accessible, -1 if inaccessible
virtual int Storage::delete_chunk ( std::string &  filename,
int  chunk_index 
) [pure virtual]

Delete a chunk from a repository.

Parameters:
[in]filenamename of file being deleted
[in]chunk_indexchunk index of chunk to be deleted
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::delete_chunks ( std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]

Batched version of delete_chunk().

virtual int Storage::delete_metadata ( std::string &  filename) [pure virtual]

Delete a metadata file from a repository.

Parameters:
[in]filenamename of file being deleted
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::delete_metadata_and_chunks ( std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]
virtual int Storage::get_chunk ( std::string &  dstdir,
std::string &  filename,
int  chunk_index 
) [pure virtual]

Download a chunk from a repository to a local destination.

Parameters:
[in]dstdirdirectory under which chunk is to be stored locally
[in]filenamename of file being decoded
[in]chunk_indexchunk index of chunk to be retrieved
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::get_chunks ( std::string &  dstdir,
std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]

Batched version of get_chunk().

virtual int Storage::get_metadata ( std::string &  dstdir,
std::string &  filename 
) [pure virtual]

Download a metadata file from a repository to a local destination.

Parameters:
[in]dstdirdirectory under which metadata file is to be stored locally
[in]filenamename of file being decoded
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::get_metadata_and_chunks ( std::string &  dstdir,
std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]
virtual int Storage::init ( std::map< std::string, std::string > &  storage_param) [pure virtual]

Initialize the Storage instance based on storage_param.

Parameters:
[in]storage_paramdictionary of parameters for this repository
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::list_files ( void  ) [pure virtual]

Print a list of all files stored on the repository.

Returns:
0 if accessible, -1 if inaccessible
virtual int Storage::store_chunk ( std::string &  srcdir,
std::string &  filename,
int  chunk_index 
) [pure virtual]

Upload a locally-stored chunk to a destination repository.

Parameters:
[in]srcdirdirectory under which chunk is stored locally
[in]filenamename of file being encoded
[in]chunk_indexchunk index of chunk to be stored
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::store_chunks ( std::string &  srcdir,
std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]

Batched version of store_chunk().

virtual int Storage::store_metadata ( std::string &  srcdir,
std::string &  filename 
) [pure virtual]

Upload a locally-stored metadata file to a destination repository.

Parameters:
[in]srcdirdirectory under which metadata file is stored locally
[in]filenamename of file being encoded
Returns:
0 on success, -1 on failure (e.g., missing parameters)
virtual int Storage::store_metadata_and_chunks ( std::string &  srcdir,
std::string &  filename,
std::vector< int > &  chunk_indices 
) [pure virtual]
Storage * Storage::use_storage ( int  type) [static]

Return an instance of a storage scheme, based on user's choice.

Parameters:
[in]typechoice of coding scheme (0 = FMSR code)
Returns:
an instance of an appropriate subclass of Storage

The documentation for this class was generated from the following files:
 All Data Structures Files Functions Variables Enumerations Enumerator Defines