summaryrefslogtreecommitdiffstats
path: root/qmake/qpopen.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qmake/qpopen.cpp')
-rw-r--r--qmake/qpopen.cpp140
1 files changed, 0 insertions, 140 deletions
diff --git a/qmake/qpopen.cpp b/qmake/qpopen.cpp
deleted file mode 100644
index f2d530d..0000000
--- a/qmake/qpopen.cpp
+++ /dev/null
@@ -1,140 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the qmake application of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the either Technology Preview License Agreement or the
-** Beta Release License Agreement.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain
-** additional rights. These rights are described in the Nokia Qt LGPL
-** Exception version 1.0, included in the file LGPL_EXCEPTION.txt in this
-** package.
-**
-** GNU General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU
-** General Public License version 3.0 as published by the Free Software
-** Foundation and appearing in the file LICENSE.GPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU General Public License version 3.0 requirements will be
-** met: http://www.gnu.org/copyleft/gpl.html.
-**
-** If you are unsure which license is appropriate for your use, please
-** contact the sales department at http://www.qtsoftware.com/contact.
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-
-#include "qpopen.h"
-
-
-QPopen::QPopen()
-{
-}
-
-bool QPopen::init(const char *command, const char* /* mode */)
-{
- SECURITY_ATTRIBUTES attributes;
-
- attributes.nLength = sizeof(SECURITY_ATTRIBUTES);
- attributes.bInheritHandle = TRUE;
- attributes.lpSecurityDescriptor = NULL;
-
- if (! CreatePipe(&childStdOutR, &childStdOutW, &attributes, 0)) {
- return false;
- }
-
- // Ensure that the read handle to the child process's pipe for STDOUT is not inherited.
- SetHandleInformation(childStdOutR, HANDLE_FLAG_INHERIT, 0);
-
- // Create a pipe for the child process's STDIN.
- if (! CreatePipe(&childStdInR, &childStdInW, &attributes, 0)) {
- return false;
- }
-
- // Ensure that the write handle to the child process's pipe for STDIN is not inherited.
- SetHandleInformation(childStdInW, HANDLE_FLAG_INHERIT, 0);
-
- TCHAR *szCmdLine = new TCHAR[strlen(command)+1];
- strcpy(szCmdLine, command);
-
- // Set up members of the PROCESS_INFORMATION structure.
-
- ZeroMemory(&processInfo, sizeof(PROCESS_INFORMATION));
-
- // Set up members of the STARTUPINFO structure.
-
- ZeroMemory(&siStartInfo, sizeof(STARTUPINFO));
- siStartInfo.cb = sizeof(STARTUPINFO);
- siStartInfo.hStdError = childStdOutW;
- siStartInfo.hStdOutput = childStdOutW;
- siStartInfo.hStdInput = childStdInR;
- siStartInfo.dwFlags |= STARTF_USESTDHANDLES;
-
- // Create the child process.
-
- bool success = CreateProcess(NULL,
- szCmdLine, // command line
- NULL, // process security attributes
- NULL, // primary thread security attributes
- TRUE, // handles are inherited
- 0, // creation flags
- NULL, // use parent's environment
- NULL, // use parent's current directory
- &siStartInfo, // STARTUPINFO pointer
- &processInfo); // receives PROCESS_INFORMATION
-
- delete szCmdLine;
-
- return success;
-}
-
-QPopen::~QPopen()
-{
- CloseHandle(processInfo.hProcess);
- CloseHandle(processInfo.hThread);
- CloseHandle(childStdInR);
- CloseHandle(childStdInW);
- CloseHandle(childStdOutR);
- CloseHandle(childStdOutW);
-}
-
-int QPopen::fwrite(char* buffer, int maxBytes)
-{
- DWORD bytesWritten;
-
- bool success = WriteFile(childStdInW, buffer, maxBytes, &bytesWritten, NULL);
- if (success) {
- return bytesWritten;
- }
-
- return 0;
-}
-
-int QPopen::fread(char* buffer, int maxBytes)
-{
- DWORD bytesRead;
-
- if (!CloseHandle(childStdOutW))
- return 0;
-
- bool success = ReadFile(childStdOutR, buffer, maxBytes, &bytesRead, NULL);
- if (success)
- return bytesRead;
-
- return 0;
-}