#include "ImagePool.h" ImagePoolEx::ImagePoolEx() { //OEM层需要进行细节上的设置. m_pFullImageQueue = NULL; m_pPrevImageData = NULL; } ImagePoolEx::~ImagePoolEx() { ClearPool(); } bool ImagePoolEx::SetMaxBlockSize(const char *pQueName, DWORD BlockSize, DWORD FulBlockCount, DWORD PrevBlockSize, DWORD PrevBlockCount) { bool ret = true; string PrevQueName = pQueName; PrevQueName += "Prv"; if (BlockSize) { //m_pFullImageQueue = (void*)new CShareMemory_Circle(); //if (((CShareMemory_Circle*)m_pFullImageQueue)->Create(pQueName, BlockSize, FulBlockCount, SM_READWRITE) < 0) //{ // //printf ("Create Full Pool Failed.%s\n", pQueName); // return false; //} } if (PrevBlockSize) { //m_pPrevImageData = (void*)new CShareMemory_Circle(); //if (((CShareMemory_Circle*)m_pPrevImageData)->Create(PrevQueName.c_str(), PrevBlockSize, PrevBlockCount, SM_READWRITE) < 0) //{ // //printf ("Create Prev Pool Failed.%s\n", PrevQueName.c_str ()); // return false; //} } //try open if (m_pFullImageQueue) { //if (((CShareMemory_Circle*) m_pFullImageQueue)->Open (pQueName, SM_READWRITE) < 0) //{ // //printf ("Open Full Pool Failed.%s\n", pQueName); // return false; //} } if (m_pPrevImageData) { //if (((CShareMemory_Circle*) m_pPrevImageData)->Open (PrevQueName.c_str (), SM_READWRITE) < 0) //{ // //printf ("Open Prev Pool Failed.%s\n", PrevQueName.c_str ()); // return false; //} //else //{ //} } return ret; } unsigned long ImagePoolEx::AddFrameWithHead(BLOCK_IMAGE_TYPE Type, string &imageHead, char* pFrameBuff, DWORD FrameSize) { unsigned long id = UnvalidSMBid; /*if (Type == PREV_BLOCK_IMG) { if (m_pPrevImageData) { id = ((CShareMemory_Circle*)m_pPrevImageData)->PushRaw(imageHead, pFrameBuff, FrameSize, true); } } else { if (m_pFullImageQueue) { id = ((CShareMemory_Circle*)m_pFullImageQueue)->PushRaw(imageHead, pFrameBuff, FrameSize, true); } }*/ return id; } void ImagePoolEx::ClearPool() { /*if (m_pFullImageQueue) { ((CShareMemory_Circle*)m_pFullImageQueue)->Clear(); delete (CShareMemory_Circle*)m_pFullImageQueue; m_pFullImageQueue = NULL; } if (m_pPrevImageData) { ((CShareMemory_Circle*)m_pPrevImageData)->Clear(); delete (CShareMemory_Circle*)m_pPrevImageData; m_pPrevImageData = NULL; }*/ }