Sometimes a simulator only subscribes and/or publishes to one other simulator. For example, GridLAB-D might only exchange data with an associated ns-3 instance running the corresponding network communication model. Since the ns-3 logical clock has nanosecond resolution, and the GridLAB-D logical clock has second resolution, the ns-3 simulator can operate at second resolution with respect to the FNCS logical clock in the broker. This information - which simulators communicate with which others and at what frequency - can be gleaned during initialization. Then in specific cases, the fncs::time_request() can return immediately if it is guaranteed that no other simulator can change its state via an event.
Sometimes a simulator only subscribes and/or publishes to one other simulator. For example, GridLAB-D might only exchange data with an associated ns-3 instance running the corresponding network communication model. Since the ns-3 logical clock has nanosecond resolution, and the GridLAB-D logical clock has second resolution, the ns-3 simulator can operate at second resolution with respect to the FNCS logical clock in the broker. This information - which simulators communicate with which others and at what frequency - can be gleaned during initialization. Then in specific cases, the fncs::time_request() can return immediately if it is guaranteed that no other simulator can change its state via an event.