📄 internalmessageio.java
字号:
/** * InternalMessageIO.java * * * Created: Fri Jun 30 * * @author Steven Zeil * @version */package edu.odu.cs.zeil.AlgAE.Server;import edu.odu.cs.zeil.AlgAE.Debug;import edu.odu.cs.zeil.AlgAE.Queue;import edu.odu.cs.zeil.AlgAE.Message;import edu.odu.cs.zeil.AlgAE.MessageIO;import edu.odu.cs.zeil.AlgAE.ParameterizedMessage;public class InternalMessageIO{ class QueuedMessageIO implements MessageIO { private Queue inq; private Queue outq; QueuedMessageIO (Queue in, Queue out) { inq = in; outq = out; } /** * Send a message */ public void send (ParameterizedMessage pmsg) { boolean wasEmpty; synchronized (outq) { wasEmpty = outq.isEmpty(); outq.addToRear (pmsg); if (wasEmpty) outq.notifyAll(); } } /** * Read a message **/ public ParameterizedMessage read() { boolean noMsgWaiting = true; ParameterizedMessage pmsg = null; while (noMsgWaiting) { synchronized (inq) { noMsgWaiting = inq.isEmpty(); if (noMsgWaiting) { try { inq.wait(); } catch (java.lang.InterruptedException e) { } } else { pmsg = (ParameterizedMessage)inq.getFront(); inq.removeFront(); } } } return pmsg; } public void close() { } } private Queue q1; private Queue q2; private QueuedMessageIO serverio; private QueuedMessageIO clientio; public InternalMessageIO() { q1 = new Queue(); q2 = new Queue(); serverio = new QueuedMessageIO(q1,q2); clientio = new QueuedMessageIO(q2,q1); } public MessageIO serverIO() { return serverio; } public MessageIO clientIO() { return clientio; } } // InternalMessageIO
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -