All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sm.transport.AsynReq Maven / Gradle / Ivy

There is a newer version: 2.2.3
Show newest version
/*
 *
 *
 * Copyright 2012-2015 Viant.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 *  use this file except in compliance with the License. You may obtain a copy of
 *  the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 *  License for the specific language governing permissions and limitations under
 *  the License.
 *
 */

package com.sm.transport;

import com.sm.message.Request;
import com.sm.message.Response;

import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantLock;

public class AsynReq {
    Request request;
    Lock lock = new ReentrantLock();
    Condition ready = lock.newCondition();
    volatile boolean entered = false;
    Response response;
    public AsynReq(Request request) {
        this.request = request;
    }

    public Response getResponse() {
        return response;
    }

    public void setResponse(Response response) {
        this.response = response;
    }

    public Request getRequest() {
        return request;
    }

    public Lock getLock() {
        return lock;
    }

    public Condition getReady() {
        return ready;
    }

    public boolean isEntered() {
        return entered;
    }

    public void setEntered(boolean entered) {
        this.entered = entered;
    }

    public String toString() {
            return request.getHeader().toString()+" entered "+entered+" err "+(response == null ? "null" : response.isError());
        }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy