dmlite Namespace Reference

Namespace for the dmlite C++ API. More...

Namespaces

namespace  checksums

Classes

struct  SecurityCredentials
 Security credentials. To be filled by the front-end. More...
struct  UserInfo
struct  GroupInfo
struct  SecurityContext
 Security context. To be created by the Authn. More...
class  Authn
class  AuthnFactory
 AuthnFactory. More...
class  BaseInterface
 Base class for interfaces. More...
class  BaseFactory
 Base class for factories. More...
struct  Directory
 Typedef for directories. More...
class  Catalog
 Interface for Catalog (Namespaces). More...
class  CatalogFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
class  PluginManager
 CatalogInterface can only be instantiated through this class. More...
class  StackInstance
struct  PluginIdCard
 Joint between plugins and plugin-manager. More...
class  DummyCatalog
class  DummyPoolManager
class  DmException
 Base exception class. More...
struct  IDirectory
 Typedef for directories. More...
struct  ExtendedStat
 File/directory metadata. More...
struct  SymLink
 Symbolic link. More...
struct  Replica
 File replica metadata. More...
class  INode
class  INodeFactory
 INodeFactory. More...
class  InodeTrans
 Convenience class that releases a resource on destruction. More...
class  IOHandler
 IO interface. More...
class  IODriver
 IO Driver. More...
class  IODriverFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
struct  Chunk
 Represents a chunk of a file. More...
struct  Location
 Represent the complete location of a file. More...
class  PoolHandler
 Handler for a pool. Works similary to a file handler. More...
class  PoolDriver
 Interface for a pool driver. More...
class  PoolDriverFactory
 PoolDriver factory. More...
struct  Pool
 Internal interface for handling pool metadata. More...
struct  xferprogmarker
 Progress markers for file copies. FTS jargon calls these "FTS performance markers" beware, we assume that this structure is identical to the one defined in the C API. More...
class  PoolManager
 Interface for pool types. More...
class  PoolManagerFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
class  DmStatus
struct  Extensible
 Helpful typedef for KeyValue containers. More...
class  MysqlWrap
class  MySqlConnectionFactory
class  MySqlHolder
 Holder of mysql connections, base class singleton holding the mysql conn pool. More...
class  PoolElementFactory
class  PoolContainer
 Implements a pool of whichever resource. More...
class  PoolGrabber
 Convenience class that releases a resource on destruction. More...
struct  AclEntry
 ACL Entry. More...
struct  Acl
struct  Url
class  BuiltInAuthn
class  BuiltInAuthnFactory
struct  BuiltInDir
class  BuiltInCatalog
class  BuiltInCatalogFactory
 Plug-ins must implement a concrete factory to be instantiated. More...
class  DavixStuff
class  DavixCtxFactory
class  DavixCtxPool
class  DavixGrabber
struct  DomeCredentials
class  DomeTalker
class  Statement
 Prepared statement wrapper. More...
class  dmTask
class  dmTaskExec

Typedefs

typedef struct
dmlite::xferprogmarker 
xferprogmarker
 Progress markers for file copies. FTS jargon calls these "FTS performance markers" beware, we assume that this structure is identical to the one defined in the C API.

Enumerations

enum  TokenResult {
  kTokenOK = 0, kTokenMalformed, kTokenInvalid, kTokenExpired,
  kTokenInvalidMode, kTokenInternalError
}
 

Possible outputs for validateToken.

More...
enum  DomeHttpCode {
  DOME_HTTP_OK = 200, DOME_HTTP_BAD_REQUEST = 400, DOME_HTTP_DENIED = 403, DOME_HTTP_NOT_FOUND = 404,
  DOME_HTTP_CONFLICT = 409, DOME_HTTP_UNPROCESSABLE = 422, DOME_HTTP_INTERNAL_SERVER_ERROR = 500, DOME_HTTP_INSUFFICIENT_STORAGE = 507
}

Functions

void destroy_thread (void *)
void init_thread (void)
bool hasGroup (const std::vector< GroupInfo > &groups, gid_t gid)
int checkPermissions (const SecurityContext *context, const Acl &acl, const struct::stat &stat, mode_t mode)
std::string voFromDn (const std::string &mapfile, const std::string &dn)
std::string voFromRole (const std::string &role)
std::string getCertificateSubject (const std::string &path)
 Get the subject from the certificate.
std::string generateToken (const std::string &id, const std::string &pfn, const std::string &passwd, time_t lifetime, bool write=false)
TokenResult validateToken (const std::string &token, const std::string &id, const std::string &pfn, const std::string &passwd, bool write=false)
int http_status (const DmException &e)
int http_status (const DmStatus &e)

Variables

const unsigned API_VERSION = 20121218
 API Version.
Logger::bitmask stackinstancelogmask
Logger::component stackinstancelogname
pthread_once_t initialize_mysql_thread
pthread_key_t destructor_key
Logger::bitmask davixpoollogmask
Logger::component davixpoollogname
Logger::bitmask mysqllogmask
Logger::component mysqllogname

Detailed Description

Namespace for the dmlite C++ API.


Typedef Documentation

Progress markers for file copies. FTS jargon calls these "FTS performance markers" beware, we assume that this structure is identical to the one defined in the C API.


Enumeration Type Documentation

Enumerator:
DOME_HTTP_OK 
DOME_HTTP_BAD_REQUEST 
DOME_HTTP_DENIED 
DOME_HTTP_NOT_FOUND 
DOME_HTTP_CONFLICT 
DOME_HTTP_UNPROCESSABLE 
DOME_HTTP_INTERNAL_SERVER_ERROR 
DOME_HTTP_INSUFFICIENT_STORAGE 

Possible outputs for validateToken.

Enumerator:
kTokenOK 
kTokenMalformed 
kTokenInvalid 
kTokenExpired 
kTokenInvalidMode 
kTokenInternalError 

Function Documentation

int dmlite::checkPermissions ( const SecurityContext *  context,
const Acl &  acl,
const struct::stat &  stat,
mode_t  mode 
)

Check if a specific user has the demanded rights.

Note:
This works using uid and gid, so it will only work with plug-ins that provide this metadata (as unsigned!!).
Parameters:
context The security context.
acl The Access Control list.
stat A struct stat which mode will be checked.
mode The mode to be checked.
Returns:
0 if the mode is allowed, 1 if not.
void dmlite::destroy_thread ( void *   ) 
std::string dmlite::generateToken ( const std::string &  id,
const std::string &  pfn,
const std::string &  passwd,
time_t  lifetime,
bool  write = false 
)

Generate a token.

Parameters:
id A unique ID of the user. May be the DN, the IP...
pfn The PFN we want a token for.
passwd The password to be used.
lifetime Token lifetime.
write If true, this will be a token for write access.
std::string dmlite::getCertificateSubject ( const std::string &  path  ) 

Get the subject from the certificate.

bool dmlite::hasGroup ( const std::vector< GroupInfo > &  groups,
gid_t  gid 
)

Check if the group vector contains the given gid.

Parameters:
groups The GroupInfo vector.
gid The gid to look for.
Returns:
true if the vector contains the given gid. false otherwise.
int dmlite::http_status ( const DmStatus &  e  ) 
int dmlite::http_status ( const DmException &  e  ) 
void dmlite::init_thread ( void   ) 
TokenResult dmlite::validateToken ( const std::string &  token,
const std::string &  id,
const std::string &  pfn,
const std::string &  passwd,
bool  write = false 
)

Validate a token. It must have been previously generated by generateToken.

Parameters:
token The token to validate.
id The SAME unique ID used to generate the token.
pfn The that is being accessed.
passwd The password that must be used to generate the token.
write If true, write access will be validated.
std::string dmlite::voFromDn ( const std::string &  mapfile,
const std::string &  dn 
)

Get the VO from a full DN.

Parameters:
mapfile The file that contains the user => group mapping.
dn The DN to parse.
Returns:
The mapped VO.
std::string dmlite::voFromRole ( const std::string &  role  ) 

Get the VO from a role.

Parameters:
role The role.
Returns:
The VO.

Variable Documentation

const unsigned dmlite::API_VERSION = 20121218

API Version.

pthread_key_t dmlite::destructor_key

Generated on 5 Nov 2020 for dmlite by  doxygen 1.6.1