blob: 66ddc77bc95b578fd0300ecca49c96cb4ed51444 [file] [log] [blame]
Greg Clayton61d043b2011-03-22 04:00:09 +00001//===-- GDBRemoteCommunicationServer.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_GDBRemoteCommunicationServer_h_
11#define liblldb_GDBRemoteCommunicationServer_h_
12
13// C Includes
14// C++ Includes
15// Other libraries and framework includes
16// Project includes
17#include "GDBRemoteCommunication.h"
18
19class ProcessGDBRemote;
20
21class GDBRemoteCommunicationServer : public GDBRemoteCommunication
22{
23public:
24 enum
25 {
26 eBroadcastBitRunPacketSent = kLoUserBroadcastBit
27 };
28 //------------------------------------------------------------------
29 // Constructors and Destructors
30 //------------------------------------------------------------------
31 GDBRemoteCommunicationServer();
32
33 virtual
34 ~GDBRemoteCommunicationServer();
35
36 bool
Greg Claytoncb8977d2011-03-23 00:09:55 +000037 GetPacketAndSendResponse (const lldb_private::TimeValue* timeout_ptr,
Greg Clayton58e26e02011-03-24 04:28:38 +000038 lldb_private::Error &error,
Greg Claytoncb8977d2011-03-23 00:09:55 +000039 bool &interrupt,
40 bool &quit);
Greg Clayton61d043b2011-03-22 04:00:09 +000041
42 virtual bool
43 GetThreadSuffixSupported ()
44 {
45 return true;
46 }
47
Greg Clayton58e26e02011-03-24 04:28:38 +000048 // After connecting, do a little handshake with the client to make sure
49 // we are at least communicating
50 bool
51 HandshakeWithClient (lldb_private::Error *error_ptr);
Greg Clayton61d043b2011-03-22 04:00:09 +000052
53protected:
54 lldb::thread_t m_async_thread;
Greg Clayton61d043b2011-03-22 04:00:09 +000055
56 size_t
57 SendUnimplementedResponse ();
58
Greg Clayton58e26e02011-03-24 04:28:38 +000059 size_t
60 SendOKResponse ();
Greg Clayton61d043b2011-03-22 04:00:09 +000061
62 bool
63 Handle_qHostInfo ();
64
Greg Clayton58e26e02011-03-24 04:28:38 +000065 bool
66 Handle_QStartNoAckMode ();
67
Greg Clayton61d043b2011-03-22 04:00:09 +000068private:
69 //------------------------------------------------------------------
70 // For GDBRemoteCommunicationServer only
71 //------------------------------------------------------------------
72 DISALLOW_COPY_AND_ASSIGN (GDBRemoteCommunicationServer);
73};
74
75#endif // liblldb_GDBRemoteCommunicationServer_h_