package com.ta.mvc.command; import com.ta.util.TALogger; /** * @Title TACommandQueueManager * @package com.ta.mvc.command * @Description TACommandQueueManager是command队列的管理者 * @author 白猫 * @date 2013-1-16 下午 17:51 * @version V1.0 */ public final class TACommandQueueManager { private static TACommandQueueManager instance; private boolean initialized = false; private TAThreadPool pool; private TACommandQueue queue; private TACommandQueueManager() { } public static TACommandQueueManager getInstance() { if (instance == null) { instance = new TACommandQueueManager(); } return instance; } public void initialize() { TALogger.i(TACommandQueueManager.this, "准备初始化!"); if (!initialized) { TALogger.i(TACommandQueueManager.this, "正在初始化!"); queue = new TACommandQueue(); pool = TAThreadPool.getInstance(); TALogger.i(TACommandQueueManager.this, "完成初始化!"); pool.start(); initialized = true; } TALogger.i(TACommandQueueManager.this, "初始化完成!"); } /** * 从队列中获取Command * * @return TAICommand */ public TAICommand getNextCommand() { TALogger.i(TACommandQueueManager.this, "获取Command!"); TAICommand cmd = queue.getNextCommand(); TALogger.i(TACommandQueueManager.this, "获取Command" + cmd + "完成!"); return cmd; } /** * 添加Command到队列中 */ public void enqueue(TAICommand cmd) { TALogger.i(TACommandQueueManager.this, "添加" + cmd + "开始"); queue.enqueue(cmd); TALogger.i(TACommandQueueManager.this, "添加" + cmd + "完成"); } /** * 清除队列 */ public void clear() { queue.clear(); } /** * 关闭队列 */ public void shutdown() { if (initialized) { queue.clear(); pool.shutdown(); initialized = false; } } }