// Path: src/main/java/kafka/utils/SystemTime.java
// public class SystemTime implements Time {
//     public static final SystemTime instance = new SystemTime();
// 
//     @Override
//     public long milliseconds() {
//         return System.currentTimeMillis();
//     }
// 
//     @Override
//     public long nanoseconds() {
//         return System.nanoTime();
//     }
// 
//     @Override
//     public void sleep(long ms) {
//         try {
//             Thread.sleep(ms);
//         } catch (InterruptedException e) {
// 
//         }
//     }
// }


import kafka.utils.SystemTime;
package kafka.network;


public class Response {
    public final int processor;
    public final Request request;
    public final Send responseSend;
    public final ResponseAction responseAction;

    public Response(int processor, Request request, Send responseSend, ResponseAction responseAction) {
        this.processor = processor;
        this.request = request;
        this.responseSend = responseSend;
        this.responseAction = responseAction;

// Path: src/main/java/kafka/utils/SystemTime.java
// public class SystemTime implements Time {
//     public static final SystemTime instance = new SystemTime();
// 
//     @Override
//     public long milliseconds() {
//         return System.currentTimeMillis();
//     }
// 
//     @Override
//     public long nanoseconds() {
//         return System.nanoTime();
//     }
// 
//     @Override
//     public void sleep(long ms) {
//         try {
//             Thread.sleep(ms);
//         } catch (InterruptedException e) {
// 
//         }
//     }
// }


// Path: src/main/java/kafka/network/Response.java
import kafka.utils.SystemTime;

package kafka.network;


public class Response {
    public final int processor;
    public final Request request;
    public final Send responseSend;
    public final ResponseAction responseAction;

    public Response(int processor, Request request, Send responseSend, ResponseAction responseAction) {
        this.processor = processor;
        this.request = request;
        this.responseSend = responseSend;
        this.responseAction = responseAction;

        request.responseCompleteTimeMs = SystemTime.instance.milliseconds();