//===-- MICmdCommands.cpp ---------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // // This file is distributed under the University of Illinois Open Source // License. See LICENSE.TXT for details. // //===----------------------------------------------------------------------===// // Overview: MI command are registered with the MI command factory. // // To implement new MI commands derive a new command class from the // command base // class. To enable the new command for interpretation add the new // command class // to the command factory. The files of relevance are: // MICmdCommands.cpp // MICmdBase.h / .cpp // MICmdCmd.h / .cpp // In-house headers: #include "MICmdCommands.h" #include "MICmdCmd.h" #include "MICmdCmdBreak.h" #include "MICmdCmdData.h" #include "MICmdCmdEnviro.h" #include "MICmdCmdExec.h" #include "MICmdCmdFile.h" #include "MICmdCmdGdbInfo.h" #include "MICmdCmdGdbSet.h" #include "MICmdCmdGdbShow.h" #include "MICmdCmdGdbThread.h" #include "MICmdCmdMiscellanous.h" #include "MICmdCmdStack.h" #include "MICmdCmdSupportInfo.h" #include "MICmdCmdSupportList.h" #include "MICmdCmdSymbol.h" #include "MICmdCmdTarget.h" #include "MICmdCmdThread.h" #include "MICmdCmdTrace.h" #include "MICmdCmdVar.h" #include "MICmdFactory.h" namespace MICmnCommands { template static bool Register(); } //++ //------------------------------------------------------------------------------------ // Details: Command to command factory registration function. // Type: Template function. // Args: typename T - A command type class. // Return: bool - True = yes command is registered, false = command failed to // register. // Throws: None. //-- template static bool MICmnCommands::Register() { static CMICmdFactory &rCmdFactory = CMICmdFactory::Instance(); const CMIUtilString strMiCmd = T().GetMiCmd(); CMICmdFactory::CmdCreatorFnPtr fn = T().GetCmdCreatorFn(); return rCmdFactory.CmdRegister(strMiCmd, fn); } //++ //------------------------------------------------------------------------------------ // Details: Register commands with MI command factory // Type: Function. // Args: None. // Return: bool - True = yes all commands are registered, // false = one or more commands failed to register. // Throws: None. //-- bool MICmnCommands::RegisterAll() { bool bOk = MIstatus::success; bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); bOk &= Register(); return bOk; }