Acts as the master in a master/slave pair of connected processes.
The ChildProcessSlave and ChildProcessMaster classes make it easy for an app to spawn a child process, and to manage a 2-way messaging connection to control it.
To use the system, you need to create subclasses of both ChildProcessSlave and ChildProcessMaster. When you want your master process to launch the slave, you just call launchSlaveProcess(), and it'll attempt to launch the executable that you specify (which may be the same exe), and assuming it has been set-up to correctly parse the command-line parameters (see ChildProcessSlave) then a two-way connection will be created.
The juce demo app has a good example of this class in action.
- See also
- ChildProcessSlave, InterprocessConnection, ChildProcess
bool ChildProcessMaster::launchSlaveProcess |
( |
const File & |
executableToLaunch, |
|
|
const String & |
commandLineUniqueID, |
|
|
int |
timeoutMs = 0 |
|
) |
| |
Attempts to launch and connect to a slave process. This will start the given executable, passing it a special command-line parameter based around the commandLineUniqueID string, which must be a short alphanumeric string (no spaces!) that identifies your app. The exe that gets launched must respond by calling ChildProcessSlave::initialiseFromCommandLine() in its startup code, and must use a matching ID to commandLineUniqueID.
The timeoutMs parameter lets you specify how long the child process is allowed to go without sending a ping before it is considered to have died and handleConnectionLost() will be called. Passing <= 0 for this timeout makes it use a default value.
If this all works, the method returns true, and you can begin sending and receiving messages with the slave process.