next up previous contents index
Next: Run console menu Up: Scalable Real-Time Engine: SRTEngine Previous: Scalable Real-Time Engine: SRTEngine   Contents   Index

Constructor

SRTEngine(Devs model, double ending_t, Callback call_back);
The constructor needs three arguments: the first argument is the Devs model to be simulated, the second is the simulation terminating time in second, the last is a callback function that is used to inject a user-input into the simulation model.

The third argument Callback is defined as delegate which can be seen as a function pointer in C#.

   public delegate PortValue Callback(Devs model);
Callback is supposed to return a PortValue which represents the user input to the model. Thus, PortValue's port should be an input port of Devs model. The following example shows that InjectMsg returns a PortValue whose port is vm's ip input port.

    PortValue InjectMsg(Devs md)
    {
        VM vm = (VM) md;
        return PortValue(vm.ip);
    }
Then, we can pass the above function pointer of InjectMsg to an instance of SRTEngine as follows.
SRTEngine simEngine(vm, 10000, InjectMsg);
We will see another example to use Callback in the example Ex_VendingMachin in Section 3.1.2.



MHHwang 2007-05-08