ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
GDBConnection.h
Go to the documentation of this file.
1 
56 #ifndef ETISS_INCLUDE_GDB_GDBCONNECTION_H_
57 #define ETISS_INCLUDE_GDB_GDBCONNECTION_H_
58 
59 #include <string>
60 
61 namespace etiss
62 {
63 
64 namespace plugin
65 {
66 
67 namespace gdb
68 {
69 
70 class Connection;
71 
76 {
77  friend class Connection;
78 
79  private:
80  PacketProtocol(Connection &connection);
81 
82  public:
83  virtual bool available(bool block = false);
84  virtual std::string rcv(bool &isnotification);
85  virtual bool snd(std::string answer, bool isnotification);
86 
87  private:
88  virtual bool _available(bool block);
89  virtual void tryReadPacket();
90  std::string buffer;
91  std::string command;
94  bool cfg_noack_;
95 };
96 
102 {
103  friend class PacketProtocol;
104 
105  public:
106  Connection();
107  virtual ~Connection();
108  virtual bool available() = 0;
109  virtual std::string rcv() = 0;
110  virtual bool snd(std::string answer) = 0;
112  virtual bool isRelyable();
113  virtual bool pendingBREAK();
114  virtual void clearBREAK();
115 
116  protected:
118 
119  private:
121 };
122 
123 } // namespace gdb
124 
125 } // namespace plugin
126 
127 } // namespace etiss
128 
129 #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
Definition: GDBConnection.h:76
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)
PacketProtocol(Connection &connection)
Page Table Entry (PTE) defines the composition of Page Frame Number (PFN) and relavant flags.
Definition: Benchmark.h:53