Ejemplo n.º 1
0
/******************************************************************************
** Function: TBLMGR_Constructor
**
** Notes:
**    1. This must be called prior to any other functions
**
*/
void TBLMGR_Constructor(TBLMGR_Class* TblMgrPtr,
                        char* TblMgrFilePathName)
{

   TblMgr = TblMgrPtr;

   /*
   ** Set all data and flags to zero.
   ** AttrErrCnt - Incremented by XML parser
   */
	
   CFE_PSP_MemSet(&(TblMgr->ExObjTbl), 0, sizeof(TBLMGR_ExObjTbl));
   TblMgr->ExObjTbl.LoadActive = TRUE;

   if (ParseXmlFile(TblMgrFilePathName, ExObjTblStartElement, ExObjTblEndElement) &&
       TblMgr->ExObjTbl.AttrErrCnt == 0)
   {

      TblMgr->ExObjTbl.LastLoadValid = (EXOBJ_LoadTable(&(TblMgr->ExObjTbl.Local)) == TRUE);

   } /* End if successful table parse */

   TblMgr->ExObjTbl.LoadActive = FALSE;
 
} /* End TBLMGR_Constructor() */
Ejemplo n.º 2
0
/******************************************************************************
** Function: TBLMGR_LoadExObjTableCmd
**
*/
boolean TBLMGR_LoadExObjTableCmd(const CFE_SB_MsgPtr_t MsgPtr)
{
   const  TBLMGR_LoadTblCmd *LoadTblCmd = (const TBLMGR_LoadTblCmd *) MsgPtr;
   int    entry;


   /*
   ** Set all data and flags to zero.
   ** AttrErrCnt - Incremented by XML parser
   */
	
   CFE_PSP_MemSet(&TblMgr->ExObjTbl, 0, sizeof(TBLMGR_ExObjTbl));
   TblMgr->ExObjTbl.LoadActive = TRUE;

   TblEntryId = 0;
   if (ParseXmlFile(LoadTblCmd->FileName, ExObjTblStartElement, ExObjTblEndElement) &&
       TblMgr->ExObjTbl.AttrErrCnt == 0)
   {

      if (LoadTblCmd->LoadType == TBLMGR_LOAD_TBL_REPLACE)
      {
         TblMgr->ExObjTbl.LastLoadValid = (EXOBJ_LoadTable(&(TblMgr->ExObjTbl.Local)) == TRUE);

      } /* End if replace entire table */
      else if (LoadTblCmd->LoadType == TBLMGR_LOAD_TBL_UPDATE)
      {
         TblMgr->ExObjTbl.LastLoadValid = TRUE;
         for (entry=0; entry < EXOBJ_TBL_MAX_ENTRY_ID; entry++)
         {

            if (TblMgr->ExObjTbl.Modified[entry])
            {
               if (!EXOBJ_LoadTableEntry(entry, &(TblMgr->ExObjTbl.Local.Entry[entry])))
                  TblMgr->ExObjTbl.LastLoadValid = FALSE;
            }

         } /* End pkt loop */

      } /* End if update individual records */
      else
      {
         CFE_EVS_SendEvent(TBLMGR_CMD_LOAD_TYPE_ERR_EID,CFE_EVS_ERROR,"TBLMGR: Invalid table command load type %d",LoadTblCmd->LoadType);
      }

   } /* End if successful parse */
   else
   {
      CFE_EVS_SendEvent(TBLMGR_CMD_LOAD_PARSE_ERR_EID,CFE_EVS_ERROR,"TBLMGR: Table Parsing failure for file %s");
   }

   return TblMgr->ExObjTbl.LastLoadValid;

} /* End of TBLMGR_LoadExObjTableCmd() */
Ejemplo n.º 3
0
int _tmain(int argc, _TCHAR* argv[])
{
	CoInitialize(NULL);	// COMの初期化処理

//	ParseXmlFile( _T("books.xml") );
	ParseXmlFile( _T(".\\test.xml") );

	CoUninitialize();	// COMの終了処理

	_getch();

	return 0;
}