libzypp 17.32.5
zyppng::Process Class Reference

#include <zypp-core/zyppng/io/process.h>

Inheritance diagram for zyppng::Process:

Public Types

enum  OutputChannelMode { Seperate , Merged }
 
enum  OutputChannel { StdOut = 0 , StdErr = 1 }
 
using Environment = std::map<std::string,std::string>
 For passing additional environment variables to set.
 
using Ptr = std::shared_ptr<Process>
 
using WeakPtr = std::weak_ptr<Process>
 
- Public Types inherited from zyppng::AsyncDataSource
enum  ChannelCloseReason { RemoteClose , AccessError , InternalError , UserRequest }
 
using Ptr = std::shared_ptr<AsyncDataSource>
 
using WeakPtr = std::weak_ptr<AsyncDataSource>
 
- Public Types inherited from zyppng::IODevice
enum  OpenModeFlag { Closed = 0x0 , ReadOnly = 0x1 , WriteOnly = 0x2 , ReadWrite = ReadOnly | WriteOnly }
 
using Ptr = std::shared_ptr<IODevice>
 
using WeakPtr = std::weak_ptr<IODevice>
 
- Public Types inherited from zyppng::Base
using Ptr = std::shared_ptr<Base>
 
using WeakPtr = std::weak_ptr<Base>
 

Public Member Functions

 ~Process () override
 
bool start (const char *const *argv)
 
void stop (int signal=SIGTERM)
 
bool isRunning ()
 
void close () override
 
void waitForExit ()
 
void closeWriteChannel () override
 
const std::string & executedCommand () const
 
const std::string & execError () const
 
zypp::Pathname chroot () const
 
void setChroot (const zypp::Pathname &chroot)
 
bool useDefaultLocale () const
 
void setUseDefaultLocale (bool defaultLocale)
 
Environment environment () const
 
void setEnvironment (const Environment &environment)
 
pid_t pid ()
 
int exitStatus () const
 
bool dieWithParent () const
 
void setDieWithParent (bool enabled)
 
bool switchPgid () const
 
void setSwitchPgid (bool enabled)
 
zypp::Pathname workingDirectory () const
 
void setWorkingDirectory (const zypp::Pathname &workingDirectory)
 
const std::vector< int > & fdsToMap () const
 
void addFd (int fd)
 
int stdinFd ()
 
int stdoutFd ()
 
int stderrFd ()
 
SignalProxy< void()> sigStarted ()
 
SignalProxy< void()> sigFailedToStart ()
 
SignalProxy< void(int)> sigFinished ()
 
OutputChannelMode outputChannelMode () const
 
void setOutputChannelMode (const OutputChannelMode &outputChannelMode)
 
- Public Member Functions inherited from zyppng::AsyncDataSource
bool openFds (const std::vector< int > &readFds, int writeFd=-1)
 
bool waitForReadyRead (uint channel, int timeout) override
 
void flush ()
 
SignalProxy< void(AsyncDataSource::ChannelCloseReason)> sigWriteFdClosed ()
 
SignalProxy< void(uint, AsyncDataSource::ChannelCloseReason)> sigReadFdClosed ()
 
bool readFdOpen () const
 
bool readFdOpen (uint channel) const
 
bool waitForReadyRead (int timeout)
 
virtual bool waitForReadyRead (uint channel, int timeout)=0
 
- Public Member Functions inherited from zyppng::IODevice
 ZYPP_DECLARE_FLAGS (OpenMode, OpenModeFlag)
 
 IODevice ()
 
void setReadChannel (uint channel)
 
uint currentReadChannel () const
 
int readChannelCount () const
 
bool canRead () const
 
bool canWrite () const
 
bool isOpen () const
 
ByteArray readAll ()
 
ByteArray read (int64_t maxSize)
 
int64_t read (char *buf, int64_t maxSize)
 
virtual ByteArray readLine (const int64_t maxSize=0)
 
virtual int64_t bytesAvailable () const
 
bool canReadLine () const
 
ByteArray readAll (uint channel)
 
ByteArray read (uint channel, int64_t maxSize)
 
int64_t read (uint channel, char *buf, int64_t maxSize)
 
ByteArray channelReadLine (uint channel, int64_t maxSize=0)
 
virtual int64_t channelReadLine (uint channel, char *buf, const int64_t maxSize)
 
virtual int64_t bytesAvailable (uint channel) const
 
bool canReadLine (uint channel) const
 
int64_t write (const ByteArray &data)
 
int64_t write (const char *data, int64_t len)
 
bool waitForReadyRead (int timeout)
 
SignalProxy< void()> sigReadyRead ()
 
SignalProxy< void(uint)> sigChannelReadyRead ()
 
SignalProxy< void(int64_t)> sigBytesWritten ()
 
SignalProxy< void()> sigAllBytesWritten ()
 
- Public Member Functions inherited from zyppng::Base
 Base ()
 
virtual ~Base ()
 
WeakPtr parent () const
 
void addChild (const Base::Ptr &child)
 
void removeChild (const Ptr &child)
 
const std::unordered_set< Ptr > & children () const
 
std::thread::id threadId () const
 
template<typename T >
std::vector< std::weak_ptr< T > > findChildren () const
 
template<typename T >
std::shared_ptr< T > shared_this () const
 
template<typename T >
std::shared_ptr< T > shared_this ()
 
template<typename T >
std::weak_ptr< T > weak_this () const
 
template<typename T >
std::weak_ptr< T > weak_this ()
 
template<typename SenderFunc , typename ReceiverFunc >
auto connect (SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc)
 
template<typename SenderFunc , typename ReceiverFunc , typename ... Tracker>
std::enable_if_t< std::is_member_function_pointer_v< SenderFunc >, connectionconnectFunc (SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers)
 

Static Public Member Functions

static Ptr create ()
 
- Static Public Member Functions inherited from zyppng::AsyncDataSource
static Ptr create ()
 
- Static Public Member Functions inherited from zyppng::Base
template<typename Obj , typename Functor >
static decltype(automake_base_slot (Obj *o, Functor &&f)
 
template<typename SenderFunc , typename ReceiverFunc >
static auto connect (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, typename internal::MemberFunction< ReceiverFunc >::ClassType &recv, ReceiverFunc &&rFunc)
 
template<typename SenderFunc , typename ReceiverFunc , typename ... Tracker>
static auto connectFunc (typename internal::MemberFunction< SenderFunc >::ClassType &s, SenderFunc &&sFun, ReceiverFunc &&rFunc, const Tracker &...trackers)
 

Protected Member Functions

 Process ()
 
- Protected Member Functions inherited from zyppng::AsyncDataSource
 AsyncDataSource ()
 
 AsyncDataSource (AsyncDataSourcePrivate &d)
 
int64_t writeData (const char *data, int64_t count) override
 
- Protected Member Functions inherited from zyppng::IODevice
 IODevice (IODevicePrivate &d)
 
void setReadChannelCount (uint channels)
 
- Protected Member Functions inherited from zyppng::Base
 Base (BasePrivate &dd)
 

Private Member Functions

 ZYPP_DECLARE_PRIVATE (Process)
 

Additional Inherited Members

- Protected Attributes inherited from zyppng::Base
std::unique_ptr< BasePrivated_ptr
 

Detailed Description

Definition at line 29 of file process.h.

Member Typedef Documentation

◆ Environment

using zyppng::Process::Environment = std::map<std::string,std::string>

For passing additional environment variables to set.

Definition at line 36 of file process.h.

◆ Ptr

using zyppng::Process::Ptr = std::shared_ptr<Process>

Definition at line 37 of file process.h.

◆ WeakPtr

Definition at line 38 of file process.h.

Member Enumeration Documentation

◆ OutputChannelMode

Enumerator
Seperate 
Merged 

Definition at line 40 of file process.h.

◆ OutputChannel

Enumerator
StdOut 
StdErr 

Definition at line 45 of file process.h.

Constructor & Destructor Documentation

◆ ~Process()

zyppng::Process::~Process ( )
override

Definition at line 52 of file process.cpp.

◆ Process()

zyppng::Process::Process ( )
protected

Definition at line 42 of file process.cpp.

Member Function Documentation

◆ ZYPP_DECLARE_PRIVATE()

zyppng::Process::ZYPP_DECLARE_PRIVATE ( Process )
private

◆ create()

Process::Ptr zyppng::Process::create ( )
static

Definition at line 47 of file process.cpp.

◆ start()

bool zyppng::Process::start ( const char *const * argv)

Definition at line 61 of file process.cpp.

◆ stop()

void zyppng::Process::stop ( int signal = SIGTERM)

Definition at line 137 of file process.cpp.

◆ isRunning()

bool zyppng::Process::isRunning ( )

Definition at line 145 of file process.cpp.

◆ close()

void zyppng::Process::close ( )
overridevirtual

Reimplemented from zyppng::AsyncDataSource.

Definition at line 151 of file process.cpp.

◆ waitForExit()

void zyppng::Process::waitForExit ( )

Blocks until the process has exited, during that time readyRead is not emitted for any read channels. Call readAll to get all remaining data that was written by the process

Definition at line 159 of file process.cpp.

◆ closeWriteChannel()

void zyppng::Process::closeWriteChannel ( )
overridevirtual

Close the stdin fd of the subprocess. This is required for processes that run until their stdin is closed.

Reimplemented from zyppng::AsyncDataSource.

Definition at line 170 of file process.cpp.

◆ executedCommand()

const std::string & zyppng::Process::executedCommand ( ) const

Definition at line 177 of file process.cpp.

◆ execError()

const std::string & zyppng::Process::execError ( ) const

Definition at line 182 of file process.cpp.

◆ chroot()

zypp::filesystem::Pathname zyppng::Process::chroot ( ) const

Definition at line 187 of file process.cpp.

◆ setChroot()

void zyppng::Process::setChroot ( const zypp::Pathname & chroot)

Definition at line 192 of file process.cpp.

◆ useDefaultLocale()

bool zyppng::Process::useDefaultLocale ( ) const

Definition at line 197 of file process.cpp.

◆ setUseDefaultLocale()

void zyppng::Process::setUseDefaultLocale ( bool defaultLocale)

Definition at line 202 of file process.cpp.

◆ environment()

Process::Environment zyppng::Process::environment ( ) const

Definition at line 207 of file process.cpp.

◆ setEnvironment()

void zyppng::Process::setEnvironment ( const Environment & environment)

Definition at line 212 of file process.cpp.

◆ pid()

pid_t zyppng::Process::pid ( )

Definition at line 217 of file process.cpp.

◆ exitStatus()

int zyppng::Process::exitStatus ( ) const

Definition at line 222 of file process.cpp.

◆ dieWithParent()

bool zyppng::Process::dieWithParent ( ) const

Definition at line 227 of file process.cpp.

◆ setDieWithParent()

void zyppng::Process::setDieWithParent ( bool enabled)

Definition at line 232 of file process.cpp.

◆ switchPgid()

bool zyppng::Process::switchPgid ( ) const

Definition at line 237 of file process.cpp.

◆ setSwitchPgid()

void zyppng::Process::setSwitchPgid ( bool enabled)

Definition at line 242 of file process.cpp.

◆ workingDirectory()

zypp::filesystem::Pathname zyppng::Process::workingDirectory ( ) const

Definition at line 247 of file process.cpp.

◆ setWorkingDirectory()

void zyppng::Process::setWorkingDirectory ( const zypp::Pathname & workingDirectory)

Definition at line 252 of file process.cpp.

◆ fdsToMap()

const std::vector< int > & zyppng::Process::fdsToMap ( ) const

Definition at line 257 of file process.cpp.

◆ addFd()

void zyppng::Process::addFd ( int fd)

Definition at line 262 of file process.cpp.

◆ stdinFd()

int zyppng::Process::stdinFd ( )

Definition at line 267 of file process.cpp.

◆ stdoutFd()

int zyppng::Process::stdoutFd ( )

Definition at line 272 of file process.cpp.

◆ stderrFd()

int zyppng::Process::stderrFd ( )

Definition at line 277 of file process.cpp.

◆ sigStarted()

SignalProxy< void()> zyppng::Process::sigStarted ( )

Definition at line 282 of file process.cpp.

◆ sigFailedToStart()

SignalProxy< void()> zyppng::Process::sigFailedToStart ( )

Definition at line 287 of file process.cpp.

◆ sigFinished()

SignalProxy< void(int)> zyppng::Process::sigFinished ( )

Definition at line 292 of file process.cpp.

◆ outputChannelMode()

Process::OutputChannelMode zyppng::Process::outputChannelMode ( ) const

Definition at line 297 of file process.cpp.

◆ setOutputChannelMode()

void zyppng::Process::setOutputChannelMode ( const OutputChannelMode & outputChannelMode)

Definition at line 298 of file process.cpp.


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