Пример #1
0
NS_IMETHODIMP
nsDogbertProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup,
                                  const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;
  PRBool aReplace = aStartup ? PR_TRUE : PR_FALSE;

  if (!mTargetProfile) { 
    GetProfilePath(aStartup, mTargetProfile);
    if (!mTargetProfile) return NS_ERROR_FAILURE;
  }

  if (!mSourceProfile) {
    GetSourceProfile(aProfile);
    if (!mSourceProfile)
      return NS_ERROR_FAILURE;
  }

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

  COPY_DATA(CopyPreferences,  aReplace, nsIBrowserProfileMigrator::SETTINGS);
  COPY_DATA(CopyCookies,      aReplace, nsIBrowserProfileMigrator::COOKIES);
  COPY_DATA(CopyBookmarks,    aReplace, nsIBrowserProfileMigrator::BOOKMARKS);

  NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

  return rv;
}
Пример #2
0
void CReplayManager::vGetReplayConfigData(BYTE*& pDesBuffer, int& nBuffSize)
{
    UINT unToatalDataSize = sizeof(BYTE);//configuration version;
    int nSize = (int)m_omReplayFiles.GetSize();
    //For storing nSize value
    unToatalDataSize += sizeof(nSize);
    CReplayFile ouFile;
    for( int nIndex = 0; nIndex < nSize; nIndex++ )
    {
        ouFile = m_omReplayFiles.ElementAt( nIndex );
        unToatalDataSize += ouFile.unGetConfigSize();
    }
    unToatalDataSize += sizeof (WINDOWPLACEMENT);
    pDesBuffer = new BYTE[unToatalDataSize];
    nBuffSize = unToatalDataSize;
    BYTE* pbyTemp = pDesBuffer;
    //BYTE byVersion = REPLAY_MANAGER_INITIAL_VERSION;
    BYTE byVersion = REPLAY_MANAGER_REPLAY_MSG_ADD;
    COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));

    COPY_DATA(pbyTemp, &nSize, sizeof(nSize));

    for( int nIndex = 0; nIndex < nSize; nIndex++ )
    {
        ouFile = m_omReplayFiles.ElementAt( nIndex );
        pbyTemp = ouFile.pbySaveConfig(pbyTemp);
    }
    if (m_pomActiveWindow != nullptr)
    {
        m_pomActiveWindow->GetWindowPlacement(&m_sWndPlacement);
    }
    COPY_DATA(pbyTemp, &m_sWndPlacement, sizeof (WINDOWPLACEMENT));
}
/******************************************************************************
Function Name  :  GetConfigurationData
Input(s)       :  BYTE* pSrcBuffer, UINT unBuffSize
Output         :  HRESULT
Functionality  :  Loads the configuration data
Member of      :  CTSExecutorChildFrame
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  07/04/2011
Modifications  :
Code Tag       :  CS039
******************************************************************************/
HRESULT CTSExecutorChildFrame::GetConfigurationData(BYTE*& pDesBuffer, UINT& unBuffSize)
{
    //TestSuite Buffer
    UINT unTSBuffSize = 0;
    BYTE* pTSBuffer;
    m_ouTSExecutor.GetConfigurationData(pTSBuffer, unTSBuffSize);

    //Window position
    WINDOWPLACEMENT wndPlacement;
    GetWindowPlacement(&wndPlacement);

    //TreeView Window Position
    INT nCxCur, nCxMin;
    m_omSplitterWnd.GetColumnInfo(0, nCxCur, nCxMin);

    //TestSuite Buffer + Window position
    unBuffSize = sizeof(WINDOWPLACEMENT) + unTSBuffSize + (2*sizeof(INT));
    pDesBuffer = new BYTE[unBuffSize];
    BYTE* pTemp = pDesBuffer;
    COPY_DATA(pTemp, &wndPlacement, sizeof(WINDOWPLACEMENT));
    COPY_DATA(pTemp, &nCxCur, sizeof(INT));
    COPY_DATA(pTemp, &nCxMin, sizeof(INT));

    COPY_DATA(pTemp, pTSBuffer, unTSBuffSize);

    //Delete The Temporary Info
    delete []pTSBuffer;
    return S_OK;
}
Пример #4
0
void CSimSysManager::SaveSIMDataIntoBuffer(BYTE* DesBuffer)
{
    BYTE* tempBuffAddress = DesBuffer;

    BYTE byVersion = 0x1;
    COPY_DATA(tempBuffAddress, &byVersion, sizeof(BYTE));

    WINDOWPLACEMENT WndPlacement;
    CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd->GetWindowPlacement(&WndPlacement);

    COPY_DATA(tempBuffAddress, &WndPlacement, sizeof(WINDOWPLACEMENT));

    UINT unCount = m_ouSimSysNodeInfo.unGetNumberOfSimSys();
    COPY_DATA(tempBuffAddress, &unCount, sizeof (UINT));
    PSSIMSYSINFO pSimSysInfo = m_ouSimSysNodeInfo.psReturnSimsysInfoListPtr();
    for (UINT i = 0; (i < unCount) && (pSimSysInfo != NULL); i++)
    {
        UINT unSize = 0;
        CString omTmp = pSimSysInfo->m_omStrSimSysName;
        char acFilename[MAX_PATH];
        _tcscpy(acFilename, omTmp.GetBuffer(MAX_PATH));
        COPY_DATA(tempBuffAddress, acFilename, sizeof(char) * MAX_PATH);
        pSimSysInfo = pSimSysInfo->m_psSimsysNext;
    }

}
Пример #5
0
NS_IMETHODIMP
nsOperaProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup, const PRUnichar* aProfile)
{
    nsresult rv = NS_OK;
    PRBool aReplace = aStartup ? PR_TRUE : PR_FALSE;

    if (aStartup) {
        rv = aStartup->DoStartup();
        NS_ENSURE_SUCCESS(rv, rv);
    }

    if (!mOperaProfile)
        GetOperaProfile(aProfile, getter_AddRefs(mOperaProfile));

    NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

    COPY_DATA(CopyPreferences,  aReplace, nsIBrowserProfileMigrator::SETTINGS);
    COPY_DATA(CopyCookies,      aReplace, nsIBrowserProfileMigrator::COOKIES);
    COPY_DATA(CopyHistory,      aReplace, nsIBrowserProfileMigrator::HISTORY);
    COPY_DATA(CopyBookmarks,    aReplace, nsIBrowserProfileMigrator::BOOKMARKS);

    NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

    return rv;
}
// Getter for the logging configuration data
HRESULT CFrameProcessor_Common::GetConfigData(BYTE** ppvConfigData, UINT& unLength)
{
    BYTE* pbBuff = new BYTE[unGetBufSize()];
    *ppvConfigData = pbBuff;

    CLogObjArray* pomCurrArray = GetActiveLogObjArray();

    BYTE bVersion = VERSION_CURR;
    COPY_DATA(pbBuff, &bVersion, sizeof(bVersion));

    USHORT ushLogBlks = (USHORT) (pomCurrArray->GetSize());

    COPY_DATA(pbBuff, &ushLogBlks, sizeof(ushLogBlks));

    for (USHORT i = 0; i < ushLogBlks; i++)
    {
        CBaseLogObject* pouLogObj = pomCurrArray->GetAt(i);
        if (NULL != pouLogObj)
        {
            pbBuff = pouLogObj->GetConfigData(pbBuff);
        }
        else
        {
            ASSERT(FALSE);
        }
    }

    unLength = unGetBufSize();

    return S_OK;
}
Пример #7
0
BYTE* CGraphList::pbyGetConfigData(BYTE* pbyTrgtData)
{
    BYTE* pbyTemp = pbyTrgtData;
    pbyTemp = m_odGraphParameters.pbyGetConfigData(pbyTemp);

    // Save the list element count
    // Get list size
    int nElementCount = (int)m_omElementList.GetSize();
    // Save the size
    COPY_DATA(pbyTemp, &nElementCount, sizeof (int));

    // Save list of elements
    if( nElementCount > 0 )
    {
        CGraphElement odTemp;
        for( int nIndex = 0; nIndex < nElementCount;
                nIndex++ )
        {
            // Get the object from the list
            odTemp = m_omElementList.GetAt( nIndex );
            // Save the element
            pbyTemp = odTemp.pbyGetConfigData( pbyTemp );
        }
    }

    
    return pbyTemp;
}
NS_IMETHODIMP
nsMacIEProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup, const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;

  PRBool replace = aStartup ? PR_TRUE : PR_FALSE;

  if (!mTargetProfile) { 
    GetProfilePath(aStartup, mTargetProfile);
    if (!mTargetProfile) return NS_ERROR_FAILURE;
  }

  if (!mSourceProfile) {
    nsCOMPtr<nsIProperties> fileLocator =
      do_GetService("@mozilla.org/file/directory_service;1", &rv);
    NS_ENSURE_SUCCESS(rv, rv);

    fileLocator->Get(NS_OSX_USER_PREFERENCES_DIR,
                     NS_GET_IID(nsILocalFile),
                     getter_AddRefs(mSourceProfile));
    mSourceProfile->Append(MACIE_PREFERENCES_FOLDER_NAME);
  }

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

  COPY_DATA(CopyBookmarks, replace, nsIBrowserProfileMigrator::BOOKMARKS);

  NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

  return rv;
}
Пример #9
0
void send_ok_response(spidermonkey_drv_t *dd, js_call *call_data,
                      const char *call_id) {
  ErlDrvTermData terms[] = {ERL_DRV_BUF2BINARY,
                            (ErlDrvTermData) call_data->return_call_id,strlen(call_id),
                            ERL_DRV_ATOM, dd->atom_ok,
                            ERL_DRV_TUPLE, 2};
  COPY_DATA(call_data, call_id, terms);
}
Пример #10
0
HRESULT CSignalWatch_CAN::SW_GetConfigData(void* pbyConfigData)
{
    WINDOWPLACEMENT WndPlace;
    UINT nDebugSize  = 0;
    BYTE* pbyTemp = (BYTE*)pbyConfigData;
    if ((m_pouSigWnd != NULL) && (pbyTemp != NULL))
    {   
        m_pouSigWnd->GetWindowPlacement(&WndPlace);
        COPY_DATA(pbyTemp, &WndPlace, sizeof (WINDOWPLACEMENT));
        for (UINT i = 0; i < defSW_LIST_COLUMN_COUNT; i++)
        {
            INT nWidth = m_pouSigWnd->m_omSignalList.GetColumnWidth(i);
            COPY_DATA(pbyTemp, &nWidth, sizeof (INT));
        }
    }
    return S_OK;
}
Пример #11
0
/******************************************************************************
  Function Name    :  pbGetConfigData
  Input(s)         :  pbTarget - The target buffer to save logging data.
                      It assumes that pbTarget is currently pointing to a loca-
                      tion having sufficient space.
  Output           :  BYTE * - Location of the next available buffer.
  Functionality    :  Saves logging block information of the current object into
                      the target buffer. Advances the writing pointer to the
                      next byte occurring after the written block.
  Member of        :  tagLogInfo
  Friend of        :  -
  Author(s)        :  Ratnadip Choudhury
  Date Created     :  1.12.2009
  Modification date:
  Modification By  :
******************************************************************************/
BYTE* tagLogInfo::pbGetConfigData(BYTE* pbTarget) const
{
    BYTE* pbTStream = pbTarget;
    COPY_DATA(pbTStream, &m_bIsUpdated,       sizeof(m_bIsUpdated        ));
    COPY_DATA(pbTStream, &m_bEnabled,         sizeof(m_bEnabled          ));
    COPY_DATA(pbTStream, &m_eLogTimerMode,    sizeof(m_eLogTimerMode     ));
    COPY_DATA(pbTStream, &m_eNumFormat,       sizeof(m_eNumFormat        ));
    COPY_DATA(pbTStream, &m_eFileMode,        sizeof(m_eFileMode         ));
    COPY_DATA(pbTStream, &m_bResetAbsTimeStamp, sizeof(m_bResetAbsTimeStamp));
    COPY_DATA(pbTStream, &m_ChannelSelected,  sizeof(m_ChannelSelected   ));
    COPY_DATA(pbTStream, m_sLogFileName,      sizeof(m_sLogFileName      ));
    COPY_DATA(pbTStream, &m_sLogTrigger,      sizeof(m_sLogTrigger       ));
    return pbTStream;
}
Пример #12
0
void unknown_command(spidermonkey_drv_t *dd, js_call *call_data,
                     const char *call_id) {
  ErlDrvTermData terms[] = {ERL_DRV_BUF2BINARY,
                            (ErlDrvTermData) call_data->return_call_id,strlen(call_id),
                            ERL_DRV_ATOM, dd->atom_error,
                            ERL_DRV_ATOM, dd->atom_unknown_cmd,
                            ERL_DRV_TUPLE, 3};
  COPY_DATA(call_data, call_id, terms);
}
NS_IMETHODIMP
nsSeamonkeyProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup, const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;
  PRBool aReplace = aStartup ? PR_TRUE : PR_FALSE;

  if (!mTargetProfile) {
    GetProfilePath(aStartup, mTargetProfile);
    if (!mTargetProfile) return NS_ERROR_FAILURE;
  }
  if (!mSourceProfile)
    GetSourceProfile(aProfile);

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

  COPY_DATA(CopyPreferences,  aReplace, nsIBrowserProfileMigrator::SETTINGS);
  COPY_DATA(CopyCookies,      aReplace, nsIBrowserProfileMigrator::COOKIES);
  COPY_DATA(CopyPasswords,    aReplace, nsIBrowserProfileMigrator::PASSWORDS);
  COPY_DATA(CopyOtherData,    aReplace, nsIBrowserProfileMigrator::OTHERDATA);

  // Need to do startup before trying to copy bookmarks, since bookmarks
  // import requires a profile. Can't do it earlier because services might
  // end up creating the files we try to copy above.
  if (aStartup) {
    rv = aStartup->DoStartup();
    NS_ENSURE_SUCCESS(rv, rv);
  }

  COPY_DATA(CopyBookmarks,    aReplace, nsIBrowserProfileMigrator::BOOKMARKS);

  if (aReplace && 
      (aItems & nsIBrowserProfileMigrator::SETTINGS || 
       aItems & nsIBrowserProfileMigrator::COOKIES || 
       aItems & nsIBrowserProfileMigrator::PASSWORDS ||
       !aItems)) {
    // Permissions (Images, Cookies, Popups)
    rv |= CopyFile(FILE_NAME_SITEPERM_NEW, FILE_NAME_SITEPERM_NEW);
    rv |= CopyFile(FILE_NAME_SITEPERM_OLD, FILE_NAME_SITEPERM_OLD);
  }

  NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

  return rv;
}
Пример #14
0
void send_error_string_response(spidermonkey_drv_t *dd, js_call *call_data,
                                const char *call_id, const char *msg) {
  ErlDrvTermData terms[] = {ERL_DRV_BUF2BINARY,
                            (ErlDrvTermData) call_data->return_call_id,strlen(call_id),
                            ERL_DRV_ATOM, dd->atom_error,
                            ERL_DRV_BUF2BINARY, (ErlDrvTermData) msg, strlen(msg),
                            ERL_DRV_TUPLE, 3};
  COPY_DATA(call_data, call_id, terms);
  call_data->return_string = msg;
}
Пример #15
0
HRESULT CWaveFormDataHandler::GetConfigData(BYTE** ppvDataStream, UINT& unLength) 
{
	UINT nSize = 0;
	nSize += sizeof(BYTE);  // 1 Byte for Version
	nSize += sizeof(UINT);  // Bytes for Buffer Size

	nSize += nGetWaveInfoListSize();

	BYTE* pByteTrgt = new BYTE[nSize];	
	*ppvDataStream = pByteTrgt;	
	
	BYTE byVer = WAVEFORM_DATA_HANDLER_VERSION;
	COPY_DATA(pByteTrgt, &byVer , sizeof(BYTE)); //Setting Version.
	COPY_DATA(pByteTrgt, &nSize, sizeof(UINT)); //Setting Buffer Size. 		

	pByteTrgt = pbyGetListConfigData(pByteTrgt, nSize);
	unLength = nSize;	

	return S_OK;
}
NS_IMETHODIMP
nsThunderbirdProfileMigrator::Migrate(uint16_t aItems,
                                      nsIProfileStartup* aStartup,
                                      const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;
  bool aReplace = aStartup ? true : false;

  if (!mTargetProfile) {
    GetProfilePath(aStartup, getter_AddRefs(mTargetProfile));
    if (!mTargetProfile)
      return NS_ERROR_FILE_NOT_FOUND;
  }
  if (!mSourceProfile) {
    GetSourceProfile(aProfile);
    if (!mSourceProfile)
      return NS_ERROR_FILE_NOT_FOUND;
  }

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nullptr);

  COPY_DATA(CopyPreferences,  aReplace, nsISuiteProfileMigrator::SETTINGS);
  COPY_DATA(CopyCookies,      aReplace, nsISuiteProfileMigrator::COOKIES);
  COPY_DATA(CopyHistory,      aReplace, nsISuiteProfileMigrator::HISTORY);
  COPY_DATA(CopyPasswords,    aReplace, nsISuiteProfileMigrator::PASSWORDS);
  COPY_DATA(CopyOtherData,    aReplace, nsISuiteProfileMigrator::OTHERDATA);

  // fake notifications for things we've already imported as part of
  // CopyPreferences
  nsAutoString index;
  index.AppendInt(nsISuiteProfileMigrator::ACCOUNT_SETTINGS);
  NOTIFY_OBSERVERS(MIGRATION_ITEMBEFOREMIGRATE, index.get());
  NOTIFY_OBSERVERS(MIGRATION_ITEMAFTERMIGRATE, index.get());

  index.Truncate();
  index.AppendInt(nsISuiteProfileMigrator::NEWSDATA);
  NOTIFY_OBSERVERS(MIGRATION_ITEMBEFOREMIGRATE, index.get());
  NOTIFY_OBSERVERS(MIGRATION_ITEMAFTERMIGRATE, index.get());

  // copy junk mail training file
  COPY_DATA(CopyJunkTraining, aReplace, nsISuiteProfileMigrator::JUNKTRAINING);

  if (aReplace &&
      (aItems & nsISuiteProfileMigrator::SETTINGS ||
       aItems & nsISuiteProfileMigrator::COOKIES ||
       aItems & nsISuiteProfileMigrator::PASSWORDS ||
       !aItems)) {
    // Permissions (Images, Cookies, Popups)
    rv |= CopyFile(FILE_NAME_SITEPERM_NEW, FILE_NAME_SITEPERM_NEW);
    rv |= CopyFile(FILE_NAME_SITEPERM_OLD, FILE_NAME_SITEPERM_OLD);
  }

  // the last thing to do is to actually copy over any mail folders
  // we have marked for copying we want to do this last and it will be
  // asynchronous so the UI doesn't freeze up while we perform
  // this potentially very long operation.
  CopyMailFolders();

  return rv;
}
NS_IMETHODIMP
nsSafariProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup,
                                 const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;

  bool replace = false;

  if (aStartup) {
    replace = true;
    rv = aStartup->DoStartup();
    NS_ENSURE_SUCCESS(rv, rv);
  }

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

  COPY_DATA(CopyPreferences,  replace, nsIBrowserProfileMigrator::SETTINGS);
  COPY_DATA(CopyCookies,      replace, nsIBrowserProfileMigrator::COOKIES);
  COPY_DATA(CopyHistory,      replace, nsIBrowserProfileMigrator::HISTORY);
  COPY_DATA(CopyBookmarks,    replace, nsIBrowserProfileMigrator::BOOKMARKS);
  COPY_DATA(CopyFormData,     replace, nsIBrowserProfileMigrator::FORMDATA);
  COPY_DATA(CopyOtherData,    replace, nsIBrowserProfileMigrator::OTHERDATA);

  NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

  return rv;
}
Пример #18
0
void CSimSysManager::vSaveSimSysWndConfig()
{
    if (CGlobalObj::ouGetObj(m_eBus).m_pomSimSysWnd != NULL)
    {
        CGlobalObj::ouGetObj(m_eBus).m_nSimSysDataSize = unGetStoreSIMFBufferSize(); //Get the required size

        if (CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr != NULL)
        {
            delete[] CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr;
        }
        CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr = new BYTE[CGlobalObj::ouGetObj(m_eBus).m_nSimSysDataSize];
        if (CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr != NULL)
        {
            SaveSIMDataIntoBuffer(CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr);// save the config into buffer
            /* Add into a different section SIM_WND_CONFIG_SECTION_NAME*/
            /*CConfigDetails::ouGetConfigDetailsObject().bSetData((LPVOID)SectionBuffer,
                                            unBufferSize, SIM_WND_CONFIG_SECTION_NAME);
            delete [] SectionBuffer;*/
        }
    }
    else
    {
        if (CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr == NULL)
        {
            //New configuration. So get default values
            int nCount = 0;//Total number of simsys
            int nTotalSize = sizeof(BYTE);
            nTotalSize += sizeof(WINDOWPLACEMENT) + sizeof(UINT);
            CGlobalObj::ouGetObj(m_eBus).m_nSimSysDataSize = nTotalSize;
            CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr = new BYTE[nTotalSize];
            BYTE* byTempData = CGlobalObj::ouGetObj(m_eBus).m_pSimSysDataPtr;
            BYTE byVersion = 0x1;
            COPY_DATA(byTempData, &byVersion, sizeof(BYTE));
            CGlobalObj::ouGetObj(m_eBus).bGetDefaultValue(SIMSYS_WND_PLACEMENT, CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement);
            COPY_DATA(byTempData, &(CGlobalObj::ouGetObj(m_eBus).m_wWindowPlacement), sizeof(WINDOWPLACEMENT));
            COPY_DATA(byTempData, &nCount, sizeof(UINT));
        }
    }
}
Пример #19
0
static BYTE* pbGetReplayFileConfig(SREPLAYFILE& sReplayFile, BYTE* pbTarget)
{
    BYTE* pbTemp = pbTarget;
    COPY_DATA(pbTemp, &(sReplayFile.m_bEnabled), sizeof(sReplayFile.m_bEnabled));
    COPY_DATA(pbTemp, &(sReplayFile.m_bInteractive), sizeof(sReplayFile.m_bInteractive));
    COPY_DATA(pbTemp, &(sReplayFile.m_nReplayMode), sizeof(sReplayFile.m_nReplayMode));
    COPY_DATA(pbTemp, &(sReplayFile.m_nTimeMode), sizeof(sReplayFile.m_nTimeMode));
    COPY_DATA(pbTemp, &(sReplayFile.m_unCycleTimeDelay), sizeof(sReplayFile.m_unCycleTimeDelay));
    COPY_DATA(pbTemp, &(sReplayFile.m_unMsgTimeDelay), sizeof(sReplayFile.m_unMsgTimeDelay));
    char acName[MAX_PATH] = {_T('\0')};
    strcpy_s(acName, sReplayFile.m_omStrFileName.GetBuffer(MAX_PATH));
    COPY_DATA(pbTemp, acName, sizeof(char) * MAX_PATH);
    return pbTemp;
}
Пример #20
0
/*******************************************************************************
  Function Name  : vGetDataFromStore
  Input(s)       : -
  Output         : -
  Functionality  : Gets the data from store for comparision.
  Member of      : CBusStatisticsDlg
  Author(s)      : Arunkumar K
  Date Created   : 06-04-2011
  Modifications  :
*******************************************************************************/
void CBusStatisticsDlg::vGetDataFromStore(BYTE** pvDataStream, UINT& nSize)
{
    if(sm_sBusSerializationData.m_bIsDirty == true)
    {
        nSize += sizeof(BYTE);  // 1 Byte for Version
        nSize += sizeof(UINT);  // Bytes for Buffer Size
        //Bytes for column Header Positions.
        nSize += sizeof(UINT); //to store the column count
        UINT unColCount = sm_sBusSerializationData.m_nColumnCount;
        nSize += (sizeof(int) * unColCount); //Column order
        nSize += (sizeof(bool) * unColCount);//Column visibility
        nSize += (sizeof(int) * unColCount); //Column width
        nSize += sizeof(WINDOWPLACEMENT);//sizeof Bus Statistics dialog placement
        *pvDataStream = new BYTE[nSize];
        BYTE* pByteTrgt = NULL;
        pByteTrgt = *pvDataStream;

        if (pByteTrgt != NULL)
        {
            BYTE byVer = BUS_STATS_DLG_VERSION;
            COPY_DATA(pByteTrgt, &byVer , sizeof(BYTE)); //Setting Version.
            COPY_DATA(pByteTrgt, &nSize, sizeof(UINT)); //Setting Buffer Size.
            COPY_DATA(pByteTrgt, &unColCount, sizeof(UINT)); //Storing column count.

            for (UINT i = 0 ; i < unColCount; i++)
            {
                //Storing Column Header Positions.
                COPY_DATA(pByteTrgt, &sm_sBusSerializationData.m_arrnOrder[i], sizeof(int));
                //Storing Column Header show/Hide.
                COPY_DATA(pByteTrgt, &sm_sBusSerializationData.m_arrbColumnVisible[i], sizeof(bool));
                //Storing Column width.
                COPY_DATA(pByteTrgt, &sm_sBusSerializationData.m_arrnColWidth[i], sizeof(int));
            }

            COPY_DATA(pByteTrgt, &sm_sBusSerializationData.m_sBusStatsDlgCoOrd, sizeof(WINDOWPLACEMENT));
        }
    }
}
Пример #21
0
/*******************************************************************************
  Function Name  : GetConfigData
  Input(s)       : ppvDataStream, unLength
  Output         : -
  Functionality  : Returns the Bus stats dialog Configuration in Byte Array.
  Member of      : CBusStatisticsDlg
  Author(s)      : Arunkumar K
  Date Created   : 06-04-2011
  Modifications  :
*******************************************************************************/
HRESULT CBusStatisticsDlg::GetConfigData(BYTE* pvDataStream)
{
    BYTE* pByteTrgt = NULL;
    pByteTrgt = pvDataStream;
    BYTE byVer = BUS_STATS_DLG_VERSION;
    COPY_DATA(pByteTrgt, &byVer , sizeof(BYTE)); //Setting Version.
    UINT nSize= nGetBusStatsDlgConfigSize();
    COPY_DATA(pByteTrgt, &nSize, sizeof(UINT)); //Setting Buffer Size.
    CHeaderCtrl* pHeaderCtrl = m_omStatList.GetHeaderCtrl();

    if (pHeaderCtrl != NULL)
    {
        int  nColumnCount = pHeaderCtrl->GetItemCount();
        COPY_DATA(pByteTrgt, &nColumnCount, sizeof(UINT)); //Storing column count.
        LPINT pnOrder = (LPINT) malloc(nColumnCount*sizeof(int));
        ASSERT(pnOrder != NULL);
        m_omStatList.GetColumnOrderArray(pnOrder, nColumnCount);

        for (int i = 0 ; i < nColumnCount; i++)
        {
            //Storing Column Header Positions.
            COPY_DATA(pByteTrgt, &pnOrder[i], sizeof(int));
            //Storing Column Header show/Hide.
            bool bColumnVisible = m_omStatList.IsColumnShown(i);
            COPY_DATA(pByteTrgt, &bColumnVisible, sizeof(bool));
            //Storing Column width.
            INT nColWidth = m_omStatList.GetColumnWidth(i);
            COPY_DATA(pByteTrgt, &nColWidth, sizeof(int));
        }

        free(pnOrder);
    }

    GetWindowPlacement(&sm_sBusSerializationData.m_sBusStatsDlgCoOrd);
    COPY_DATA(pByteTrgt, &sm_sBusSerializationData.m_sBusStatsDlgCoOrd, sizeof(WINDOWPLACEMENT));
    return S_OK;
}
Пример #22
0
NS_IMETHODIMP
nsSeamonkeyProfileMigrator::Migrate(PRUint16 aItems, nsIProfileStartup* aStartup, const PRUnichar* aProfile)
{
  nsresult rv = NS_OK;
  PRBool aReplace = aStartup ? PR_TRUE : PR_FALSE;

  if (!mTargetProfile) {
    GetProfilePath(aStartup, mTargetProfile);
    if (!mTargetProfile) return NS_ERROR_FAILURE;
  }
  if (!mSourceProfile)
    GetSourceProfile(aProfile);

  NOTIFY_OBSERVERS(MIGRATION_STARTED, nsnull);

  COPY_DATA(CopyPreferences,  aReplace, nsIBrowserProfileMigrator::SETTINGS);
  COPY_DATA(CopyCookies,      aReplace, nsIBrowserProfileMigrator::COOKIES);
  COPY_DATA(CopyHistory,      aReplace, nsIBrowserProfileMigrator::HISTORY);
  COPY_DATA(CopyPasswords,    aReplace, nsIBrowserProfileMigrator::PASSWORDS);
  COPY_DATA(CopyOtherData,    aReplace, nsIBrowserProfileMigrator::OTHERDATA);
  COPY_DATA(CopyBookmarks,    aReplace, nsIBrowserProfileMigrator::BOOKMARKS);

  if (aReplace && 
      (aItems & nsIBrowserProfileMigrator::SETTINGS || 
       aItems & nsIBrowserProfileMigrator::COOKIES || 
       aItems & nsIBrowserProfileMigrator::PASSWORDS ||
       !aItems)) {
    // Permissions (Images, Cookies, Popups)
    rv |= CopyFile(FILE_NAME_SITEPERM_NEW, FILE_NAME_SITEPERM_NEW);
    rv |= CopyFile(FILE_NAME_SITEPERM_OLD, FILE_NAME_SITEPERM_OLD);
  }

  NOTIFY_OBSERVERS(MIGRATION_ENDED, nsnull);

  return rv;
}
Пример #23
0
BYTE* CGraphParameters::pbyGetConfigData(BYTE* pbyTrgtData, BYTE byVersion)
{
    BYTE* pbyTemp = pbyTrgtData;
    if (pbyTemp != NULL)
    {
        // Set the def
        COPY_DATA(pbyTemp, &m_nBufferSize, sizeof(int));
        // Display ref
        COPY_DATA(pbyTemp, &m_nRefreshRate, sizeof(int));
        // View Style 
        // Frame Color
        COPY_DATA(pbyTemp, &m_nFrameColor, sizeof(int));
        // Frame Style
        COPY_DATA(pbyTemp, &m_nFrameStyle, sizeof(int));
        // Plot Area C
        COPY_DATA(pbyTemp, &m_nPlotAreaColor, sizeof(int));
        // Grid Color
        COPY_DATA(pbyTemp, &m_nGridColor, sizeof(int));
        // Axis Color
        COPY_DATA(pbyTemp, &m_nAxisColor, sizeof(int));
        // X Grid Line
        COPY_DATA(pbyTemp, &m_nXGridLines, sizeof(int));
        // Y Grid Line
        COPY_DATA(pbyTemp, &m_nYGridLines, sizeof(int));
        // User Select
        COPY_DATA(pbyTemp, &m_nActiveAxis, sizeof(int));
        // User Select
        COPY_DATA(pbyTemp, &m_nAction, sizeof(int));
        // Grid Settin
        COPY_DATA(pbyTemp, &m_bShowGrid, sizeof(BOOL));
		if(byVersion == 2)
		{
			//Line Display type
			COPY_DATA(pbyTemp, &m_eDisplayType, sizeof(eDISPLAY_TYPE));		
		}
    }
    return pbyTemp;
}
Пример #24
0
BYTE* CTxWndDataStore::pbyGetConfigData(BYTE*& pbyConfigData, INT& nConfigSize)
{
    BYTE* pbyCfgData = NULL;
    UINT unSize = 0;

    //FIRST CALCULATE THE SIZE
    unSize += sizeof(BYTE);// configuration version
    UINT unBlockCount = m_unNumberOfMsgBlockCount;
    unSize += sizeof (UINT); //block count

    PSMSGBLOCKLIST psTemp = m_psMsgBlockList;
    while (psTemp != NULL && unBlockCount > 0)
    {
        unSize += (sizeof(char) * MAX_PATH); // To store the block name
        unSize += sizeof(UCHAR); // To store the trigger
        unSize += sizeof(BOOL); // To store active or not
        unSize += sizeof(UCHAR); // To store the key value
        unSize += sizeof (UINT); // to store the timeinterval
        unSize += sizeof (BOOL); // Type
        unSize += sizeof (BOOL); // Send All msgs

        unSize += sizeof(UINT);// To store no of msgs in each block

        unSize += (psTemp->m_unMsgCount) * sizeof (STXCANMSGDETAILS);
        psTemp = psTemp->m_psNextMsgBlocksList;
    }

    unSize += sizeof(WINDOWPLACEMENT);
    unSize += sizeof(STXMSGSPLITTERDATA);
    unSize += sizeof(bool);                 //allocation for auto update

    //ALLOCATE THE MEMORY
    pbyCfgData = new BYTE[unSize];
    BYTE* pbyTemp = pbyCfgData;

    BYTE byVersion = defTX_MSG_WND_VERSION;
    COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
    COPY_DATA(pbyTemp, &unBlockCount, sizeof(UINT));

    PSMSGBLOCKLIST psTempBlock = m_psMsgBlockList;
    while (psTempBlock != NULL && unBlockCount > 0)
    {
        CString m_omStrBlockName;
        char acName[MAX_PATH] = {_T('\0')};
        strcpy_s(acName, MAX_PATH, psTempBlock->m_acStrBlockName);
        COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
        COPY_DATA(pbyTemp, &(psTempBlock->m_ucTrigger), sizeof(UCHAR));
        COPY_DATA(pbyTemp, &(psTempBlock->m_bActive), sizeof(BOOL));
        COPY_DATA(pbyTemp, &(psTempBlock->m_ucKeyValue), sizeof(UCHAR));
        COPY_DATA(pbyTemp, &(psTempBlock->m_unTimeInterval), sizeof(UINT));
        COPY_DATA(pbyTemp, &(psTempBlock->m_bType), sizeof(BOOL));
        COPY_DATA(pbyTemp, &(psTempBlock->m_bTxAllFrame), sizeof(BOOL));

        COPY_DATA(pbyTemp, &(psTempBlock->m_unMsgCount), sizeof(UINT));

        PSTXCANMSGLIST psTempCanList = psTempBlock->m_psTxCANMsgList;
        while (psTempCanList != NULL)
        {
            COPY_DATA(pbyTemp, &(psTempCanList->m_sTxMsgDetails), sizeof (STXCANMSGDETAILS));
            psTempCanList = psTempCanList->m_psNextMsgDetails;
        }
        psTempBlock = psTempBlock->m_psNextMsgBlocksList;
    }

    //Get the Tx window placement
    COPY_DATA(pbyTemp, &m_sTxWndPlacement, sizeof(WINDOWPLACEMENT));

    //Get the Tx splitter position
    COPY_DATA(pbyTemp, &m_sTxMsgWndSplitterPos, sizeof(STXMSGSPLITTERDATA));

    //Get the Auto save option
    COPY_DATA(pbyTemp, &m_bAutoSavedEnabled, sizeof(bool));

    //Update the OUT PARAMETERS
    pbyConfigData = pbyCfgData;
    nConfigSize = unSize;

    return pbyTemp;//return the latest pointer
}
Пример #25
0
BYTE* CWaveFormDataHandler::pbyGetListConfigData(BYTE* pbyTrgtStream, const UINT /*nSize*/)
{
	BYTE* pByteTrgt = pbyTrgtStream;
	POSITION pos = m_lstSignalWaveformInfo.GetHeadPosition();	

	//Storing Messages Count.
	UINT nMsgCount = m_lstSignalWaveformInfo.GetCount();
	COPY_DATA(pByteTrgt, &(nMsgCount), sizeof(UINT));
	
	while(pos)
	{
		SSigGeneration& objSigGen = m_lstSignalWaveformInfo.GetNext(pos);	

		//Storing Message ID.
		COPY_DATA(pByteTrgt, &(objSigGen.m_nMsgID), sizeof(objSigGen.m_nMsgID));
		//Storing Default Amplitude.
		COPY_DATA(pByteTrgt, &(objSigGen.m_fDefaultAmplitude), sizeof(objSigGen.m_fDefaultAmplitude));		
		
		//Storing Signal Count.
		UINT nSigCount = objSigGen.m_omSigWaveMapList.GetCount();
		COPY_DATA(pByteTrgt, &(nSigCount), sizeof(UINT));

		POSITION posSig = objSigGen.m_omSigWaveMapList.GetHeadPosition();
		while(posSig)
		{
			sSigWaveMap& objSigMap = objSigGen.m_omSigWaveMapList.GetNext(posSig);	

			//Storing Signal Name Size.
			BYTE bytSignalSize = (BYTE)objSigMap.m_omSigName.GetLength();
			COPY_DATA(pByteTrgt, &(bytSignalSize), sizeof(bytSignalSize));

			//Storing Signal Name String.
			for(int i = 0 ;i<bytSignalSize; i++)
			{				
				BYTE bytTemp = objSigMap.m_omSigName.GetAt(i);
				COPY_DATA(pByteTrgt, &(bytTemp), sizeof(BYTE));			
			}			

			//Storing sWaveformInfo structure.
			COPY_DATA(pByteTrgt, &(objSigMap.sWaveInfo.m_eSignalWaveType),
				                 sizeof(objSigMap.sWaveInfo.m_eSignalWaveType));

			COPY_DATA(pByteTrgt, &(objSigMap.sWaveInfo.m_fAmplitude),
						         sizeof(objSigMap.sWaveInfo.m_fAmplitude));

			COPY_DATA(pByteTrgt, &(objSigMap.sWaveInfo.m_fFrequency),
								 sizeof(objSigMap.sWaveInfo.m_fFrequency));			

			COPY_DATA(pByteTrgt, &(objSigMap.sWaveInfo.m_fGranularity),
								 sizeof(objSigMap.sWaveInfo.m_fGranularity));			
		}
	}
	//Storing Sampling Time period.
	COPY_DATA(pByteTrgt, &m_shSamplingTP, sizeof(m_shSamplingTP));
	return pByteTrgt;
}
Пример #26
0
/******************************************************************************
Function Name  :  GetConfigurationData
Input(s)       :  BYTE*& pDesBuffer, UINT& unBuffSize
Output         :  HRESULT
Functionality  :
Member of      :  CTSExecutorLIB
Friend of      :  -
Author(s)      :  Venkatanarayana Makam
Date Created   :  07/04/2011
Modifications  :
Code Tag       :
******************************************************************************/
HRESULT CTSExecutorLIB::GetConfigurationData(BYTE*& pDesBuffer, UINT& unBuffSize)
{
    INT nFileCount = (INT)m_ouTestSetupEntityList.GetCount();
    unBuffSize = sizeof(UINT) + sizeof(BOOL)+sizeof(char)*MAX_PATH; //Number of TestSetupFiles + Status of TestSuite+TestSuite Name

    for(INT i = 0; i < nFileCount; i++)
    {
        UINT unCount;
        GetTestcaseCount(i, unCount);
        //TestSuite Name + File Path + Selection Status + Number of TestCases + Testcases Status
        unBuffSize += (sizeof(char)*MAX_PATH + sizeof(char)*MAX_PATH) + sizeof(BOOL) + sizeof(UINT) + (unCount*sizeof(BOOL));
    }

    pDesBuffer = new BYTE[unBuffSize];

    if (pDesBuffer != NULL)
    {
        BYTE* pbyTemp = pDesBuffer;
        //TestSuite name
        char acTestSuiteName[MAX_PATH] = {_T('\0')};
        strcpy_s(acTestSuiteName, MAX_PATH, m_omstrTestSuiteName);
        COPY_DATA(pbyTemp, acTestSuiteName, (sizeof (char) * MAX_PATH));
        //TestSuite Status
        COPY_DATA(pbyTemp, &m_bTestSuiteStatus, sizeof(BOOL));

        //File Count
        COPY_DATA(pbyTemp, &nFileCount, sizeof(INT));


        for(INT i = 0; i < nFileCount; i++)
        {
            UINT unCount;
            POSITION pos = m_ouTestSetupEntityList.FindIndex(i);
            CTestSetupEntity& ouTestSetupEntity = m_ouTestSetupEntityList.GetAt(pos);

            //File Path
            char acName[MAX_PATH] = {_T('\0')};
            strcpy_s(acName, MAX_PATH, ouTestSetupEntity.m_omstrCurrentTSFile.GetBuffer(MAX_PATH));
            COPY_DATA(pbyTemp, acName, (sizeof (char) * MAX_PATH));
            //Selection Status
            BOOL bStatus = ouTestSetupEntity.bGetEnableStatus();
            COPY_DATA(pbyTemp, &bStatus, sizeof(BOOL));

            //TestCase Count
            ouTestSetupEntity.GetSubEntryCount(unCount);
            COPY_DATA(pbyTemp, &unCount, sizeof(UINT));

            //TestCase Selection Status
            for(UINT j=0; j<unCount; j++)
            {
                CBaseEntityTA* pTCEntity;
                ouTestSetupEntity.GetSubEntityObj(j, &pTCEntity);
                bStatus = FALSE;
                if(pTCEntity != NULL)
                {
                    bStatus = pTCEntity->bGetEnableStatus();
                }
                COPY_DATA(pbyTemp, &bStatus, sizeof(BOOL));
            }
            //File Path + Selection Status + Number of TestCases + Testcases Status
        }
    }
    return S_OK;
}
Пример #27
0
/**
 * \brief initialises user selection
 * \return TRUE or FALSE
 *
 * This method will initialise user selection from
 * a configuration module to respective module.
 */
BOOL CCANMonitorApp::bInitialiseConfiguration(BOOL bFromCom)
{
    BOOL bReturn = TRUE;
    CMainFrame* pMainFrame = static_cast<CMainFrame*> (m_pMainWnd);

    if(pMainFrame != nullptr )
    {
        BOOL bIsDatabaseFoundInConfigFile = FALSE;

        if(m_pouMsgSignal != nullptr)
        {
            m_pouMsgSignal->bDeAllocateMemory("");
        }
        else
        {
            m_pouMsgSignal = new CMsgSignal(sg_asDbParams[CAN], m_bFromAutomation);
        }

        if ( m_pouMsgSignal != nullptr )
        {
            //Get the Database names
            CStringArray aomOldDatabases;
            //To keep all the files which are successfully imported
            CStringArray aomNewDatabases;
            aomNewDatabases.RemoveAll();
            m_pouMsgSignal->vGetDataBaseNames(&aomOldDatabases);
            int nFileCount = aomOldDatabases.GetSize();

            if(nFileCount == 0)
            {
                bIsDatabaseFoundInConfigFile = FALSE;
                // Reset corresponding flag
                m_pouFlags->vSetFlagStatus( SELECTDATABASEFILE, FALSE );
            }
            else
            {
                CString omStrDatabase;
                int nDatabaseNotFound = 0;

                for(int nCount = 0; nCount < nFileCount; nCount++)
                {
                    omStrDatabase  = aomOldDatabases.GetAt(nCount);

                    if (omStrDatabase.IsEmpty())
                    {
                        nDatabaseNotFound++;
                        aomOldDatabases.RemoveAt(nCount);
                        --nCount;
                        --nFileCount;
                    }
                    else
                    {
                        bIsDatabaseFoundInConfigFile = TRUE;
                        // Check if the file really exists
                        struct _finddata_t fileinfo;

                        if (_findfirst(omStrDatabase.GetBuffer(MAX_PATH) ,&fileinfo) == -1L)
                        {
                            CString omStrMsg = _("Database File: ");
                            omStrMsg += omStrDatabase;
                            omStrMsg += _(" not found!");

                            if(bFromCom==FALSE)
                            {
                                MessageBox(nullptr,omStrMsg,"BUSMASTER",MB_OK|MB_ICONERROR);
                            }

                            // Remove the file name from configuration file.
                            nDatabaseNotFound++;
                            aomOldDatabases.RemoveAt(nCount);
                            --nCount;
                            --nFileCount;
                        }
                        else
                        {
                            // Reset corresponding flag
                            m_pouFlags->vSetFlagStatus( SELECTDATABASEFILE, TRUE );
                            m_pouMsgSignal->
                            bFillDataStructureFromDatabaseFile(omStrDatabase, PROTOCOL_UNKNOWN);
                            pMainFrame->vPopulateJ1939PGNList();
                            aomNewDatabases.Add(omStrDatabase);
                        }
                    }
                }

                if(nDatabaseNotFound > 0)
                {
                    BYTE* pbyConfigData = nullptr;
                    UINT unSize = 0;
                    unSize += (sizeof (UINT) + ((sizeof(char) *MAX_PATH) * aomNewDatabases.GetSize()));
                    pbyConfigData = new BYTE[unSize];
                    BYTE* pbyTemp = pbyConfigData;
                    UINT nCount = 0;
                    COPY_DATA(pbyTemp, &nCount, sizeof(UINT));

                    for (UINT i = 0; i < nCount; i++)
                    {
                        char acName[MAX_PATH] = { '\0' };
                        CString omDBName = aomNewDatabases.GetAt(i);
                        strcpy_s(acName, MAX_PATH, omDBName.GetBuffer(MAX_PATH));
                        COPY_DATA(pbyTemp, acName, sizeof(char) * MAX_PATH);
                    }

                    CConfigData::ouGetConfigDetailsObject().bSetData(pbyTemp, unSize, SectionName[DATABASE_SECTION_ID]);
                    delete[] pbyConfigData;
                    pbyConfigData = nullptr;
                }

                if(aomNewDatabases.GetSize()== 0)
                {
                    // Reset the flag and prompt user of file not in disk.
                    m_pouFlags->vSetFlagStatus( SELECTDATABASEFILE, FALSE );
                }
            }
        }
        else
        {
            if(bFromCom==FALSE)
                // Display a message and quit the application
                MessageBox(nullptr,
                           _(MSG_MEMORY_CONSTRAINT),
                           "BUSMASTER",
                           MB_OK|MB_ICONINFORMATION);

            bReturn = FALSE;
        }

        //Finally load the default configuration
        pMainFrame->nLoadConfigFile("");
    }

    return bReturn;
}
Пример #28
0
/* Renders the BYTE stream of the total message. */
void tagSTJ1939_MSG::vGetDataStream(BYTE* pbyData) const
{
    COPY_DATA(pbyData, &m_sMsgProperties, sizeof(STJ1939_MSG_PROPERTIES));
    COPY_DATA(pbyData, &m_unDLC, sizeof (UINT));
    COPY_DATA(pbyData, m_pbyData, (sizeof (BYTE) * m_unDLC));
}
Пример #29
0
BYTE* CGraphElement::pbyGetConfigData(BYTE* pbyTrgData, BYTE byVersion)
{
    BYTE* pbyTemp = pbyTrgData;

    if (pbyTemp != NULL)
    {
        // Save properties one after another
        // Message ID
        COPY_DATA(pbyTemp, &m_nMsgID, sizeof(int));
        // Frame Format - Standard
        COPY_DATA(pbyTemp, &m_nFrameFormat, sizeof(short));
        // Element Name String
        char acName[MAX_PATH] = {_T('\0')};
        strcpy_s(acName, m_omStrElementName.GetBuffer(MAX_PATH));
        COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
        // Type of the element val
        COPY_DATA(pbyTemp, &m_nValueType, sizeof(int));
        // Line type of the elemen
        COPY_DATA(pbyTemp, &m_nLineType, sizeof(int));
        // Line Color of the eleme
        COPY_DATA(pbyTemp, &m_nLineColor, sizeof(int));
        // Sample point symbol typ
        COPY_DATA(pbyTemp, &m_nPointType, sizeof(int));
        // Sample point symbol col
        COPY_DATA(pbyTemp, &m_nPointColor, sizeof(int));
        // Visible or Not
        COPY_DATA(pbyTemp, &m_bVisible, sizeof(BOOL));
        // Enabled or not
        COPY_DATA(pbyTemp, &m_bEnabled, sizeof(BOOL));

        if(byVersion == 2)
        {
            // Message Name
            char MsgName[MAX_PATH] = {_T('\0')};
            strcpy_s(MsgName, m_strMsgName.GetBuffer(MAX_PATH));
            COPY_DATA(pbyTemp, MsgName, (sizeof(char) * MAX_PATH));
            //Line Display type
            COPY_DATA(pbyTemp, &m_eDisplayType, sizeof(eDISPLAY_TYPE));
        }
    }

    return pbyTemp;
}
Пример #30
0
BOOL CConfigAdapter::bGetConfigData(BYTE*& lpData, int& nStreamLength, eSECTION_ID eSectionId)
{
    BOOL bReturn = TRUE;

    switch (eSectionId)
    {
        case MAINFRAME_SECTION_ID:
        {
            UINT unSize = 0;
            BYTE* pbyConfigData = NULL;
            //FIRST CALC SIZE REQUIRED
            unSize += sizeof(BYTE); //Configuration version
            unSize += (sizeof(char) * MAX_PATH);
            unSize += sizeof(STOOLBARINFO);
            //ALLOCATE THE MEMORY
            pbyConfigData = new BYTE[unSize];
            BYTE* pbyTemp = pbyConfigData;
            //UPDATE THE DATA
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
            CString* pomMRU_C_FILE_NAME = NULL;
            m_ouConfigDetails.bGetData(MRU_C_FILE_NAME, (void**)(&pomMRU_C_FILE_NAME));
            char acName[MAX_PATH] = {_T('0')};
            ASSERT(pomMRU_C_FILE_NAME != NULL);
            strcpy_s(acName, pomMRU_C_FILE_NAME->GetBuffer(MAX_PATH));
            delete pomMRU_C_FILE_NAME;
            COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
            PSTOOLBARINFO psToolBarInfo = NULL;
            m_ouConfigDetails.bGetData(TOOLBAR_DETAILS, (void**)(&psToolBarInfo));
            ASSERT(psToolBarInfo != NULL);
            COPY_DATA(pbyTemp, psToolBarInfo, sizeof(STOOLBARINFO));
            delete psToolBarInfo;
            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case LOG_SECTION_ID:
        {
            UINT unSize = 0;
            BYTE* pbyConfigData = NULL;
            SLOGCONFIGDETS* psLogConfigDets = NULL;
            m_ouConfigDetails.bGetData(LOG_CONFIG_DETS, (void**)(&psLogConfigDets));
            //FIRST CALCULATE SIZE REQUIRED
            unSize += sizeof(BYTE);//Configuration version

            if (psLogConfigDets != NULL)
            {
                //Filter info size
                SFILTERAPPLIED_CAN* psFilterConfigured = NULL;
                m_ouConfigDetails.bGetData(FILTER_CONFIG_DETS, (void**)(&psFilterConfigured));
                unSize += sizeof (USHORT); // Log file count

                for (UINT i = 0; i < psLogConfigDets->m_unCount; i++)
                {
                    //log info size
                    SLOGINFO sLogInfo;
                    unSize += sLogInfo.unGetSize();
                    CModuleFilterArray* pModuleFilterArray =
                        (&(psLogConfigDets->m_asLogFileDets[i].m_omFilter));
                    unSize += unGetFilterSize(pModuleFilterArray, psFilterConfigured);
                }

                //CALCULATING SIZE ENDS
                //NOW UPDATE THE VALUES
                pbyConfigData = new BYTE[unSize];
                BYTE* pbyTemp = pbyConfigData;
                BYTE byVersion = 0x1;
                COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
                memcpy(pbyTemp, &(psLogConfigDets->m_unCount), sizeof (USHORT));
                pbyTemp += sizeof (USHORT);

                for (UINT i = 0; i < psLogConfigDets->m_unCount; i++)
                {
                    //log info
                    SLOGINFO sLogInfo;
                    vPopulateLogInfo(sLogInfo, psLogConfigDets->m_asLogFileDets[i]);
                    pbyTemp = sLogInfo.pbGetConfigData(pbyTemp);
                    //Filter info size
                    CModuleFilterArray* pomFilterArray = &(psLogConfigDets->m_asLogFileDets[i].m_omFilter);
                    pbyTemp = pbyGetFilterConfig(pbyTemp, pomFilterArray, psFilterConfigured);
                }

                //Now update the parameter out pointer
                lpData = pbyConfigData;
                nStreamLength = unSize;
            }
        }
        break;

        case SIMSYS_SECTION_ID:
        {
            PSSIMSYSARRAY psSimSysArray;
            UINT unSize = 0;
            //FIRST CALCULATE THE SIZE REQUIRED MEANWHILE RETRIEVE THE DATA
            unSize += sizeof(BYTE);//Configuration version
            WINDOWPLACEMENT WndPlacement;
            //retrieve the window placement
            m_ouConfigDetails.bGetDefaultValue(SIMSYS_WND_PLACEMENT,WndPlacement);
            unSize += sizeof(WINDOWPLACEMENT);
            m_ouConfigDetails.bGetData(SIMSYS_LIST, (void**)(&psSimSysArray));
            PSSIMSYSARRAY psTemp = psSimSysArray;
            UINT nCount = 0;
            unSize += sizeof(UINT); // To store count

            while (psTemp != NULL)
            {
                nCount++;
                unSize += (sizeof (char) * MAX_PATH);//File Path
                psTemp = psTemp->psNextSimsys;
            }

            unSize += sizeof (WINDOWPLACEMENT);// Window placement for out window
            //CALCULATE THE SIZE MEANWHILE RETRIEVE THE DATA ENDS
            // ALLOCATE THE MEMORY
            BYTE* pbyConfigData = new BYTE[unSize];
            BYTE* pbyTemp = pbyConfigData;
            //UPDATE THE DATA
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
            //update window placement
            COPY_DATA(pbyTemp, &WndPlacement, sizeof(WINDOWPLACEMENT));
            //Update Simsys file path
            psTemp = psSimSysArray;
            COPY_DATA(pbyTemp, &nCount, sizeof(UINT));

            while (psTemp != NULL)
            {
                char acFilePath[MAX_PATH] = {_T('\0')};
                strcpy_s(acFilePath, psTemp->m_omStrSimSysPath.GetBuffer(MAX_PATH));
                COPY_DATA(pbyTemp, acFilePath, (sizeof(char) * MAX_PATH));
                psTemp = psTemp->psNextSimsys;
            }

            //update out window placement
            WINDOWPLACEMENT* pWndPlacement = &WndPlacement;
            m_ouConfigDetails.bGetData(OUT_WND_PLACEMENT, (void**)(&pWndPlacement));
            COPY_DATA(pbyTemp, &WndPlacement, sizeof(WINDOWPLACEMENT));
            //UPDATE THE DATA ENDS
            //FINALLY UPDATE THE OUT PARAM
            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case REPLAY_SECTION_ID:
        {
            UINT unSize = 0;
            BYTE* pbyConfigData = NULL;
            SREPLAYDETS* psRepConfigDets = NULL;
            unSize += sizeof(BYTE);//Configuration version
            m_ouConfigDetails.bGetData(REPLAY_CONFIG_DETS, (void**)(&psRepConfigDets));

            if (psRepConfigDets != NULL)
            {
                //FIRST CALCULATE SIZE REQUIRED
                SFILTERAPPLIED_CAN* psFilterConfigured = NULL;
                m_ouConfigDetails.bGetData(FILTER_CONFIG_DETS, (void**)(&psFilterConfigured));
                unSize += sizeof (INT); //

                for (UINT i = 0; i < psRepConfigDets->m_unCount; i++)
                {
                    unSize += unGetReplayFileSize(psRepConfigDets->m_asReplayFile[i]);
                    unSize += unGetFilterSize(&(psRepConfigDets->m_asReplayFile[i].m_omFilter),
                                              psFilterConfigured);
                }

                unSize += sizeof(WINDOWPLACEMENT);
                //CALCULATING SIZE ENDS
                //NOW UPDATE THE VALUES
                pbyConfigData = new BYTE[unSize];
                BYTE* pbyTemp = pbyConfigData;
                BYTE byVersion = 0x1;
                COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
                memcpy(pbyTemp, &(psRepConfigDets->m_unCount), sizeof (INT));
                pbyTemp += sizeof (INT);

                for (UINT i = 0; i < psRepConfigDets->m_unCount; i++)
                {
                    pbyTemp = pbGetReplayFileConfig(psRepConfigDets->m_asReplayFile[i], pbyTemp);
                    //Filter info size
                    pbyTemp = pbyGetFilterConfig(pbyTemp, &(psRepConfigDets->m_asReplayFile[i].m_omFilter),
                                                 psFilterConfigured);
                }

                //Update window placement
                WINDOWPLACEMENT WndPlacement;
                WINDOWPLACEMENT* pWndPlacement = &WndPlacement;
                m_ouConfigDetails.bGetData(REPLAY_WND_PLACEMENT, (void**)(&pWndPlacement));
                memcpy(pbyTemp, &WndPlacement, sizeof(WINDOWPLACEMENT));
                pbyTemp += sizeof(WINDOWPLACEMENT);
                //Now update the parameter out pointer
                lpData = pbyConfigData;
                nStreamLength = unSize;
            }
        }
        break;

        case MSGWND_SECTION_ID:
        {
            UINT unSize = 0;
            BYTE* pbyConfigData = NULL;
            //FIRST CALC SIZE
            unSize += sizeof(BYTE);//Configuration version
            PSMESSAGE_ATTRIB psMsgAttrib = NULL;
            m_ouConfigDetails.bGetData(MSG_ATTRIBUTES, (void**)(&psMsgAttrib));
            unSize += sizeof (UINT);// To store count of MsgAttribs

            if (psMsgAttrib != NULL)
            {
                UINT nCount = psMsgAttrib->m_usMsgCount;
                //Count             To store Msg Name         MsgId        Msg Color
                unSize += (nCount * ((sizeof (char) * MAX_PATH) + sizeof(UINT) + sizeof (COLORREF)));
            }

            INT anMsgBuffSize[defDISPLAY_CONFIG_PARAM] = {0};
            m_ouConfigDetails.bGetData(MSG_BUFFER_SIZE, (void**)(&anMsgBuffSize));
            unSize += (sizeof (INT) * defDISPLAY_CONFIG_PARAM);
            CModuleFilterArray ouModuleFilterArray;
            CModuleFilterArray* pouModuleFilterArray = &ouModuleFilterArray;
            m_ouConfigDetails.bGetData(MSG_DISPLAY_FILTER_DETAILS, (void**)(&pouModuleFilterArray));
            SFILTERAPPLIED_CAN* psFilterConfigured = NULL;
            m_ouConfigDetails.bGetData(FILTER_CONFIG_DETS, (void**)(&psFilterConfigured));
            //Filter size
            unSize += unGetFilterSize(&ouModuleFilterArray, psFilterConfigured);
            //MsgFormat window config data
            unSize += sizeof(BYTE);//Msg frmt windows version information
            unSize += sizeof(UINT);//buffer size
            //CALC SIZE ENDS
            //ALLOCATE THE MEMORY
            pbyConfigData = new BYTE[unSize];
            BYTE* pbyTemp = pbyConfigData;
            //UPDATE THE DATA
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));

            //Attributes
            if (psMsgAttrib != NULL)
            {
                COPY_DATA(pbyTemp, &(psMsgAttrib->m_usMsgCount), sizeof(UINT));

                for (INT i = 0; i < psMsgAttrib->m_usMsgCount; i++)
                {
                    char acName[MAX_PATH] = {_T('\0')};
                    strcpy_s(acName, psMsgAttrib->m_psMsgAttribDetails[i].omStrMsgname);
                    COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
                    COPY_DATA(pbyTemp, &(psMsgAttrib->m_psMsgAttribDetails[i].unMsgID), sizeof(UINT));
                    COPY_DATA(pbyTemp, &(psMsgAttrib->m_psMsgAttribDetails[i].sColor), sizeof(COLORREF));
                }
            }

            m_ouConfigDetails.vRelease(MSG_ATTRIBUTES, (LPVOID*)(&psMsgAttrib));
            //Display buffer size
            COPY_DATA(pbyTemp, anMsgBuffSize, (sizeof (INT) * defDISPLAY_CONFIG_PARAM));
            //Filters
            pbyTemp = pbyGetFilterConfig(pbyTemp, &ouModuleFilterArray, psFilterConfigured);
            //Msg format window default values
            BYTE byVer = 0x0;//version information
            COPY_DATA(pbyTemp, &byVer, sizeof(BYTE));
            UINT unMsgWndCfgSize = 0;
            COPY_DATA(pbyTemp, &unMsgWndCfgSize, sizeof(UINT));
            //Update the out parameters
            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case SIGWATCH_SECTION_ID:
        {
            UINT unSize = 0;
            BYTE* pbyConfigData = NULL;
            PSSIGNALWATCHLIST psSigWatchList = NULL;
            m_ouConfigDetails.bGetData(SIGNAL_WATCH_LIST, (void**)(&psSigWatchList));
            //Find the Size
            unSize += sizeof(BYTE);//Configuration version
            UINT unMsgcount = 0;
            unSize += sizeof (UINT); // To store Msg Count
            PSSIGNALWATCHLIST psTemp = psSigWatchList;

            while (psTemp != NULL)
            {
                unMsgcount++;
                unSize += sizeof (UINT); // To store Msg ID
                unSize += (sizeof (char) * MAX_PATH);// To store Msg Name
                unSize += sizeof (UINT); //To store selected signal count
                INT nSelCount = psTemp->omCSASignals.GetSize();

                for (INT i = 0; i < nSelCount; i++)
                {
                    unSize += sizeof (UINT); // To store Signal ID
                    unSize += (sizeof (char) * MAX_PATH);// To store Signal Name
                }

                psTemp = psTemp->psNextMessageNode;
            }

            unSize += sizeof (WINDOWPLACEMENT); // window placement size
            //ALLOCATE THE MEMORY
            pbyConfigData = new  BYTE[unSize];
            BYTE* pbyTemp = pbyConfigData;
            //UPDATE THE DATA
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
            //Find the Size
            COPY_DATA(pbyTemp, &unMsgcount, sizeof (UINT));
            psTemp = psSigWatchList;

            while (psTemp != NULL)
            {
                COPY_DATA(pbyTemp, &(psTemp->unMsgID), sizeof (UINT));
                char acName[MAX_PATH] = {_T('\0')};
                COPY_DATA(pbyTemp, acName, (sizeof (char) * MAX_PATH));
                UINT unSelCount = psTemp->omCSASignals.GetSize();
                COPY_DATA(pbyTemp, &unSelCount, sizeof (UINT));

                for (UINT i = 0; i < unSelCount; i++)
                {
                    CString omSigName = psTemp->omCSASignals.GetAt(i);
                    UINT unSigId = 0;
                    COPY_DATA(pbyTemp, &(unSigId), sizeof (UINT));
                    strcpy_s(acName, omSigName.GetBuffer(MAX_PATH));
                    COPY_DATA(pbyTemp, acName, (sizeof (char) * MAX_PATH));
                }

                psTemp = psTemp->psNextMessageNode;
            }

            //Signal Window placement
            WINDOWPLACEMENT wndPlacement;
            WINDOWPLACEMENT* pWndPlacement = &wndPlacement;
            m_ouConfigDetails.bGetData(SIGWATCH_WND_PLACEMENT, (void**)(&pWndPlacement));
            COPY_DATA(pbyTemp, &wndPlacement, sizeof (WINDOWPLACEMENT));
            //Update the out parameters
            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case DIL_SECTION_ID:
        {
            PSCONTROLLER_DETAILS psContrlDets;
            BYTE* pbyConfigData = NULL;
            UINT unSize = 0;
            unSize += sizeof(BYTE);//Configuration version
            unSize += sizeof(DWORD);
            unSize += sizeof(BYTE);
            unSize += (sizeof(SCONTROLLER_DETAILS) * defNO_OF_CHANNELS);

            if (m_ouConfigDetails.bGetData(CONTROLLER_DETAILS, (void**)(&psContrlDets)))
            {
                pbyConfigData = new BYTE[unSize];
                BYTE* pbyTemp = pbyConfigData;
                BYTE byVersion = 0x1;
                COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
                DWORD dwDriverId = DRIVER_CAN_STUB;
                COPY_DATA(pbyTemp, &dwDriverId, sizeof(DWORD));
                BYTE byContlrMode = defMODE_SIMULATE;
                COPY_DATA(pbyTemp, &byContlrMode, sizeof(BYTE));
                COPY_DATA(pbyTemp, psContrlDets, unSize);
                m_ouConfigDetails.vRelease(CONTROLLER_DETAILS, (LPVOID*)(&psContrlDets));
            }

            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case GRAPH_SECTION_ID:
        {
            BYTE byVersion = 0x1;
            BYTE* pbyConfigData = NULL;
            UINT unSize = 0;
            CGraphList* podGraphList;
            m_ouConfigDetails.bGetData(SIGNAL_GRAPH_LIST, (void**)(&podGraphList));
            //FIRST CALCULATE THE SIZE
            unSize += sizeof(BYTE); //Configuration version

            if (podGraphList != NULL)
            {
                unSize += podGraphList->unGetConfigSize(byVersion);
            }

            unSize += sizeof (WINDOWPLACEMENT);
            unSize += sizeof (SGRAPHSPLITTERDATA); //Splitter data
            //ALLOCATE THE MEMORY
            pbyConfigData = new BYTE[unSize];
            BYTE* pbyTemp = pbyConfigData;
            //UPDATE THE DATA
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));

            if (podGraphList != NULL)
            {
                pbyTemp = podGraphList->pbyGetConfigData(pbyTemp, byVersion);
            }

            //UPDATE GRAPH WINDOW PLACEMENT
            WINDOWPLACEMENT wndPalcement;
            WINDOWPLACEMENT* pWndPalcement = &wndPalcement;
            m_ouConfigDetails.bGetData(GRAPH_WND_PLACEMENT, (void**)(&pWndPalcement));
            COPY_DATA(pbyTemp, &wndPalcement, sizeof (WINDOWPLACEMENT));
            SGRAPHSPLITTERDATA sGraphSplitterData;
            PSGRAPHSPLITTERDATA psGraphSplitterData = &sGraphSplitterData;
            m_ouConfigDetails.bGetData(GRAPH_WND_SPLITTER_DATA, (void**)(&psGraphSplitterData));
            COPY_DATA(pbyTemp, &sGraphSplitterData, sizeof (SGRAPHSPLITTERDATA));
            //UPDATE OUT PARAMS
            lpData = pbyConfigData;
            nStreamLength = unSize;
        }
        break;

        case TXWND_SECTION_ID:
        {
            BYTE* pbyCfgData = NULL;
            UINT unSize = 0;
            //FIRST CALCULATE THE SIZE
            unSize += sizeof(BYTE); //Configuration version
            UINT unBlockCount = 0;
            UINT* punBlockCount = &unBlockCount;
            m_ouConfigDetails.bGetData(MSG_BLOCK_COUNT, (void**)(&punBlockCount));
            unSize += sizeof (UINT); //block count
            PSMSGBLOCKLIST psMsgBlockList = NULL;

            if (m_ouConfigDetails.bGetData(SEND_MULTI_MSGS, (void**)(&psMsgBlockList)))
            {
                PSMSGBLOCKLIST psTemp = psMsgBlockList;

                while (psTemp != NULL)
                {
                    unSize += (sizeof(char) * MAX_PATH); // To store the block name
                    unSize += sizeof(UCHAR); // To store the trigger
                    unSize += sizeof(BOOL); // To store active or not
                    unSize += sizeof(UCHAR); // To store the key value
                    unSize += sizeof (UINT); // to store the timeinterval
                    unSize += sizeof (BOOL); // Type
                    unSize += sizeof (BOOL); // Send All msgs
                    unSize += sizeof(UINT);// To store no of msgs in each block
                    unSize += (psTemp->m_unMsgCount) * sizeof (STXCANMSGDETAILS);
                    psTemp = psTemp->m_psNextMsgBlocksList;
                }
            }

            unSize += sizeof(WINDOWPLACEMENT);
            unSize += sizeof(STXMSGSPLITTERDATA);
            //ALLOCATE THE MEMORY
            pbyCfgData = new BYTE[unSize];
            BYTE* pbyTemp = pbyCfgData;
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
            COPY_DATA(pbyTemp, &unBlockCount, sizeof(UINT));
            PSMSGBLOCKLIST psTempBlock = psMsgBlockList;

            while (psTempBlock != NULL)
            {
                CString m_omStrBlockName;
                char acName[MAX_PATH] = {_T('\0')};
                strcpy_s(acName, psTempBlock->m_omStrBlockName.GetBuffer(MAX_PATH));
                COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
                COPY_DATA(pbyTemp, &(psTempBlock->m_ucTrigger), sizeof(UCHAR));
                COPY_DATA(pbyTemp, &(psTempBlock->m_bActive), sizeof(BOOL));
                COPY_DATA(pbyTemp, &(psTempBlock->m_ucKeyValue), sizeof(UCHAR));
                COPY_DATA(pbyTemp, &(psTempBlock->m_unTimeInterval), sizeof(UINT));
                COPY_DATA(pbyTemp, &(psTempBlock->m_bType), sizeof(BOOL));
                COPY_DATA(pbyTemp, &(psTempBlock->m_bTxAllFrame), sizeof(BOOL));
                COPY_DATA(pbyTemp, &(psTempBlock->m_unMsgCount), sizeof(UINT));
                PSTXCANMSGLIST psTempCanList = psTempBlock->m_psTxCANMsgList;

                while (psTempCanList != NULL)
                {
                    COPY_DATA(pbyTemp, &(psTempCanList->m_sTxMsgDetails), sizeof (STXCANMSGDETAILS));
                    psTempCanList = psTempCanList->m_psNextMsgDetails;
                }

                psTempBlock = psTempBlock->m_psNextMsgBlocksList;
            }

            m_ouConfigDetails.vRelease(SEND_MULTI_MSGS, (LPVOID*)&psMsgBlockList);
            //Get the Tx window placement
            WINDOWPLACEMENT WndPlacement;
            WINDOWPLACEMENT* pWndPlacement = &WndPlacement;
            m_ouConfigDetails.bGetData(TX_WND_PLACEMENT, (void**)(&pWndPlacement));
            COPY_DATA(pbyTemp, &WndPlacement, sizeof(WINDOWPLACEMENT));
            //Get the Tx splitter position
            STXMSGSPLITTERDATA sTxSpliiterData;
            STXMSGSPLITTERDATA* psTxSpliiterData = &sTxSpliiterData;
            m_ouConfigDetails.bGetData(TX_MSG_WND_SPLITTER_DATA, (void**)(&psTxSpliiterData));
            COPY_DATA(pbyTemp, &sTxSpliiterData, sizeof(STXMSGSPLITTERDATA));
            //Update the OUT PARAMETERS
            lpData = pbyCfgData;
            nStreamLength = unSize;
        }
        break;

        case DATABASE_SECTION_ID:
        {
            BYTE* pbyCfgData = NULL;
            UINT unSize = 0;
            CStringArray* pomStrDBArray = NULL;
            m_ouConfigDetails.bGetData(DATABASE_FILE_NAME, (void**)(&pomStrDBArray));
            //FIRST CALC SIZE
            unSize += sizeof(BYTE); //Configuration version
            unSize += sizeof (UINT); // To store the count

            if (pomStrDBArray != NULL)
            {
                //To store the stringd
                unSize += (pomStrDBArray->GetSize()) * (sizeof(char) * MAX_PATH);
            }

            //ALLOCATE THE MEMORY
            pbyCfgData = new BYTE[unSize];
            BYTE* pbyTemp = pbyCfgData;
            //UPDATE THE DATA
            BYTE byVersion = 0x1;
            COPY_DATA(pbyTemp, &byVersion, sizeof(BYTE));
            UINT unCount = 0;

            if (pomStrDBArray != NULL)
            {
                unCount = pomStrDBArray->GetSize();
            }

            COPY_DATA(pbyTemp, &unCount, sizeof(UINT));

            for (UINT i =0; i < unCount; i++)
            {
                CString omName = pomStrDBArray->GetAt(i);
                char acName[MAX_PATH] = {_T('\0')};
                strcpy_s(acName, omName.GetBuffer(MAX_PATH));
                COPY_DATA(pbyTemp, acName, (sizeof(char) * MAX_PATH));
            }

            m_ouConfigDetails.vRelease(DATABASE_FILE_NAME,(LPVOID*)&pomStrDBArray);
            //UPDATE THE OUT PARAMETER
            lpData = pbyCfgData;
            nStreamLength = unSize;
        }
        break;

        case FILTER_SECTION_ID:
        {
            BYTE* pbyCfgData = NULL;
            UINT unSize = 0;
            SFILTERAPPLIED_CAN* psFilterConfigured = NULL;
            m_ouConfigDetails.bGetData(FILTER_CONFIG_DETS, (void**)(&psFilterConfigured));

            if (psFilterConfigured != NULL)
            {
                unSize += psFilterConfigured->unGetSize();
            }

            pbyCfgData = new BYTE[unSize];
            BYTE* pbyTemp = pbyCfgData;
            pbyTemp = psFilterConfigured->pbGetConfigData(pbyTemp);
            BYTE byVersion = 0x1;
            memcpy(pbyCfgData, &byVersion, sizeof(BYTE));
            lpData = pbyCfgData;
            nStreamLength = unSize;
        }
        break;

        default:
        {
            ASSERT(FALSE);
        }
        break;
    }

    return bReturn;
}