kpipeprocess.cpp
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 #include "kpipeprocess.h"
00021 
00022 KPipeProcess::KPipeProcess(const QString& cmd, int mode)
00023 : QFile()
00024 {
00025     m_pipe = NULL;
00026     if (!cmd.isEmpty())
00027         open(cmd,mode);
00028 }
00029 
00030 KPipeProcess::~KPipeProcess()
00031 {
00032     close();
00033 }
00034 
00035 bool KPipeProcess::open(const QString& cmd, int mode)
00036 {
00037     
00038     close();
00039     
00040     if (mode != IO_ReadOnly && mode != IO_WriteOnly)
00041         return false;
00042 
00043     
00044     m_pipe = popen(cmd.latin1(),(mode == IO_WriteOnly ? "w" : "r"));
00045     if (m_pipe)
00046         if (!QFile::open(mode,m_pipe))
00047             close();
00048     return (m_pipe != NULL);
00049 }
00050 
00051 void KPipeProcess::close()
00052 {
00053     if (m_pipe != NULL)
00054     {
00055         QFile::close();
00056         m_pipe = NULL;
00057     }
00058 }
 
This file is part of the documentation for kdeprint Library Version 3.2.0.