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

#include <container.hpp>

+ Inheritance diagram for lxcpp::Container:

Public Types

enum  State { State::STOPPED, State::STOPPING, State::STARTING, State::RUNNING }
 
typedef std::function< void(void)> Callback
 

Public Member Functions

virtual ~Container ()
 
virtual const std::string & getName () const =0
 Configuration. More...
 
virtual const std::string & getRootPath () const =0
 
virtual void setHostName (const std::string &hostname)=0
 
virtual pid_t getGuardPid () const =0
 
virtual pid_t getInitPid () const =0
 
virtual const std::vector
< std::string > & 
getInit ()=0
 
virtual void setInit (const std::vector< std::string > &init)=0
 
virtual void setLogger (const logger::LogType type, const logger::LogLevel level, const std::string &arg="")=0
 
virtual void setTerminalCount (const unsigned int count)=0
 
virtual void addUIDMap (unsigned min, unsigned max, unsigned num)=0
 
virtual void addGIDMap (unsigned min, unsigned max, unsigned num)=0
 
virtual void start ()=0
 Execution actions. More...
 
virtual void stop ()=0
 
virtual void freeze ()=0
 
virtual void unfreeze ()=0
 
virtual void reboot ()=0
 
virtual State getState ()=0
 States. More...
 
virtual void setStartedCallback (const Callback &callback)=0
 
virtual void setStoppedCallback (const Callback &callback)=0
 
virtual int attach (const std::vector< std::string > &argv, const uid_t uid, const gid_t gid, const std::string &ttyPath, const std::vector< gid_t > &supplementaryGids, const int capsToKeep, const std::string &workDirInContainer, const std::vector< std::string > &envToKeep, const std::vector< std::pair< std::string, std::string >> &envToSet)=0
 Other. More...
 
virtual void console ()=0
 
virtual void addInterfaceConfig (const std::string &hostif, const std::string &zoneif, InterfaceType type, const std::vector< InetAddr > &addrs, MacVLanMode mode=MacVLanMode::PRIVATE)=0
 Network interfaces setup/config. More...
 
virtual void addInetConfig (const std::string &ifname, const InetAddr &addr)=0
 
virtual std::vector< std::string > getInterfaces () const =0
 Network interfaces (runtime) More...
 
virtual NetworkInterfaceInfo getInterfaceInfo (const std::string &ifname) const =0
 
virtual void createInterface (const std::string &hostif, const std::string &zoneif, InterfaceType type, MacVLanMode mode)=0
 
virtual void destroyInterface (const std::string &ifname)=0
 
virtual void moveInterface (const std::string &ifname)=0
 
virtual void setUpInterface (const std::string &ifname)=0
 
virtual void setDownInterface (const std::string &ifname)=0
 
virtual void addInetAddr (const std::string &ifname, const InetAddr &addr)=0
 
virtual void delInetAddr (const std::string &ifname, const InetAddr &addr)=0
 
virtual void declareFile (const provision::File::Type type, const std::string &path, const int32_t flags, const int32_t mode)=0
 Provisioning. More...
 
virtual const FileVectorgetFiles () const =0
 
virtual void removeFile (const provision::File &item)=0
 
virtual void declareMount (const std::string &source, const std::string &target, const std::string &type, const int64_t flags, const std::string &data)=0
 
virtual const MountVectorgetMounts () const =0
 
virtual void removeMount (const provision::Mount &item)=0
 
virtual void declareLink (const std::string &source, const std::string &target)=0
 
virtual const LinkVectorgetLinks () const =0
 
virtual void removeLink (const provision::Link &item)=0
 
virtual void addSubsystem (const std::string &name, const std::string &path)=0
 CGroups. More...
 
virtual void addCGroup (const std::string &subsys, const std::string &grpname, const std::vector< CGroupParam > &comm, const std::vector< CGroupParam > &params)=0
 
virtual void setEnv (const std::vector< std::pair< std::string, std::string >> &variables)=0
 Environment variables. More...
 
virtual void setCaps (const int caps)=0
 Linux capabilities. More...
 
virtual void setSystemProperty (const std::string &name, const std::string &value)=0
 System Property (sysctl) More...
 
virtual void setRlimit (const std::string &type, const uint64_t hard, const uint64_t soft)=0
 Rlimit. More...
 
virtual void setNamespaces (const int namespaces)=0
 Namespaces TODO Needed to implement application container. More...
 
virtual void setUser (const int uid, const int gid, const std::vector< int > additionalGids)=0
 UID/GIDS TODO Needed to implement application container. More...
 
virtual void addDevice (const std::string &path, const char type, const int64_t major, const int64_t minor, const std::string &permissions, const uint32_t fileMode, const uint32_t uid, const uint32_t gid)=0
 Device. More...
 
virtual void addHook (const std::string &type, const std::vector< std::string > &hook, const std::vector< std::pair< std::string, std::string >> &env)=0
 Hooks. More...
 

Member Typedef Documentation

typedef std::function<void(void)> lxcpp::Container::Callback

Member Enumeration Documentation

Enumerator
STOPPED 
STOPPING 
STARTING 
RUNNING 

Constructor & Destructor Documentation

virtual lxcpp::Container::~Container ( )
inlinevirtual

Member Function Documentation

virtual void lxcpp::Container::addCGroup ( const std::string &  subsys,
const std::string &  grpname,
const std::vector< CGroupParam > &  comm,
const std::vector< CGroupParam > &  params 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addDevice ( const std::string &  path,
const char  type,
const int64_t  major,
const int64_t  minor,
const std::string &  permissions,
const uint32_t  fileMode,
const uint32_t  uid,
const uint32_t  gid 
)
pure virtual

Device.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addGIDMap ( unsigned  min,
unsigned  max,
unsigned  num 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addHook ( const std::string &  type,
const std::vector< std::string > &  hook,
const std::vector< std::pair< std::string, std::string >> &  env 
)
pure virtual

Hooks.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addInetAddr ( const std::string &  ifname,
const InetAddr addr 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addInetConfig ( const std::string &  ifname,
const InetAddr addr 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addInterfaceConfig ( const std::string &  hostif,
const std::string &  zoneif,
InterfaceType  type,
const std::vector< InetAddr > &  addrs,
MacVLanMode  mode = MacVLanMode::PRIVATE 
)
pure virtual

Network interfaces setup/config.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addSubsystem ( const std::string &  name,
const std::string &  path 
)
pure virtual

CGroups.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::addUIDMap ( unsigned  min,
unsigned  max,
unsigned  num 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual int lxcpp::Container::attach ( const std::vector< std::string > &  argv,
const uid_t  uid,
const gid_t  gid,
const std::string &  ttyPath,
const std::vector< gid_t > &  supplementaryGids,
const int  capsToKeep,
const std::string &  workDirInContainer,
const std::vector< std::string > &  envToKeep,
const std::vector< std::pair< std::string, std::string >> &  envToSet 
)
pure virtual

Other.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::console ( )
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::createInterface ( const std::string &  hostif,
const std::string &  zoneif,
InterfaceType  type,
MacVLanMode  mode 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::declareFile ( const provision::File::Type  type,
const std::string &  path,
const int32_t  flags,
const int32_t  mode 
)
pure virtual

Provisioning.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::declareLink ( const std::string &  source,
const std::string &  target 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::declareMount ( const std::string &  source,
const std::string &  target,
const std::string &  type,
const int64_t  flags,
const std::string &  data 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::delInetAddr ( const std::string &  ifname,
const InetAddr addr 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::destroyInterface ( const std::string &  ifname)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::freeze ( )
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual const FileVector& lxcpp::Container::getFiles ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual pid_t lxcpp::Container::getGuardPid ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual const std::vector<std::string>& lxcpp::Container::getInit ( )
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual pid_t lxcpp::Container::getInitPid ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual NetworkInterfaceInfo lxcpp::Container::getInterfaceInfo ( const std::string &  ifname) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual std::vector<std::string> lxcpp::Container::getInterfaces ( ) const
pure virtual

Network interfaces (runtime)

Implemented in lxcpp::ContainerImpl.

virtual const LinkVector& lxcpp::Container::getLinks ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual const MountVector& lxcpp::Container::getMounts ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual const std::string& lxcpp::Container::getName ( ) const
pure virtual

Configuration.

Implemented in lxcpp::ContainerImpl.

virtual const std::string& lxcpp::Container::getRootPath ( ) const
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual State lxcpp::Container::getState ( )
pure virtual

States.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::moveInterface ( const std::string &  ifname)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::reboot ( )
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::removeFile ( const provision::File item)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::removeLink ( const provision::Link item)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::removeMount ( const provision::Mount item)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setCaps ( const int  caps)
pure virtual

Linux capabilities.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setDownInterface ( const std::string &  ifname)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setEnv ( const std::vector< std::pair< std::string, std::string >> &  variables)
pure virtual

Environment variables.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setHostName ( const std::string &  hostname)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setInit ( const std::vector< std::string > &  init)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setLogger ( const logger::LogType  type,
const logger::LogLevel  level,
const std::string &  arg = "" 
)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setNamespaces ( const int  namespaces)
pure virtual

Namespaces TODO Needed to implement application container.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setRlimit ( const std::string &  type,
const uint64_t  hard,
const uint64_t  soft 
)
pure virtual

Rlimit.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setStartedCallback ( const Callback callback)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setStoppedCallback ( const Callback callback)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setSystemProperty ( const std::string &  name,
const std::string &  value 
)
pure virtual

System Property (sysctl)

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setTerminalCount ( const unsigned int  count)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setUpInterface ( const std::string &  ifname)
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::setUser ( const int  uid,
const int  gid,
const std::vector< int >  additionalGids 
)
pure virtual

UID/GIDS TODO Needed to implement application container.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::start ( )
pure virtual

Execution actions.

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::stop ( )
pure virtual

Implemented in lxcpp::ContainerImpl.

virtual void lxcpp::Container::unfreeze ( )
pure virtual

Implemented in lxcpp::ContainerImpl.


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