1 //===-- MIUtilMapIdToVariant.cpp --------------------------------*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
10 #include "MIUtilMapIdToVariant.h"
13 // Details: CMIUtilMapIdToVariant constructor.
19 CMIUtilMapIdToVariant::CMIUtilMapIdToVariant() {}
22 // Details: CMIUtilMapIdToVariant destructor.
28 CMIUtilMapIdToVariant::~CMIUtilMapIdToVariant() {}
31 // Details: Remove at the data from *this container.
37 void CMIUtilMapIdToVariant::Clear() { m_mapKeyToVariantValue.clear(); }
40 // Details: Check an ID is present already in *this container.
42 // Args: vId - (R) Unique ID i.e. GUID.
43 // Return: True - registered.
47 bool CMIUtilMapIdToVariant::HaveAlready(const CMIUtilString &vId) const {
48 const MapKeyToVariantValue_t::const_iterator it =
49 m_mapKeyToVariantValue.find(vId);
50 return it != m_mapKeyToVariantValue.end();
54 // Details: Determine if *this container is currently holding any data.
57 // Return: bool - True - Yes empty, false - one or more data object present.
60 bool CMIUtilMapIdToVariant::IsEmpty() const {
61 return m_mapKeyToVariantValue.empty();
65 // Details: Check the ID is valid to be registered.
67 // Args: vId - (R) Unique ID i.e. GUID.
68 // Return: True - valid.
72 bool CMIUtilMapIdToVariant::IsValid(const CMIUtilString &vId) const {
82 // Details: Remove from *this contain a data object specified by ID. The data
84 // when removed also calls its destructor should it have one.
86 // Args: vId - (R) Unique ID i.e. GUID.
87 // Return: MIstatus::success - Functional succeeded.
88 // MIstatus::failure - Functional failed.
91 bool CMIUtilMapIdToVariant::Remove(const CMIUtilString &vId) {
92 const MapKeyToVariantValue_t::const_iterator it =
93 m_mapKeyToVariantValue.find(vId);
94 if (it != m_mapKeyToVariantValue.end()) {
95 m_mapKeyToVariantValue.erase(it);
98 return MIstatus::success;