From: Brad C. <cha...@ar...> - 2000-09-01 18:48:08
|
Hey guys; As I mentioned to Jarl yesterday, Jean-Marc and I had been talking a bit about starting to more closely integrate the BL and PL, especially with respect to returning errors and calculated values in a node to be displayed. We kind of came up with a two step plan for starting on this: 1. Write a stream class for the PL which derives from the C++ iostream class. This class will be responsible for communicating directly with the BL through a CORBA interface. The idea is that when nodes are running they can call this stream class like: returnValueStream << 'This is a node name' << 'This is some value info'; This kind of abstracts the actual communication to this stream class, and allows you to turn streams on and off. 2. Write the CORBA interface and supporting code so that the stream class can communicate with the BL. I started working towards this second goal and wrote an initial IDL file for the communication, which I attached. The basic idea is that the BL implements an interface through which the PL can return errors and values. The PL implements a callback interface for whenever it returns an error, so that the BL can either stop or continue a run when an error occurs. This is just a first start to work with, and I already have a number of questions about the design: 1. How will we distinguish between different BL processes submitted to the PL? There are two ways I could think of to do it: a. Have a different BlReporter submitted for each run. The PL would then somehow have to keep track of which BlReporter object is which. b. Have an id number assigned to each submitted process that would be given to a generic BlReporter (or we could have a general BL interface that gave specific BlReporters based on id numbers). In this case the PL and BL would have to track these id numbers. 2. How can the stream class return the stop or continue messages back to the node? I'm not sure how we can achieve this kind of callback with the stream setup, but this is probably just me missing something. Anyways, this is just something to get started with. I'm excited to see this start getting hashed out and seeing the parts be more integrated! Talk with you all soon. Brad |