1 //===-- ThreadMemory.h -----------------------------------------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
10 #ifndef liblldb_ThreadMemory_h_
11 #define liblldb_ThreadMemory_h_
12 
13 #include "lldb/Target/Thread.h"
14 
15 class ThreadMemory :
16     public lldb_private::Thread
17 {
18 public:
19 
20     ThreadMemory (lldb_private::Process &process,
21                    lldb::tid_t tid,
22                    const lldb::ValueObjectSP &thread_info_valobj_sp);
23 
24     virtual
25     ~ThreadMemory();
26 
27     //------------------------------------------------------------------
28     // lldb_private::Thread methods
29     //------------------------------------------------------------------
30     virtual void
31     RefreshStateAfterStop();
32 
33     virtual lldb::RegisterContextSP
34     GetRegisterContext ();
35 
36     virtual lldb::RegisterContextSP
37     CreateRegisterContextForFrame (lldb_private::StackFrame *frame);
38 
39     virtual lldb::StopInfoSP
40     GetPrivateStopReason ();
41 
42     virtual bool
43     WillResume (lldb::StateType resume_state);
44 
45     lldb::ValueObjectSP &
46     GetValueObject ()
47     {
48         return m_thread_info_valobj_sp;
49     }
50 
51 protected:
52     //------------------------------------------------------------------
53     // For ThreadMemory and subclasses
54     //------------------------------------------------------------------
55     lldb::ValueObjectSP m_thread_info_valobj_sp;
56 
57 private:
58     //------------------------------------------------------------------
59     // For ThreadMemory only
60     //------------------------------------------------------------------
61     DISALLOW_COPY_AND_ASSIGN (ThreadMemory);
62 };
63 
64 #endif  // liblldb_ThreadMemory_h_
65