ETISS 0.11.2
ExtendableTranslatingInstructionSetSimulator(version0.11.2)
Loading...
Searching...
No Matches
GDBConnection.h
Go to the documentation of this file.
1// SPDX-License-Identifier: BSD-3-Clause
2//
3// This file is part of ETISS. It is licensed under the BSD 3-Clause License; you may not use this file except in
4// compliance with the License. You should have received a copy of the license along with this project. If not, see the
5// LICENSE file.
18#ifndef ETISS_INCLUDE_GDB_GDBCONNECTION_H_
19#define ETISS_INCLUDE_GDB_GDBCONNECTION_H_
20
21#include <string>
22
23namespace etiss
24{
25
26namespace plugin
27{
28
29namespace gdb
30{
31
32class Connection;
33
38{
39 friend class Connection;
40
41 private:
42 PacketProtocol(Connection &connection);
43
44 public:
45 virtual bool available(bool block = false);
46 virtual std::string rcv(bool &isnotification);
47 virtual bool snd(std::string answer, bool isnotification);
48
49 private:
50 virtual bool _available(bool block);
51 virtual void tryReadPacket();
52 std::string buffer;
53 std::string command;
57};
58
64{
65 friend class PacketProtocol;
66
67 public:
68 Connection();
69 virtual ~Connection();
70 virtual bool available() = 0;
71 virtual std::string rcv() = 0;
72 virtual bool snd(std::string answer) = 0;
74 virtual bool isRelyable();
75 virtual bool pendingBREAK();
76 virtual void clearBREAK();
77
78 protected:
80
81 private:
83};
84
85} // namespace gdb
86
87} // namespace plugin
88
89} // namespace etiss
90
91#endif
interface for gdb connections.
virtual std::string rcv()=0
virtual bool snd(std::string answer)=0
virtual PacketProtocol & getPacketProtocol()
implements gdb's packet protocol
virtual bool snd(std::string answer, bool isnotification)
virtual std::string rcv(bool &isnotification)
virtual bool available(bool block=false)
virtual bool _available(bool block)
forwards: include/jit/*
Definition Benchmark.h:17