From 12c02f064db12d6d94063bf6dd9e4eb80f4252b8 Mon Sep 17 00:00:00 2001 From: LYW <leeyeanwoo@diteam.co.kr> Date: 월, 11 10월 2021 15:30:00 +0900 Subject: [PATCH] Ongoing60 #3662 CF AOI Review 전설비 알람 발생 조치 - Review History File Mapping 해제 - Review Inner History 다운 현상 예외처리 추가 - Review End 시 Review 다운 현상 예외처리 추가 --- ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp | 140 +++++++++++++++++++++++++--------------------- 1 files changed, 76 insertions(+), 64 deletions(-) diff --git a/ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp b/ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp index e88e79b..223a7d1 100644 --- a/ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp +++ b/ReviewHistory/ReveiwHistory/DitGlassRawServer.cpp @@ -15,6 +15,9 @@ CDitGlassRawServer::~CDitGlassRawServer(void) { + delete m_pGlassRawData; + delete m_pGlassRawInfo; + if (m_hMapBasicInfo!=NULL) { ::UnmapViewOfFile(m_hMapBasicInfo); @@ -91,37 +94,40 @@ BOOL CDitGlassRawServer::CreateGlassRawInfo() { - if(m_hMapBasicInfo == NULL) - { - BOOL bCreateMem = TRUE; - - m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE - , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO); - - if (::GetLastError() == ERROR_ALREADY_EXISTS) - { - m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO); - bCreateMem = FALSE; - } - - if (m_hMapBasicInfo) - { - m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo)); - } - - if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL) - { - if (m_hMapBasicInfo!=NULL) - { - ::UnmapViewOfFile(m_hMapBasicInfo); - m_pGlassRawInfo = NULL; - } - m_pGlassRawInfo = NULL; - return FALSE; - } +// if(m_hMapBasicInfo == NULL) +// { +// BOOL bCreateMem = TRUE; +// +// m_hMapBasicInfo = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE +// , 0, sizeof(_grmDitGlassRawInfo), SHAREDMEMNAME_BASICINFO); +// +// if (::GetLastError() == ERROR_ALREADY_EXISTS) +// { +// m_hMapBasicInfo = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_BASICINFO); +// bCreateMem = FALSE; +// } +// +// if (m_hMapBasicInfo) +// { +// m_pGlassRawInfo = (_grmDitGlassRawInfo*)::MapViewOfFile(m_hMapBasicInfo, FILE_MAP_ALL_ACCESS, 0, 0, sizeof(_grmDitGlassRawInfo)); +// } +// +// if(m_hMapBasicInfo == NULL || m_pGlassRawInfo == NULL) +// { +// if (m_hMapBasicInfo!=NULL) +// { +// ::UnmapViewOfFile(m_hMapBasicInfo); +// m_pGlassRawInfo = NULL; +// } +// m_pGlassRawInfo = NULL; +// return FALSE; +// } //0으로 초기화 - if(bCreateMem && m_pGlassRawInfo) + //if(bCreateMem && m_pGlassRawInfo) + //_grmDitGlassRawInfo SemiServer; + m_pGlassRawInfo = new _grmDitGlassRawInfo; + if (m_pGlassRawInfo) { ZeroMemory(m_pGlassRawInfo,sizeof(_grmDitGlassRawInfo)); @@ -135,7 +141,7 @@ int bytealign = m_pGlassRawInfo->m_nSizeOfGlassData%4; } - } + //} @@ -144,41 +150,47 @@ BOOL CDitGlassRawServer::CreateGlassRawData() { - int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize); - - if(m_hMapGlassData == NULL) - { - BOOL bCreateMem = TRUE; - - m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE - , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA); - - if (::GetLastError() == ERROR_ALREADY_EXISTS) - { - m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA); - bCreateMem = FALSE; - } - - if (m_hMapGlassData) - { - m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize); - } - - if(m_hMapGlassData == NULL || m_pGlassRawData == NULL) - { - if (m_hMapGlassData != NULL) - { - ::UnmapViewOfFile(m_hMapGlassData); - m_pGlassRawData = NULL; - } - m_pGlassRawData = NULL; - return FALSE; - } - - //0으로 초기화 - if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); - } + int nGlassRawSharedSize = (int)(m_pGlassRawInfo->m_nGlassRawDataSize); +// +// if(m_hMapGlassData == NULL) +// { +// BOOL bCreateMem = TRUE; +// +// m_hMapGlassData = ::CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE +// , 0, nGlassRawSharedSize, SHAREDMEMNAME_GLASSDATA); +// +// if (::GetLastError() == ERROR_ALREADY_EXISTS) +// { +// m_hMapGlassData = ::OpenFileMapping(FILE_MAP_ALL_ACCESS,FALSE,SHAREDMEMNAME_GLASSDATA); +// bCreateMem = FALSE; +// } +// +// if (m_hMapGlassData) +// { +// m_pGlassRawData = (char*)::MapViewOfFile(m_hMapGlassData, FILE_MAP_ALL_ACCESS, 0, 0, nGlassRawSharedSize); +// } +// +// if(m_hMapGlassData == NULL || m_pGlassRawData == NULL) +// { +// if (m_hMapGlassData != NULL) +// { +// ::UnmapViewOfFile(m_hMapGlassData); +// m_pGlassRawData = NULL; +// } +// m_pGlassRawData = NULL; +// return FALSE; +// } +// +// //0으로 초기화 +// if(bCreateMem && m_pGlassRawData) ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); +// } + + //0으로 초기화 + m_pGlassRawData = new char[nGlassRawSharedSize]; + if(m_pGlassRawData) + ZeroMemory(m_pGlassRawData,sizeof(char)*nGlassRawSharedSize); + m_pGlassData = (_grmGlassData*)&m_pGlassRawData[m_pGlassRawInfo->m_nGlassDataPoint]; m_pBlockData = (_grmBlockData*)&m_pGlassRawData[m_pGlassRawInfo->m_nBlockDataPoint]; m_pCellData = (_grmCellData*)&m_pGlassRawData[m_pGlassRawInfo->m_nCellDataPoint]; -- Gitblit v1.9.3