Fork Vasum on GitHub Official Vasum Wiki on Tizen.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
vasum::ZoneProvision Class Reference

Class is responsible for prepare filesystem for zone It allows to create directories, files, mount points and copying files from host. More...

#include <zone-provision.hpp>

Public Member Functions

 ZoneProvision (const std::string &rootPath, const std::string &configPath, const std::string &dbPath, const std::string &dbPrefix, const std::vector< std::string > &validLinkPrefixes)
 ZoneProvision constructor. More...
 
 ~ZoneProvision ()
 
 ZoneProvision (const ZoneProvision &)=delete
 
ZoneProvisionoperator= (const ZoneProvision &)=delete
 
 ZoneProvision (ZoneProvision &&)=default
 
std::string declareFile (const int32_t &type, const std::string &path, const int32_t &flags, const int32_t &mode)
 Declare file, directory or pipe that will be created while zone startup. More...
 
std::string declareMount (const std::string &source, const std::string &target, const std::string &type, const int64_t &flags, const std::string &data)
 Declare mount that will be created while zone startup. More...
 
std::string declareLink (const std::string &source, const std::string &target)
 Declare link that will be created while zone startup. More...
 
void start () noexcept
 
void stop () noexcept
 
std::vector< std::string > list () const
 List all provisioned resources. More...
 
void remove (const std::string &item)
 Remove resource. More...
 

Private Member Functions

void saveProvisioningConfig ()
 
std::string declareProvision (ZoneProvisioningConfig::Provision &&provision)
 
void mount (const ZoneProvisioningConfig::Mount &config)
 
void umount (const ZoneProvisioningConfig::Mount &config)
 
void file (const ZoneProvisioningConfig::File &config)
 
void link (const ZoneProvisioningConfig::Link &config)
 

Static Private Member Functions

static std::string getId (const ZoneProvisioningConfig::File &file)
 
static std::string getId (const ZoneProvisioningConfig::Mount &mount)
 
static std::string getId (const ZoneProvisioningConfig::Link &link)
 
static std::string getId (const ZoneProvisioningConfig::Provision &provision)
 

Private Attributes

ZoneProvisioningConfig mProvisioningConfig
 
std::string mRootPath
 
std::string mDbPath
 
std::string mDbPrefix
 
std::vector< std::string > mValidLinkPrefixes
 
std::list
< ZoneProvisioningConfig::Provision
mProvisioned
 

Detailed Description

Class is responsible for prepare filesystem for zone It allows to create directories, files, mount points and copying files from host.

Constructor & Destructor Documentation

vasum::ZoneProvision::ZoneProvision ( const std::string &  rootPath,
const std::string &  configPath,
const std::string &  dbPath,
const std::string &  dbPrefix,
const std::vector< std::string > &  validLinkPrefixes 
)

ZoneProvision constructor.

Parameters
rootPathzone root path
configPathpath to config with defaults
dbPathpath to database
dbPrefixdatabase prefix
validLinkPrefixesvalid link prefixes
vasum::ZoneProvision::~ZoneProvision ( )
vasum::ZoneProvision::ZoneProvision ( const ZoneProvision )
delete
vasum::ZoneProvision::ZoneProvision ( ZoneProvision &&  )
default

Member Function Documentation

std::string vasum::ZoneProvision::declareFile ( const int32_t &  type,
const std::string &  path,
const int32_t &  flags,
const int32_t &  mode 
)

Declare file, directory or pipe that will be created while zone startup.

std::string vasum::ZoneProvision::declareLink ( const std::string &  source,
const std::string &  target 
)

Declare link that will be created while zone startup.

std::string vasum::ZoneProvision::declareMount ( const std::string &  source,
const std::string &  target,
const std::string &  type,
const int64_t &  flags,
const std::string &  data 
)

Declare mount that will be created while zone startup.

std::string vasum::ZoneProvision::declareProvision ( ZoneProvisioningConfig::Provision &&  provision)
private
void vasum::ZoneProvision::file ( const ZoneProvisioningConfig::File config)
private
std::string vasum::ZoneProvision::getId ( const ZoneProvisioningConfig::File file)
staticprivate
std::string vasum::ZoneProvision::getId ( const ZoneProvisioningConfig::Mount mount)
staticprivate
std::string vasum::ZoneProvision::getId ( const ZoneProvisioningConfig::Link link)
staticprivate
std::string vasum::ZoneProvision::getId ( const ZoneProvisioningConfig::Provision provision)
staticprivate
void vasum::ZoneProvision::link ( const ZoneProvisioningConfig::Link config)
private
std::vector< std::string > vasum::ZoneProvision::list ( ) const

List all provisioned resources.

void vasum::ZoneProvision::mount ( const ZoneProvisioningConfig::Mount config)
private
ZoneProvision& vasum::ZoneProvision::operator= ( const ZoneProvision )
delete
void vasum::ZoneProvision::remove ( const std::string &  item)

Remove resource.

Parameters
itemresource to be removed (as in list())
void vasum::ZoneProvision::saveProvisioningConfig ( )
private
void vasum::ZoneProvision::start ( )
noexcept
void vasum::ZoneProvision::stop ( )
noexcept
void vasum::ZoneProvision::umount ( const ZoneProvisioningConfig::Mount config)
private

Member Data Documentation

std::string vasum::ZoneProvision::mDbPath
private
std::string vasum::ZoneProvision::mDbPrefix
private
std::list<ZoneProvisioningConfig::Provision> vasum::ZoneProvision::mProvisioned
private
ZoneProvisioningConfig vasum::ZoneProvision::mProvisioningConfig
private
std::string vasum::ZoneProvision::mRootPath
private
std::vector<std::string> vasum::ZoneProvision::mValidLinkPrefixes
private

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