SubsystemObjectCreator.h 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#pragma once 3268a912857707864bbaaff9808717813105072a6ePatrick Benavoli 3368a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "SubsystemObject.h" 3468a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include "MappingContext.h" 3568a912857707864bbaaff9808717813105072a6ePatrick Benavoli#include <string> 3668a912857707864bbaaff9808717813105072a6ePatrick Benavoli 3768a912857707864bbaaff9808717813105072a6ePatrick Benavoliusing namespace std; 3868a912857707864bbaaff9808717813105072a6ePatrick Benavoli 3968a912857707864bbaaff9808717813105072a6ePatrick Benavoliclass CSubsystemObjectCreator 4068a912857707864bbaaff9808717813105072a6ePatrick Benavoli{ 4168a912857707864bbaaff9808717813105072a6ePatrick Benavolipublic: 4268a912857707864bbaaff9808717813105072a6ePatrick Benavoli CSubsystemObjectCreator(const string& strMappingKey, uint32_t uiAncestorIdMask); 4368a912857707864bbaaff9808717813105072a6ePatrick Benavoli 4468a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Accessors 4568a912857707864bbaaff9808717813105072a6ePatrick Benavoli const string& getMappingKey() const; 4668a912857707864bbaaff9808717813105072a6ePatrick Benavoli uint32_t getAncestorMask() const; 4768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 4868a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Object creation 4968a912857707864bbaaff9808717813105072a6ePatrick Benavoli virtual CSubsystemObject* objectCreate(const string& strId, CInstanceConfigurableElement* pInstanceConfigurableElement, CMappingContext& context, string& strError) const = 0; 5068a912857707864bbaaff9808717813105072a6ePatrick Benavoli 5168a912857707864bbaaff9808717813105072a6ePatrick Benavoliprivate: 5268a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Mapping key 5368a912857707864bbaaff9808717813105072a6ePatrick Benavoli string _strMappingKey; 5468a912857707864bbaaff9808717813105072a6ePatrick Benavoli // Mask of must-be-specified ancestors 5568a912857707864bbaaff9808717813105072a6ePatrick Benavoli uint32_t _uiAncestorIdMask; 5668a912857707864bbaaff9808717813105072a6ePatrick Benavoli}; 5768a912857707864bbaaff9808717813105072a6ePatrick Benavoli 58