aboutsummaryrefslogtreecommitdiff
path: root/tools/lldb-mi/MIUtilMapIdToVariant.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MIUtilMapIdToVariant.cpp')
-rw-r--r--tools/lldb-mi/MIUtilMapIdToVariant.cpp124
1 files changed, 124 insertions, 0 deletions
diff --git a/tools/lldb-mi/MIUtilMapIdToVariant.cpp b/tools/lldb-mi/MIUtilMapIdToVariant.cpp
new file mode 100644
index 000000000000..485ae2c0f0d2
--- /dev/null
+++ b/tools/lldb-mi/MIUtilMapIdToVariant.cpp
@@ -0,0 +1,124 @@
+//===-- MIUtilMapIdToVariant.cpp --------------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+//++
+// File: MIUtilMapIdToVariant.cpp
+//
+// Overview: CMIUtilMapIdToVariant implementation.
+//
+// Environment: Compilers: Visual C++ 12.
+// gcc (Ubuntu/Linaro 4.8.1-10ubuntu9) 4.8.1
+// Libraries: See MIReadmetxt.
+//
+// Copyright: None.
+//--
+
+// In-house headers:
+#include "MIUtilMapIdToVariant.h"
+
+//++ ------------------------------------------------------------------------------------
+// Details: CMIUtilMapIdToVariant constructor.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+CMIUtilMapIdToVariant::CMIUtilMapIdToVariant( void )
+{
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: CMIUtilMapIdToVariant destructor.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+CMIUtilMapIdToVariant::~CMIUtilMapIdToVariant( void )
+{
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Remove at the data from *this container.
+// Type: Method.
+// Args: None.
+// Return: None.
+// Throws: None.
+//--
+void CMIUtilMapIdToVariant::Clear( void )
+{
+ m_mapKeyToVariantValue.clear();
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Check an ID is present already in *this container.
+// Type: Method.
+// Args: vId - (R) Unique ID i.e. GUID.
+// Return: True - registered.
+// False - not found.
+// Throws: None.
+//--
+bool CMIUtilMapIdToVariant::HaveAlready( const CMIUtilString & vId ) const
+{
+ const MapKeyToVariantValue_t::const_iterator it = m_mapKeyToVariantValue.find( vId );
+ if( it != m_mapKeyToVariantValue.end() )
+ return true;
+
+ return false;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Determine if *this container is currently holding any data.
+// Type: Method.
+// Args: None.
+// Return: bool - True - Yes empty, false - one or more data object present.
+// Throws: None.
+//--
+bool CMIUtilMapIdToVariant::IsEmpty( void ) const
+{
+ return m_mapKeyToVariantValue.empty();
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Check the ID is valid to be registered.
+// Type: Method.
+// Args: vId - (R) Unique ID i.e. GUID.
+// Return: True - valid.
+// False - not valid.
+// Throws: None.
+//--
+bool CMIUtilMapIdToVariant::IsValid( const CMIUtilString & vId ) const
+{
+ bool bValid = true;
+
+ if( vId.empty() )
+ bValid = false;
+
+ return bValid;
+}
+
+//++ ------------------------------------------------------------------------------------
+// Details: Remove from *this contain a data object specified by ID. The data object
+// when removed also calls its destructor should it have one.
+// Type: Method.
+// Args: vId - (R) Unique ID i.e. GUID.
+// Return: MIstatus::success - Functional succeeded.
+// MIstatus::failure - Functional failed.
+// Throws: None.
+//--
+bool CMIUtilMapIdToVariant::Remove( const CMIUtilString & vId )
+{
+ const MapKeyToVariantValue_t::const_iterator it = m_mapKeyToVariantValue.find( vId );
+ if( it != m_mapKeyToVariantValue.end() )
+ {
+ m_mapKeyToVariantValue.erase( it );
+ }
+
+ return MIstatus::success;
+}