SDC C-Project CF Review 프로그램
LYW
2022-05-31 f1a543772246f59b8b52a8857270b38ee38f3588
DitGlassRawMessenger/DitGlassRawMessenger/RawResultReader.cpp
@@ -59,11 +59,15 @@
   strFileName.Format("%s\\%s", m_strLocalPath, pGlassID);
   FILE* pf = fopen(strFileName.GetBuffer(0), "r");
   if (pf == NULL)
      return FALSE;
      
   /* <KMH 20220407 : #4053 ADD Start> */
   AKLOG("Function : Read File Path: %s" , strFileName);
   /* <KMH 20220407 : #4053 ADD End> */
   /*< KJG 20211208 : #3696 ADD Start >*/
   CDitGlassRawClient   GlassRawClient;
   GlassRawClient.ConnectServer();
@@ -368,7 +372,9 @@
   akFileDB.getItem("RawMerge_Use", &m_bStackUse, 0);
   akFileDB.getItem("RawMerge_LocalPath", m_strLocalPath, "D:\\DIT_ResultData\\RawMerge");
   if (m_bStackUse && m_nThreadStackFileReadFlag == 0)
   //< SWK 20220413 - #4053 MOD >
//   if (/*m_bStackUse && */m_nThreadStackFileReadFlag == 0)
   if (m_nThreadStackFileReadFlag == 0)
   {
      _beginthread(threadResultFileRead, NULL, this);
   }
@@ -395,7 +401,8 @@
         nReadFailCount = 0;
         AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
         Sleep(3000);
         //< SWK 20220413 - #4053 DEL >
//         Sleep(3000);
         while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
         {
            if ((nThreadCount++ % 20) != 0) //명령 수행을 빠르게 감지 위한 조치
@@ -411,15 +418,19 @@
            }
            nReadFailCount++;
            AKLOG("RawMerge File Read Try : %d", nReadFailCount);
            //< SWK 20220413 - #4053 DEL >
//            AKLOG("RawMerge File Read Try : %d", nReadFailCount);
            if (nReadFailCount > 10)
            {
               pThis->m_nProcessState = RPS_ResultReadFail;
               break;
            }
            //< SWK 20220413 - #4053 ADD >
            AKLOG("RawMerge File Read Try : %d", nReadFailCount);
            Sleep(50);
            //< SWK 20220413 - #4053 DEL >
//            Sleep(50);
         }
         if (pThis->m_nProcessState != RPS_ResultReadOK)
         {
@@ -433,57 +444,90 @@
   pThis->m_nThreadStackFileReadFlag = 0;
}
/* <LJC 20211122 : #3820 ADD Start> */
void CRawResultReader::ProcessResultFileRead(void * pArg)
/*< SWK 20220413 - #4053 MOD Start >*/
//void CRawResultReader::ProcessResultFileRead(void * pArg)
void CRawResultReader::ProcessResultFileRead()
/*< SWK 20220413 - #4053 MOD End >*/
{
   CRawResultReader* pThis = (CRawResultReader*)pArg;
   pThis->m_nThreadStackFileReadFlag = 1;
   /*< SWK 20220413 - #4053 MOD Start >*/
//   CRawResultReader* pThis = (CRawResultReader*)pArg;
//
//   pThis->m_nThreadStackFileReadFlag = 1;
//    int nReadFailCount = 0;
//    int nThreadCount = 0;
//   CString strGlassID;
//
//    while (pThis->m_nThreadStackFileReadFlag == 1)
//    {
//      if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12]
//      {
//         strGlassID = pThis->m_strGlassID;
//
//         pThis->m_nProcessState = RPS_StateFileRead;
//          nThreadCount = 0;
//          nReadFailCount = 0;
//         AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
//         Sleep(3000);
//          while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
//          {
//             if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE)
//             {
//                pThis->m_nProcessState = RPS_ResultReadOK;
//                AKLOG("RawMerge File Read Complete ");
//                break;
//             }
//             nReadFailCount++;
//            AKLOG("RawMerge File Read Try : %d", nReadFailCount);
//             if (nReadFailCount > 10)
//             {
//                pThis->m_nProcessState = RPS_ResultReadFail;
//                break;
//             }
//            Sleep(50);
//          }
//          if (pThis->m_nProcessState != RPS_ResultReadOK)
//          {
//             pThis->m_nProcessState = RPS_ResultReadFail;
//          }
//      }
//       if (nReadFailCount)
//          Sleep(500);
//    }
//    pThis->m_nThreadStackFileReadFlag = 0;
   m_nProcessState = RPS_StateFileRead;
   int nReadFailCount = 0;
   int nThreadCount = 0;
   CString strGlassID;
   while (pThis->m_nThreadStackFileReadFlag == 1)
   AKLOG("RawMerge File Read Start : %s\\%s", m_strLocalPath, m_strGlassID);
   while (m_nProcessState == RPS_StateFileRead && m_nThreadStackFileReadFlag == 1)
   {
      if (pThis->m_nProcessState == RPS_CmdFileRead) //스택파일 읽기 수행 [김태현 2019/1/12]
      if (openFile(m_strGlassID.GetBuffer(0)) == TRUE)
      {
         strGlassID = pThis->m_strGlassID;
         pThis->m_nProcessState = RPS_StateFileRead;
         nThreadCount = 0;
         nReadFailCount = 0;
         AKLOG("RawMerge File Read Start : %s\\%s", pThis->m_strLocalPath, strGlassID);
         Sleep(3000);
         while (pThis->m_nProcessState == RPS_StateFileRead && pThis->m_nThreadStackFileReadFlag == 1)
         {
            if (pThis->openFile(strGlassID.GetBuffer(0)) == TRUE)
            {
               pThis->m_nProcessState = RPS_ResultReadOK;
               AKLOG("RawMerge File Read Complete ");
               break;
            }
            nReadFailCount++;
            AKLOG("RawMerge File Read Try : %d", nReadFailCount);
            if (nReadFailCount > 10)
            {
               pThis->m_nProcessState = RPS_ResultReadFail;
               break;
            }
            Sleep(50);
         }
         if (pThis->m_nProcessState != RPS_ResultReadOK)
         {
            pThis->m_nProcessState = RPS_ResultReadFail;
         }
         m_nProcessState = RPS_ResultReadOK;
         AKLOG("RawMerge File Read Complete ");
         break;
      }
      if (nReadFailCount)
         Sleep(500);
      nReadFailCount++;
      if (nReadFailCount > 10)
      {
         m_nProcessState = RPS_ResultReadFail;
         break;
      }
      AKLOG("RawMerge File Read Try : %d", nReadFailCount);
   }
   pThis->m_nThreadStackFileReadFlag = 0;
   if (m_nProcessState != RPS_ResultReadOK)
   {
      m_nProcessState = RPS_ResultReadFail;
   }
   /*< SWK 20220413 - #4053 MOD End >*/
}
/* <LJC 20211122 : #3820 ADD End> */
BOOL CRawResultReader::RawMergeFileReadStart(char* pGlassID)
{
   /*< SWK 20220413 - #4053 ADD Start >*/
   m_strGlassID = pGlassID;
   m_nProcessState = RPS_CmdFileRead;
   /*< SWK 20220413 - #4053 ADD End >*/
   if (m_nThreadStackFileReadFlag == 0)
   {
      _beginthread(threadResultFileRead, NULL, this);
@@ -495,27 +539,43 @@
      while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
   }
   m_strGlassID = pGlassID;
   m_nProcessState = RPS_CmdFileRead;
   /*< SWK 20220413 - #4053 DEL Start >
//    m_strGlassID = pGlassID;
//    m_nProcessState = RPS_CmdFileRead;
   < SWK 20220413 - #4053 DEL End >*/
   
   return TRUE;
}
/* <LJC 20211122 : #3820 ADD Start> */
BOOL CRawResultReader::ProcessRawMergeFileReadStart(char * pGlassID)
{
   if (m_nThreadStackFileReadFlag == 0)
   {
      ProcessResultFileRead(this);
      //< SWK 20220413 - #4053 MOD >
//      ProcessResultFileRead(this);
      ProcessResultFileRead();
   }
   if (m_nProcessState == RPS_StateFileRead)
   /*< SWK 20220413 - #4053 MOD Start >*/
//    if (m_nProcessState == RPS_StateFileRead)
//    {
//       m_nProcessState = RPS_CmdFileStop;
//       while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
//    }
//
//    m_strGlassID = pGlassID;
//    m_nProcessState = RPS_CmdFileRead;
   else
   {
      m_nProcessState = RPS_CmdFileStop;
      while (m_nProcessState == RPS_CmdFileStop) Sleep(0);
   }
      if (m_nProcessState == RPS_StateFileRead)
      {
         m_nProcessState = RPS_CmdFileStop;
         while (!(m_nProcessState == RPS_ResultReadOK || m_nProcessState == RPS_ResultReadFail)) Sleep(0);
      }
   m_strGlassID = pGlassID;
   m_nProcessState = RPS_CmdFileRead;
      m_strGlassID = pGlassID;
      m_nProcessState = RPS_CmdFileRead;
   }
   /*< SWK 20220413 - #4053 MOD End >*/
   return TRUE;
}