NAME
EDG::WP4::CCM::Configuration - Configuration class
SYNOPSIS
$cid = $cfg->getConfigurationId();
$elt = $cfg->getElement($path);
$elt = $cfg->getElement($string);
$val = $cfg->getValue($path);
$val = $cfg->getValue($string);
$bool = $cfg->elementExists($path);
$bool = $cfg->elementExists($string);
$cfg->lock();
$cfg->unlock();
$bool = $cfg->isLocked();
DESCRIPTION
Module provides the Configuration class, to manipulate confgurations.
-
new
Create Configuration object. It takes three arguments:
cache_manager
: the CacheManager objectcid
: the configuration idlocked
: boolean lock flaganonymous
: boolean anonymous flagIf a configuration with specified CID does not exists, an exception is thrown.
When the
locked
flag is set (or when thelock
method is called to set it), the Configuration instance is bound to the specific CID, even if this is not the CacheManager's current one (e.g. when a new profile is fetched during the lifetime of the process, the CacheManager current CID is updated to the latest one). The locking is relevant when aCCM::Element
is accessed via aCCM::Configuration
instance (in particular, when a call to_prepareElement
is made). As a consequence, an unlocked Configuration instance will always use the CacheManager's current CID.Unless the anonymous flag is set to true, each process that creates a Configuration instance, creates a file named
ccm-active-profile.$cid.$pid
(with$cid
the CID and$pid
the process ID) under theprofile.$cid
directory in theCacheManager
cache path. The presence of this file protects the process from getting this particular CID removed by theccm-purge
command (e.g. by the daily purge cron job). If the anonymous flag is set to -1, the permissions of the user to create this file are verified, and if the user can write to this file, the anonymous flag is set to false (this is only verified once during initialisation).Processes that have no permission to create this file (or don't care about long runtimes), can set the
anonymous
flag and use the configuration (at their own risk). -
getConfigurationId ()
Returns configuration id.
-
lock ()
Lock configuration (local lock).
-
unlock ()
Unlock configuration (local unlock).
-
isLocked ()
Returns true if the configuration is locked, otherwise false
-
getElement ($path)
Returns Element object identified by $path (path may be a string or and object of class Path)
-
getValue ($path)
returns value of the element identified by $path
-
elementExists ($path)
returns true if elements identified by $path exists
-
getTree ($path)
returns
getTree
of the element identified by$path
. Any other optional arguments are passed togetTree
.If the path does not exist, undef is returned. (Any error reason is set as the
fail
attribute and the error is ignored.)