HardwareBackSynchronizer.cpp revision 68a912857707864bbaaff9808717813105072a6e
168a912857707864bbaaff9808717813105072a6ePatrick Benavoli/* <auto_header>
268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * <FILENAME>
368a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
468a912857707864bbaaff9808717813105072a6ePatrick Benavoli * INTEL CONFIDENTIAL
568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Copyright © 2011 Intel
668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Corporation All Rights Reserved.
768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
868a912857707864bbaaff9808717813105072a6ePatrick Benavoli * The source code contained or described herein and all documents related to
968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * the source code ("Material") are owned by Intel Corporation or its suppliers
1068a912857707864bbaaff9808717813105072a6ePatrick Benavoli * or licensors. Title to the Material remains with Intel Corporation or its
1168a912857707864bbaaff9808717813105072a6ePatrick Benavoli * suppliers and licensors. The Material contains trade secrets and proprietary
1268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * and confidential information of Intel or its suppliers and licensors. The
1368a912857707864bbaaff9808717813105072a6ePatrick Benavoli * Material is protected by worldwide copyright and trade secret laws and
1468a912857707864bbaaff9808717813105072a6ePatrick Benavoli * treaty provisions. No part of the Material may be used, copied, reproduced,
1568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * modified, published, uploaded, posted, transmitted, distributed, or
1668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * disclosed in any way without Intel’s prior express written permission.
1768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
1868a912857707864bbaaff9808717813105072a6ePatrick Benavoli * No license under any patent, copyright, trade secret or other intellectual
1968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * property right is granted to or conferred upon you by disclosure or delivery
2068a912857707864bbaaff9808717813105072a6ePatrick Benavoli * of the Materials, either expressly, by implication, inducement, estoppel or
2168a912857707864bbaaff9808717813105072a6ePatrick Benavoli * otherwise. Any license under such intellectual property rights must be
2268a912857707864bbaaff9808717813105072a6ePatrick Benavoli * express and approved by Intel in writing.
2368a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2468a912857707864bbaaff9808717813105072a6ePatrick Benavoli *  AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com)
2568a912857707864bbaaff9808717813105072a6ePatrick Benavoli * CREATED: 2011-06-01
2668a912857707864bbaaff9808717813105072a6ePatrick Benavoli * UPDATED: 2011-07-27
2768a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2868a912857707864bbaaff9808717813105072a6ePatrick Benavoli *
2968a912857707864bbaaff9808717813105072a6ePatrick Benavoli * </auto_header>
3068a912857707864bbaaff9808717813105072a6ePatrick Benavoli */
3168a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "HardwareBackSynchronizer.h"
3268a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "ConfigurableElement.h"
3368a912857707864bbaaff9808717813105072a6ePatrick Benavoli
3468a912857707864bbaaff9808717813105072a6ePatrick Benavoli#define base CBackSynchronizer
3568a912857707864bbaaff9808717813105072a6ePatrick Benavoli
3668a912857707864bbaaff9808717813105072a6ePatrick BenavoliCHardwareBackSynchronizer::CHardwareBackSynchronizer(const CConfigurableElement* pConfigurableElement, string& strError, CParameterBlackboard* pParameterBlackboard)
3768a912857707864bbaaff9808717813105072a6ePatrick Benavoli    : base(pConfigurableElement), _strError(strError), _pParameterBlackboard(pParameterBlackboard)
3868a912857707864bbaaff9808717813105072a6ePatrick Benavoli{
3968a912857707864bbaaff9808717813105072a6ePatrick Benavoli    // Fill back syncer set
4068a912857707864bbaaff9808717813105072a6ePatrick Benavoli    list<const CConfigurableElement*>::const_iterator it;
4168a912857707864bbaaff9808717813105072a6ePatrick Benavoli
4268a912857707864bbaaff9808717813105072a6ePatrick Benavoli    for (it = _needingBackSyncList.begin(); it != _needingBackSyncList.end(); ++it) {
4368a912857707864bbaaff9808717813105072a6ePatrick Benavoli
4468a912857707864bbaaff9808717813105072a6ePatrick Benavoli        const CConfigurableElement* pConfigurableElement = *it;
4568a912857707864bbaaff9808717813105072a6ePatrick Benavoli
4668a912857707864bbaaff9808717813105072a6ePatrick Benavoli        pConfigurableElement->fillSyncerSet(_backSyncerSet);
4768a912857707864bbaaff9808717813105072a6ePatrick Benavoli    }
4868a912857707864bbaaff9808717813105072a6ePatrick Benavoli}
4968a912857707864bbaaff9808717813105072a6ePatrick Benavoli
5068a912857707864bbaaff9808717813105072a6ePatrick Benavoli// Back synchronization
5168a912857707864bbaaff9808717813105072a6ePatrick Benavolibool CHardwareBackSynchronizer::sync()
5268a912857707864bbaaff9808717813105072a6ePatrick Benavoli{
5368a912857707864bbaaff9808717813105072a6ePatrick Benavoli    // Perform back synchronization
5468a912857707864bbaaff9808717813105072a6ePatrick Benavoli    return _backSyncerSet.sync(*_pParameterBlackboard, true, _strError);
5568a912857707864bbaaff9808717813105072a6ePatrick Benavoli}
56