[IronPython] Are two PythonEngine instances connected?
Kristof Wagemans
kristof.wagemans at gmail.com
Sun Apr 16 15:02:23 CEST 2006
I've created two PythonEngine instances and set the Stdout for each instance
to its own custom stream class (PythonStream) to capture the output. This
stream class takes a delegate to specify the function to receive the
response.
class Tester
{
public void Test()
{
PythonEngine pythonEngine1 = new PythonEngine();
pythonEngine1.SetStdout(new
PythonStream(ResponsePythonEngine1));
Console.WriteLine("pythonEngine1.Execute(\"'p1'\") -> ");
pythonEngine1.Execute("'p1'");
Console.WriteLine("");
PythonEngine pythonEngine2 = new PythonEngine();
pythonEngine2.SetStdout(new
PythonStream(ResponsePythonEngine2));
Console.WriteLine("pythonEngine2.Execute(\"'p2'\") -> ");
pythonEngine2.Execute("'p2'");
Console.WriteLine("");
Console.WriteLine("pythonEngine1.Execute(\"'p1'\") -> ");
pythonEngine1.Execute("'p1'");
Console.WriteLine("");
Console.ReadLine();
}
void ResponsePythonEngine1(string text)
{
if (!string.IsNullOrEmpty(text.Trim()))
{
Console.WriteLine(" ResponsePythonEngine1 -> " + text);
}
}
void ResponsePythonEngine2(string text)
{
if (!string.IsNullOrEmpty(text.Trim()))
{
Console.WriteLine(" ResponsePythonEngine2 -> " + text);
}
}
}
After pythonEngine2 is created I receive the responses from commands
executed on pythonEngine1 on the output of pythonEngine2.
pythonEngine1.Execute("'p1'") ->
ResponsePythonEngine1 -> 'p1'
pythonEngine2.Execute("'p2'") ->
ResponsePythonEngine2 -> 'p2'
pythonEngine1.Execute("'p1'") ->
ResponsePythonEngine2 -> 'p1'
You can find my test application here:
http://users.telenet.be/kristof.wagemans/PythonEngineConnected.zip
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/ironpython-users/attachments/20060416/1e235cab/attachment.html>
More information about the Ironpython-users
mailing list