1e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton//===-- OptionGroupUUID.cpp -------------------------------------*- C++ -*-===// 2e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 3e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// The LLVM Compiler Infrastructure 4e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 5e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// This file is distributed under the University of Illinois Open Source 6e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// License. See LICENSE.TXT for details. 7e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// 8e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton//===----------------------------------------------------------------------===// 9e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 10a0f34698c457091c0d15b8fdfbf638421b1283d4Johnny Chen#include "lldb/Interpreter/OptionGroupUUID.h" 11e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 12e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// C Includes 13e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// C++ Includes 14e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// Other libraries and framework includes 15e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton// Project includes 164003f57f86a92411f0563f355a32e8f86ae29d5aJohnny Chen#include "lldb/Utility/Utils.h" 17e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 18e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonusing namespace lldb; 19e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonusing namespace lldb_private; 20e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 21e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::OptionGroupUUID() : 22e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton m_uuid () 23e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 24e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 25e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 26e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::~OptionGroupUUID () 27e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 28e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 29e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 30e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonstatic OptionDefinition 31e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytong_option_table[] = 32e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 334003f57f86a92411f0563f355a32e8f86ae29d5aJohnny Chen { LLDB_OPT_SET_1 , false, "uuid", 'u', required_argument, NULL, 0, eArgTypeNone, "A module UUID value."}, 34e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton}; 35e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 36e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonuint32_t 37e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::GetNumDefinitions () 38e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 3908af5983cb349e7167f3832d00d36ca611bfa2f1Johnny Chen return llvm::array_lengthof(g_option_table); 40e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 41e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 42e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonconst OptionDefinition * 43e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::GetDefinitions () 44e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 45e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return g_option_table; 46e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 47e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 48e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonError 49e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::SetOptionValue (CommandInterpreter &interpreter, 506475c42148a8ea1ca86e5db465db7eca742d897dGreg Clayton uint32_t option_idx, 516475c42148a8ea1ca86e5db465db7eca742d897dGreg Clayton const char *option_arg) 52e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 53e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton Error error; 546475c42148a8ea1ca86e5db465db7eca742d897dGreg Clayton const int short_option = g_option_table[option_idx].short_option; 55e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 56e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton switch (short_option) 57e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton { 58e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton case 'u': 59e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton error = m_uuid.SetValueFromCString (option_arg); 60bb2218f2b3803400299d26a6b96e8e5edc77e385Jim Ingham if (error.Success()) 61bb2218f2b3803400299d26a6b96e8e5edc77e385Jim Ingham m_uuid.SetOptionWasSet(); 62e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton break; 63e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 64e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton default: 659c236733d43e6250c8a5671a438f4a2afeb9c0b2Greg Clayton error.SetErrorStringWithFormat ("unrecognized option '%c'", short_option); 66e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton break; 67e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton } 68e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 69e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton return error; 70e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 71e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton 72e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Claytonvoid 73e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg ClaytonOptionGroupUUID::OptionParsingStarting (CommandInterpreter &interpreter) 74e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton{ 75e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton m_uuid.Clear(); 76e1f50b9df1299f6b9181b5ac2699ed4a3ad38a59Greg Clayton} 77