getinthread.java

来自「移动empp网关」· Java 代码 · 共 55 行

JAVA
55
字号
package cn.madhouse.gateway.empp.service;

import java.util.concurrent.ConcurrentLinkedQueue;

import cn.madhouse.gateway.empp.msgformat.*;

public class GetInThread extends Thread {
	
	private MessageQueue msgQueue;
	private EmppSocket emppSocket;
	
	public GetInThread(MessageQueue msgQueue, EmppSocket emppSocket) {
		this.msgQueue = msgQueue;
		this.emppSocket = emppSocket;
	}
	
	@Override
	public void run() {
		ConcurrentLinkedQueue<SubmitResponse> mtResponseQueue = msgQueue.getMtResponseQueue();
		ConcurrentLinkedQueue<DeliverRequest> moRequestQueue = msgQueue.getMoRequestQueue();
		ConcurrentLinkedQueue<DeliverReport> reportQueue = msgQueue.getReportQueue();
		ConcurrentLinkedQueue<byte[]> otherQueue = msgQueue.getOtherQueue();
		
		while(true) {
			//System.out.println("getin");
			byte[] b = new byte[500];
			emppSocket.read(b);
			switch (Message.getCommandId(b)) {
				case 0 : break;
				case Message.EMPP_ACTIVE_TEST_RESP : System.out.println("active"); break;
				case Message.EMPP_DELIVER : {
					DeliverRequest moRequest = new DeliverRequest(b);
					int tag = moRequest.getRegisteredDelivery();
					if(tag == 0) {
						moRequestQueue.offer(moRequest);
						//System.out.println("moReq content = " + moRequest.getMsgContent());
					} else if(tag == 1) {
						DeliverReport report = new DeliverReport(b);
						System.out.println("report stat = " + report.getStat());
						reportQueue.offer(report);
					}
					break;
				}
				case Message.EMPP_SUBMIT_RESP : {
					SubmitResponse mtResponse = new SubmitResponse(b);
					mtResponseQueue.offer(mtResponse);
					System.out.println("mtResp result = " + mtResponse.getResult());
					break;
				}
				default : otherQueue.offer(b);
			}
		}
	}
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?