diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-07-24 09:39:37 -0500 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-07-24 09:39:37 -0500 |
commit | 191c434271e705161fbd01ed83b6d043a275bffc (patch) | |
tree | 0919a0a91d56167a9d36bca3881c513006b68a9b /src/processexec.cpp | |
download | ksensors-191c434271e705161fbd01ed83b6d043a275bffc.tar.gz ksensors-191c434271e705161fbd01ed83b6d043a275bffc.zip |
Initial import of ksensors 0.7.3 sources
Diffstat (limited to 'src/processexec.cpp')
-rw-r--r-- | src/processexec.cpp | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/src/processexec.cpp b/src/processexec.cpp new file mode 100644 index 0000000..a6137c0 --- /dev/null +++ b/src/processexec.cpp @@ -0,0 +1,58 @@ +/*************************************************************************** + processexec.cpp - description + ------------------- + begin : sáb abr 27 2002 + copyright : (C) 2002 by asdf + email : dsf + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#include <string.h> +#include "processexec.h" + +ProcessExec::ProcessExec(): KProcess() +{ + clearData(); + connect( this, SIGNAL(receivedStdout(KProcess *, char *, int)),this, SLOT(slotReceivedStdout(KProcess *, char *, int)) ); + connect( this, SIGNAL(receivedStderr(KProcess *, char *, int)),this, SLOT(slotReceivedStderr(KProcess *, char *, int)) ); +} + +ProcessExec::~ProcessExec(){ +} + +bool ProcessExec::run() +{ + clearData(); + return start( NotifyOnExit, Communication(Stdout | Stderr )); // | NoRead)); +} + +bool ProcessExec::runAndWait() +{ + clearData(); + return start(Block,Communication(Stdout|Stderr)); +} + +void ProcessExec::slotReceivedStdout(KProcess *proc, char *buf, int len) +{ + if(bufLen+len>=bufMax) len= bufMax-bufLen; + if(len) { + memcpy(buffer+bufLen,buf,len); + bufLen+= len; + buffer[bufLen]=0; + } +} + +void ProcessExec::slotReceivedStderr(KProcess *proc, char *buf, int len) +{ + fErrors= true; + slotReceivedStdout(proc,buf,len); +} + |