| //===-- CommandObjectCrossref.cpp -------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "lldb/Interpreter/CommandObjectCrossref.h" |
| |
| // C Includes |
| // C++ Includes |
| // Other libraries and framework includes |
| // Project includes |
| #include "lldb/Interpreter/CommandReturnObject.h" |
| |
| using namespace lldb; |
| using namespace lldb_private; |
| |
| //------------------------------------------------------------------------- |
| // CommandObjectCrossref |
| //------------------------------------------------------------------------- |
| |
| CommandObjectCrossref::CommandObjectCrossref |
| ( |
| const char *name, |
| const char *help, |
| const char *syntax |
| ) : |
| CommandObject (name, help, syntax), |
| m_crossref_object_types() |
| { |
| } |
| |
| CommandObjectCrossref::~CommandObjectCrossref () |
| { |
| } |
| |
| bool |
| CommandObjectCrossref::Execute |
| ( |
| CommandInterpreter &interpreter, |
| Args& command, |
| CommandReturnObject &result |
| ) |
| { |
| if (m_crossref_object_types.GetArgumentCount() == 0) |
| { |
| result.AppendErrorWithFormat ("There are no objects for which you can call '%s'.\n", GetCommandName()); |
| result.SetStatus (eReturnStatusFailed); |
| } |
| else |
| { |
| GenerateHelpText (result); |
| } |
| return result.Succeeded(); |
| } |
| |
| void |
| CommandObjectCrossref::AddObject (const char *obj_name) |
| { |
| m_crossref_object_types.AppendArgument (obj_name); |
| } |
| |
| const char ** |
| CommandObjectCrossref::GetObjectTypes () const |
| { |
| return m_crossref_object_types.GetConstArgumentVector(); |
| } |
| |
| void |
| CommandObjectCrossref::GenerateHelpText (CommandReturnObject &result) |
| { |
| result.AppendMessage ("This command can be called on the following types of objects:"); |
| |
| for (int i = 0; i < m_crossref_object_types.GetArgumentCount(); ++i) |
| { |
| const char *obj_name = m_crossref_object_types.GetArgumentAtIndex(i); |
| result.AppendMessageWithFormat (" %s (e.g. '%s %s')\n", obj_name, |
| obj_name, GetCommandName()); |
| } |
| |
| result.SetStatus (eReturnStatusSuccessFinishNoResult); |
| } |
| |
| bool |
| CommandObjectCrossref::IsCrossRefObject () |
| { |
| return true; |
| } |