public void body()
    {
        // register oneself to the system GIS
        super.sim_schedule(GridSim.getGridInfoServiceEntityId(),
                           GridSimTags.SCHEDULE_NOW, GridSimTags.REGISTER_LINK,
                           new Integer(super.get_id()) );

        Sim_event ev = new Sim_event();
        while ( Sim_system.running() )
        {
            super.sim_get_next(ev);

            // if the simulation finishes then exit the loop
            if (ev.get_tag() == GridSimTags.END_OF_SIMULATION) {
                break;
            }

            // process the received event
            processEvent(ev);
            sim_completed(ev);
        }

        while(sim_waiting() > 0)
        {
            // wait for event and ignore
            System.out.println(super.get_name() + ".body(): Ignore !!");
            sim_get_next(ev);
        }
    }