aboutsummaryrefslogtreecommitdiffstats
path: root/tools/lldb-mi/MICmdFactory.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tools/lldb-mi/MICmdFactory.cpp')
-rw-r--r--tools/lldb-mi/MICmdFactory.cpp206
1 files changed, 0 insertions, 206 deletions
diff --git a/tools/lldb-mi/MICmdFactory.cpp b/tools/lldb-mi/MICmdFactory.cpp
deleted file mode 100644
index 30995835c688..000000000000
--- a/tools/lldb-mi/MICmdFactory.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-//===-- MICmdFactory.cpp ----------------------------------------*- C++ -*-===//
-//
-// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
-// See https://llvm.org/LICENSE.txt for license information.
-// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
-//
-//===----------------------------------------------------------------------===//
-
-// In-house headers:
-#include "MICmdFactory.h"
-#include "MICmdBase.h"
-#include "MICmdCommands.h"
-#include "MICmdData.h"
-#include "MICmnResources.h"
-
-//++
-// Details: CMICmdFactory constructor.
-// Type: Method.
-// Args: None.
-// Return: None.
-// Throws: None.
-//--
-CMICmdFactory::CMICmdFactory() {}
-
-//++
-// Details: CMICmdFactory destructor.
-// Type: Overridable.
-// Args: None.
-// Return: None.
-// Throws: None.
-//--
-CMICmdFactory::~CMICmdFactory() { Shutdown(); }
-
-//++
-// Details: Initialize resources for *this Command factory.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmdFactory::Initialize() {
- m_clientUsageRefCnt++;
-
- if (m_bInitialized)
- return MIstatus::success;
-
- m_bInitialized = true;
-
- MICmnCommands::RegisterAll();
-
- return MIstatus::success;
-}
-
-//++
-// Details: Release resources for *this Command Factory.
-// Type: Method.
-// Args: None.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmdFactory::Shutdown() {
- if (--m_clientUsageRefCnt > 0)
- return MIstatus::success;
-
- if (!m_bInitialized)
- return MIstatus::success;
-
- m_mapMiCmdToCmdCreatorFn.clear();
-
- m_bInitialized = false;
-
- return MIstatus::success;
-}
-
-//++
-// Details: Register a command's creator function with the command identifier
-// the MI
-// command name i.e. 'file-exec-and-symbols'.
-// Type: Method.
-// Args: vMiCmd - (R) Command's name, the MI command.
-// vCmdCreateFn - (R) Command's creator function pointer.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmdFactory::CmdRegister(const CMIUtilString &vMiCmd,
- CmdCreatorFnPtr vCmdCreateFn) {
- if (!IsValid(vMiCmd)) {
- SetErrorDescription(CMIUtilString::Format(
- MIRSRC(IDS_CMDFACTORY_ERR_INVALID_CMD_NAME), vMiCmd.c_str()));
- return MIstatus::failure;
- }
- if (vCmdCreateFn == nullptr) {
- SetErrorDescription(CMIUtilString::Format(
- MIRSRC(IDS_CMDFACTORY_ERR_INVALID_CMD_CR8FN), vMiCmd.c_str()));
- return MIstatus::failure;
- }
-
- if (HaveAlready(vMiCmd)) {
- SetErrorDescription(CMIUtilString::Format(
- MIRSRC(IDS_CMDFACTORY_ERR_CMD_ALREADY_REGED), vMiCmd.c_str()));
- return MIstatus::failure;
- }
-
- MapPairMiCmdToCmdCreatorFn_t pr(vMiCmd, vCmdCreateFn);
- m_mapMiCmdToCmdCreatorFn.insert(pr);
-
- return MIstatus::success;
-}
-
-//++
-// Details: Check a command is already registered.
-// Type: Method.
-// Args: vMiCmd - (R) Command's name, the MI command.
-// Return: True - registered.
-// False - not found.
-// Throws: None.
-//--
-bool CMICmdFactory::HaveAlready(const CMIUtilString &vMiCmd) const {
- const MapMiCmdToCmdCreatorFn_t::const_iterator it =
- m_mapMiCmdToCmdCreatorFn.find(vMiCmd);
- return it != m_mapMiCmdToCmdCreatorFn.end();
-}
-
-//++
-// Details: Check a command's name is valid:
-// - name is not empty
-// - name does not have spaces
-// Type: Method.
-// Args: vMiCmd - (R) Command's name, the MI command.
-// Return: True - valid.
-// False - not valid.
-// Throws: None.
-//--
-bool CMICmdFactory::IsValid(const CMIUtilString &vMiCmd) const {
- bool bValid = true;
-
- if (vMiCmd.empty()) {
- bValid = false;
- return false;
- }
-
- const size_t nPos = vMiCmd.find(' ');
- if (nPos != std::string::npos)
- bValid = false;
-
- return bValid;
-}
-
-//++
-// Details: Check a command is already registered.
-// Type: Method.
-// Args: vMiCmd - (R) Command's name, the MI command.
-// Return: True - registered.
-// False - not found.
-// Throws: None.
-//--
-bool CMICmdFactory::CmdExist(const CMIUtilString &vMiCmd) const {
- return HaveAlready(vMiCmd);
-}
-
-//++
-// Details: Create a command given the specified MI command name. The command
-// data object
-// contains the options for the command.
-// Type: Method.
-// Args: vMiCmd - (R) Command's name, the MI command.
-// vCmdData - (RW) Command's metadata status/information/result
-// object.
-// vpNewCmd - (W) New command instance.
-// Return: MIstatus::success - Functionality succeeded.
-// MIstatus::failure - Functionality failed.
-// Throws: None.
-//--
-bool CMICmdFactory::CmdCreate(const CMIUtilString &vMiCmd,
- const SMICmdData &vCmdData,
- CMICmdBase *&vpNewCmd) {
- vpNewCmd = nullptr;
-
- if (!IsValid(vMiCmd)) {
- SetErrorDescription(CMIUtilString::Format(
- MIRSRC(IDS_CMDFACTORY_ERR_INVALID_CMD_NAME), vMiCmd.c_str()));
- return MIstatus::failure;
- }
- if (!HaveAlready(vMiCmd)) {
- SetErrorDescription(CMIUtilString::Format(
- MIRSRC(IDS_CMDFACTORY_ERR_CMD_NOT_REGISTERED), vMiCmd.c_str()));
- return MIstatus::failure;
- }
-
- const MapMiCmdToCmdCreatorFn_t::const_iterator it =
- m_mapMiCmdToCmdCreatorFn.find(vMiCmd);
- const CMIUtilString &rMiCmd((*it).first);
- MIunused(rMiCmd);
- CmdCreatorFnPtr pFn = (*it).second;
- CMICmdBase *pCmd = (*pFn)();
-
- SMICmdData cmdData(vCmdData);
- cmdData.id = pCmd->GetGUID();
- pCmd->SetCmdData(cmdData);
- vpNewCmd = pCmd;
-
- return MIstatus::success;
-}