123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- #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;
- }*/
- }
|