| 
							- /*
 -   ==============================================================================
 - 
 -    This file is part of the JUCE library - "Jules' Utility Class Extensions"
 -    Copyright 2004-11 by Raw Material Software Ltd.
 - 
 -   ------------------------------------------------------------------------------
 - 
 -    JUCE can be redistributed and/or modified under the terms of the GNU General
 -    Public License (Version 2), as published by the Free Software Foundation.
 -    A copy of the license is included in the JUCE distribution, or can be found
 -    online at www.gnu.org/licenses.
 - 
 -    JUCE is distributed in the hope that it will be useful, but WITHOUT ANY
 -    WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
 -    A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
 - 
 -   ------------------------------------------------------------------------------
 - 
 -    To release a closed-source product which uses JUCE, commercial licenses are
 -    available: visit www.rawmaterialsoftware.com/juce for more information.
 - 
 -   ==============================================================================
 - */
 - 
 - ChildProcess::ChildProcess() {}
 - ChildProcess::~ChildProcess() {}
 - 
 - bool ChildProcess::waitForProcessToFinish (const int timeoutMs) const
 - {
 -     const uint32 timeoutTime = Time::getMillisecondCounter() + (uint32) timeoutMs;
 - 
 -     do
 -     {
 -         if (! isRunning())
 -             return true;
 -     }
 -     while (timeoutMs < 0 || Time::getMillisecondCounter() < timeoutTime);
 - 
 -     return false;
 - }
 - 
 - String ChildProcess::readAllProcessOutput()
 - {
 -     MemoryOutputStream result;
 - 
 -     for (;;)
 -     {
 -         char buffer [512];
 -         const int num = readProcessOutput (buffer, sizeof (buffer));
 - 
 -         if (num <= 0)
 -             break;
 - 
 -         result.write (buffer, (size_t) num);
 -     }
 - 
 -     return result.toString();
 - }
 - 
 - //==============================================================================
 - #if JUCE_UNIT_TESTS
 - 
 - class ChildProcessTests  : public UnitTest
 - {
 - public:
 -     ChildProcessTests() : UnitTest ("ChildProcess") {}
 - 
 -     void runTest()
 -     {
 -         beginTest ("Child Processes");
 - 
 -       #if JUCE_WINDOWS || JUCE_MAC || JUCE_LINUX
 -         ChildProcess p;
 - 
 -        #if JUCE_WINDOWS
 -         expect (p.start ("tasklist"));
 -        #else
 -         expect (p.start ("ls /"));
 -        #endif
 - 
 -         //String output (p.readAllProcessOutput());
 -         //expect (output.isNotEmpty());
 -       #endif
 -     }
 - };
 - 
 - static ChildProcessTests childProcessUnitTests;
 - 
 - #endif
 
 
  |