SDC C-Project CF Review 프로그램
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];