// // Created by mingzong on 2019-10-23. // #include "../../src/GCanvasManager.h" #include "../../src/GCanvasWeex.hpp" namespace gcanvas { void GCanvasManager::AddtoQueue(const std::string contextId, struct GCanvasCmd *p) { std::map *>::iterator it = mCmdQueue.find( contextId); if (it != mCmdQueue.end()) { std::queue *queue = it->second; queue->push(p); } else { std::queue *queue = new std::queue; queue->push(p); mCmdQueue[contextId] = queue; } } std::queue * GCanvasManager::getQueueByContextId(const std::string contextId) { std::map *>::iterator it = mCmdQueue.find( contextId); if (it != mCmdQueue.end()) { std::queue *queue = it->second; it->second = 0; return queue; } return nullptr; } void GCanvasManager::clearQueue(std::queue *queue) { if (queue != nullptr) { while (!queue->empty()) { struct GCanvasCmd *p = reinterpret_cast (queue->front()); queue->pop(); delete p; } } } void GCanvasManager::clearQueueByContextId(const std::string contextId) { std::queue *queue = this->getQueueByContextId(contextId); if (queue != nullptr) { clearQueue(queue); } } }