Package org.drools.grid.io.impl

Source Code of org.drools.grid.io.impl.RequestResponseDispatchListener

package org.drools.grid.io.impl;

import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;

import org.drools.grid.io.Conversation;
import org.drools.grid.io.IoWriter;
import org.drools.grid.io.Message;
import org.drools.grid.io.MessageReceiverHandler;

public class RequestResponseDispatchListener
    implements
    MessageReceiverHandler {
    // Need time based eviction queue, to remove old unreturned requests
    private Map<Integer, MessageReceiverHandler> msgRecHandlers;

    public RequestResponseDispatchListener() {
        this.msgRecHandlers = new ConcurrentHashMap<Integer, MessageReceiverHandler>();
    }

    public void addMessageReceiverHandler(int requestId,
                                          MessageReceiverHandler msgRecHandler) {
        this.msgRecHandlers.put( requestId,
                                 msgRecHandler );
    }

    public void messageReceived(Conversation conversation,
                                Message msg) {
        MessageReceiverHandler msgRecHandler = this.msgRecHandlers.remove( msg.getResponseId() );
        if ( msgRecHandler != null ) {
            msgRecHandler.messageReceived( conversation,
                                           msg );
        }
    }

}
TOP

Related Classes of org.drools.grid.io.impl.RequestResponseDispatchListener

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.