1 //===-- MICmdCmdThread.h ----------------------------------------*- C++ -*-===//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // Overview: CMICmdCmdThreadInfo interface.
12 // To implement new MI commands derive a new command class from the
14 // class. To enable the new command for interpretation add the new
16 // to the command factory. The files of relevance are:
20 // For an introduction to adding a new command see
21 // CMICmdCmdSupportInfoMiCmdQuery
22 // command class as an example.
27 #include "MICmdBase.h"
28 #include "MICmnMIValueList.h"
29 #include "MICmnMIValueTuple.h"
32 //============================================================================
33 // Details: MI command class. MI commands derived from the command base class.
34 // *this class implements MI command "thread-info".
36 class CMICmdCmdThreadInfo : public CMICmdBase {
39 // Required by the CMICmdFactory when registering *this command
40 static CMICmdBase *CreateSelf();
44 /* ctor */ CMICmdCmdThreadInfo();
48 // From CMICmdInvoker::ICmd
49 bool Execute() override;
50 bool Acknowledge() override;
51 bool ParseArgs() override;
53 /* dtor */ ~CMICmdCmdThreadInfo() override;
57 typedef std::vector<CMICmnMIValueTuple> VecMIValueTuple_t;
61 CMICmnMIValueTuple m_miValueTupleThread;
62 bool m_bSingleThread; // True = yes single thread, false = multiple threads
63 bool m_bThreadInvalid; // True = invalid, false = ok
64 VecMIValueTuple_t m_vecMIValueTuple;
65 const CMIUtilString m_constStrArgNamedThreadId;
67 // mi value of current-thread-id if multiple threads are requested
68 bool m_bHasCurrentThread;
69 CMICmnMIValue m_miValueCurrThreadId;