Check out the new USENIX Web site. next up previous
Next: 10.3 Calling Core-Baseline methods Up: 10 Baseline-Core communication Previous: 10.1 The Core part

10.2 The Baseline part

The Baseline instance for Baseline-Core communication is CoreDomain. Previously published Core objects can be obtained by calling CodeDomain.lookup(), for example:

MyCoreObject bco = CoreDomain.lookup("myObject01");
bco.foo(42, 3.1416);
What CoreDomain.lookup() actually returns is a proxy object doing the communication with the corresponding Core object. The JaRTS compiler generates the proxy classes for each Core class containing Core-Baseline methods. These proxy classes are subclasses of a Baseline version of CoreObject (figure 6).
Figure 6: classes for Baseline-Core communication
\includegraphics[scale=0.6]{images/baselineapi}

We added an internal class BaselineCoreConnector that handles the connection. It is a singleton and used by the proxy objects. Therefore it is a static member of the proxy superclass CoreObject. A BaselineFifoListener waits for commands like publishing objects in the Core as well as for returning functions (figure 7). The actual communication is done in native files written in C. These files have to be adapted when porting JaRTS to other platforms.

Figure 7: auxiliary classes for the JaRTS implementation
\includegraphics[scale=0.6]{images/baselinecom}


next up previous
Next: 10.3 Calling Core-Baseline methods Up: 10 Baseline-Core communication Previous: 10.1 The Core part
Urs Gleim 2002-05-29