# saga::replica::logical_file Class Reference

The saga::replica class implements the saga::attributes interface. More...

`#include <logical_file.hpp>`

Inheritance diagram for saga::replica::logical_file:

[legend]

List of all members.

## Public Member Functions
| logical_file (session const &s, saga::url url, int mode=Read)
| Creates the object.
| logical_file (saga::url url, int mode=Read)
| Creates the object.
| logical_file (saga::object const &o)
| Creates the object.
| logical_file (void)
| Creates the object.
| ~logical_file (void)
| Destroys the object.
logical_file & | operator= (saga::object const &o)
| Brief description starts here.
void | add_location (saga::url url)
| Add a replica location to the replica set.
void | remove_location (saga::url url)
| Remove a replica location from the replica set.
void | update_location (saga::url old_url, saga::url new_url)
| Change a replica location in the replica set.
std::vector< saga::url > | list_locations (void)
| List the locations in the location set.
void | replicate (saga::url url, int flags=saga::replica::None)
| Brief Replicate a file from any of the known replica locations to a new location, and, on success, add the new replica location to the set of associated replicas.
## Static Public Member Functions
static logical_file | create (session const &s, saga::url url, int mode=Read)
| Factory function resembling logical_file(session, url, int) constructor.
static logical_file | create (saga::url url, int mode=Read)
| Factory function resembling logical_file(url, int) constructor.
template<typename Tag>
static saga::task | create (saga::url url, int mode=Read)
| Factory function resembling entry(url, int) constructor.

## Detailed Description

The saga::replica class implements the saga::attributes interface.

A logical file represents merely an entry in a name space which has (a) an associated set of registered (physical) replicas of that file, and (b) an associated set of meta data describing that logical file. Both sets can be empty. To access the content of a logical file, a saga::file needs to be created with one of the registered replica locations.

## Constructor & Destructor Documentation

saga::replica::logical_file::logical_file | ( | session const & | s,
|  | saga::url | url,
|  | int | mode = `Read` |
| ) |  |  |

Creates the object.

saga::replica::logical_file::logical_file | ( | saga::url | url,
|  | int | mode = `Read` |
| ) |  |  | `[explicit]`

Creates the object.

saga::replica::logical_file::logical_file | ( | saga::object const & | o | ) | `[explicit]`

Creates the object.

References saga::BadParameter, saga::object::get_type(), and saga::object::LogicalFile.

saga::replica::logical_file::logical_file | ( | void |  | ) |

Creates the object.

saga::replica::logical_file::~logical_file | ( | void |  | ) |

Destroys the object.

## Member Function Documentation

static logical_file saga::replica::logical_file::create | ( | session const & | s,
|  | saga::url | url,
|  | int | mode = `Read` |
| ) |  |  | `[inline, static]`

Factory function resembling logical_file(session, url, int) constructor.

Reimplemented from saga::name_space::entry.

static logical_file saga::replica::logical_file::create | ( | saga::url | url,
|  | int | mode = `Read` |
| ) |  |  | `[inline, static]`

Factory function resembling logical_file(url, int) constructor.

Reimplemented from saga::name_space::entry.

template<typename Tag>

static saga::task saga::replica::logical_file::create | ( | saga::url | url,
|  | int | mode = `Read` |
| ) |  |  | `[inline, static]`

Factory function resembling entry(url, int) constructor.

Reimplemented from saga::name_space::entry.

logical_file & saga::replica::logical_file::operator= | ( | saga::object const & | o | ) |

Brief description starts here.

Reimplemented from saga::name_space::entry.

References saga::name_space::entry::operator=().

void saga::replica::logical_file::add_location | ( | saga::url | url | ) | `[inline]`

Add a replica location to the replica set.

Parameters:

  | url | Location to add to set

void saga::replica::logical_file::remove_location | ( | saga::url | url | ) | `[inline]`

Remove a replica location from the replica set.

Parameters:

  | url | Replica to remove from set

void saga::replica::logical_file::update_location | ( | saga::url | old_url,
|  | saga::url | new_url |
| ) |  |  | `[inline]`

Change a replica location in the replica set.

Parameters:

  | old_url | Replica to be updated
  | new_url | Update for the replica

std::vector<saga::url> saga::replica::logical_file::list_locations | ( | void |  | ) | `[inline]`

List the locations in the location set.

Returns:
  Array of locations in set

void saga::replica::logical_file::replicate | ( | saga::url | url,
|  | int | flags = `saga::replica::None` |
| ) |  |  | `[inline]`

Brief Replicate a file from any of the known replica locations to a new location, and, on success, add the new replica location to the set of associated replicas.

Parameters:

  | url | Location to replicate to

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

- logical_file.hpp
- logical_file.cpp