CernVM-FS  2.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
MagicXattrManager Class Reference

#include <magic_xattr.h>

Inheritance diagram for MagicXattrManager:
Collaboration diagram for MagicXattrManager:

Public Member Functions

 MagicXattrManager (MountPoint *mountpoint, bool hide_magic_xattrs)
 
BaseMagicXattrGetLocked (const std::string &name, PathString path, catalog::DirectoryEntry *d)
 
std::string GetListString (catalog::DirectoryEntry *dirent)
 
void Register (const std::string &name, BaseMagicXattr *magic_xattr)
 
bool hide_magic_xattrs ()
 

Protected Attributes

std::map< std::string,
BaseMagicXattr * > 
xattr_list_
 
MountPointmount_point_
 
bool hide_magic_xattrs_
 

Additional Inherited Members

- Protected Member Functions inherited from SingleCopy
 SingleCopy ()
 

Detailed Description

This class is acting as a user entry point for magic extended attributes. It instantiates all defined attributes in the constructor. Users can:

  1. Register additional attributes
  2. Get a string containing zero-byte delimited list of attribute names (used in "cvmfs.cc")
  3. Get an attribute by name. Specifically, get a RAII wrapper around a singleton attribute instance. This means that the attribute instance registered with the manager does not get cloned or copied inside Get(). Instead, member variables are set and the original instance is returned. A mutex prevents from race conditions in case of concurrent access.

Definition at line 137 of file magic_xattr.h.

Constructor & Destructor Documentation

MagicXattrManager::MagicXattrManager ( MountPoint mountpoint,
bool  hide_magic_xattrs 
)

This file is part of the CernVM File System.

Definition at line 19 of file magic_xattr.cc.

Here is the call graph for this function:

Member Function Documentation

std::string MagicXattrManager::GetListString ( catalog::DirectoryEntry dirent)

Definition at line 67 of file magic_xattr.cc.

Referenced by cvmfs::cvmfs_listxattr().

Here is the call graph for this function:

Here is the caller graph for this function:

BaseMagicXattr * MagicXattrManager::GetLocked ( const std::string &  name,
PathString  path,
catalog::DirectoryEntry d 
)

The returned BaseMagicXattr* is supposed to be wrapped by a MagicXattrRAIIWrapper

Definition at line 102 of file magic_xattr.cc.

Referenced by cvmfs::cvmfs_getxattr().

Here is the call graph for this function:

Here is the caller graph for this function:

bool MagicXattrManager::hide_magic_xattrs ( )
inline

Definition at line 147 of file magic_xattr.h.

Referenced by cvmfs::cvmfs_listxattr(), and GetListString().

Here is the caller graph for this function:

void MagicXattrManager::Register ( const std::string &  name,
BaseMagicXattr magic_xattr 
)

Definition at line 118 of file magic_xattr.cc.

Referenced by MagicXattrManager(), and RegisterMagicXattrs().

Here is the caller graph for this function:

Member Data Documentation

bool MagicXattrManager::hide_magic_xattrs_
protected

Definition at line 152 of file magic_xattr.h.

Referenced by hide_magic_xattrs().

MountPoint* MagicXattrManager::mount_point_
protected

Definition at line 151 of file magic_xattr.h.

Referenced by GetListString(), and Register().

std::map<std::string, BaseMagicXattr *> MagicXattrManager::xattr_list_
protected

Definition at line 150 of file magic_xattr.h.

Referenced by GetListString(), GetLocked(), and Register().


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