package com.genersoft.iot.vmp.gb28181.transmit.callback;

import java.util.HashMap;
import java.util.Map;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.async.DeferredResult;

/**    
 * @Description:TODO(这里用一句话描述这个类的作用)   
 * @author: swwheihei
 * @date:   2020年5月8日 下午7:59:05     
 */
@Component
public class DeferredResultHolder {
	
	public static final String CALLBACK_CMD_DEVICEINFO = "CALLBACK_DEVICEINFO";
	
	public static final String CALLBACK_CMD_CATALOG = "CALLBACK_CATALOG";
	
	public static final String CALLBACK_CMD_RECORDINFO = "CALLBACK_RECORDINFO";

	private Map<String, DeferredResult> map = new HashMap<String, DeferredResult>();
	
	public void put(String key, DeferredResult result) {
		map.put(key, result);
	}
	
	public DeferredResult get(String key) {
		return map.get(key);
	}
	
	public void invokeResult(RequestMessage msg) {
		DeferredResult result = map.get(msg.getId());
		if (result == null) {
			return;
		}
		result.setResult(new ResponseEntity<>(msg.getData(),HttpStatus.OK));
	}
}
