| New file | 
 |  |  | 
 |  |  | package com.dy.rtuMw.server.rtuData; | 
 |  |  |  | 
 |  |  | import com.dy.rtuMw.server.ServerProperties; | 
 |  |  | import com.dy.common.queue.Node; | 
 |  |  | import com.dy.common.queue.Queue; | 
 |  |  |  | 
 |  |  | public class RtuDataCache { | 
 |  |  |  | 
 |  |  |     //TCP下行命令缓存队列 | 
 |  |  |     private static Queue cacheQueue = new Queue("tcpUpDataQueue") ; | 
 |  |  |  | 
 |  |  |     private static RtuDataCache instance = new RtuDataCache() ; | 
 |  |  |  | 
 |  |  |     private RtuDataCache(){ | 
 |  |  |         cacheQueue.setLimit(ServerProperties.cacheUpDownDataWarnCount, ServerProperties.cacheUpDownDataMaxCount); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public static RtuDataCache getInstance(){ | 
 |  |  |         return instance ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 缓存节点 | 
 |  |  |      * @param reportOrResponse_trueOrFalse reportOrResponse_trueOrFalse | 
 |  |  |      * @param node node | 
 |  |  |      * @throws Exception 异常 | 
 |  |  |      */ | 
 |  |  |     public static void cacheRtuUpData(boolean reportOrResponse_trueOrFalse, RtuDataNode node) throws Exception{ | 
 |  |  |         if(node != null && node.obj != null){ | 
 |  |  |             if(reportOrResponse_trueOrFalse){ | 
 |  |  |                 cacheQueue.pushHead(node); | 
 |  |  |             }else{ | 
 |  |  |                 cacheQueue.pushTail(node); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 得到第一个节点 | 
 |  |  |      * @return Node | 
 |  |  |      */ | 
 |  |  |     public static Node getFirstQueueNode(){ | 
 |  |  |         return cacheQueue.getFirstNode() ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 得到最后一个节点 | 
 |  |  |      * @return Node | 
 |  |  |      */ | 
 |  |  |     public static Node getLastQueueNode(){ | 
 |  |  |         return cacheQueue.getLastNode() ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 移除节点 | 
 |  |  |      * @param node | 
 |  |  |      */ | 
 |  |  |     public static void removeNode(Node node){ | 
 |  |  |         cacheQueue.remove(node); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 缓存的节点数 | 
 |  |  |      * @Return 缓存节点数 | 
 |  |  |      */ | 
 |  |  |     public static Integer size(){ | 
 |  |  |         return cacheQueue.size() ; | 
 |  |  |     } | 
 |  |  |  | 
 |  |  | } |