Index: experimental/linux_debug_server/debugger/rsp/rsp_packetizer.h |
diff --git a/experimental/linux_debug_server/debugger/rsp/rsp_packetizer.h b/experimental/linux_debug_server/debugger/rsp/rsp_packetizer.h |
deleted file mode 100755 |
index 928046d57d2e24b5b0f22d9286303061cd27ee43..0000000000000000000000000000000000000000 |
--- a/experimental/linux_debug_server/debugger/rsp/rsp_packetizer.h |
+++ /dev/null |
@@ -1,109 +0,0 @@ |
-// Copyright (c) 2011 The Native Client Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
-#ifndef DEBUGGER_RSP_RSP_PACKETIZER_H_ |
-#define DEBUGGER_RSP_RSP_PACKETIZER_H_ |
- |
-#include <deque> |
-#include <string> |
-#include "debugger/base/debug_blob.h" |
- |
-namespace rsp { |
-class PacketConsumerInterface; |
- |
-/// This class provides ability to convert byte stream into RSP messages. |
-/// |
-/// Byte stream contain messages in RSP wire format, see |
-/// http://sources.redhat.com/gdb/current/onlinedocs/gdb.html#Remote-Protocol |
-/// Packetizer removes RSP 'envelope', i.e. start character, stop character, |
-/// checksum, converts escaped characters, expands run-encoded data. |
-/// |
-/// Example: |
-/// |
-/// class MyPacketConsumer : public rsp::PacketConsumerInterface { |
-/// ... |
-/// MyPacketConsumer consumer; |
-/// rsp::Packetizer packetizer; |
-/// packetizer.SetPacketConsumer(&consumer); |
-/// ... |
-/// char buff[100]; |
-/// size_t rd_bytes = 0; |
-/// while (ReadConnection(buff, &rd_bytes)) |
-/// packetizer.OnData(buff, &rd_bytes); |
-/// |
-class Packetizer { |
- public: |
- Packetizer(); |
- virtual ~Packetizer(); |
- |
- /// Associate |consumer| with packetizer. |
- /// Packetizer will call consumer->OnPacket when it receives complete |
- /// RSP packet. |
- /// @param[in] consumer externally created and maintained packet consumer. |
- /// Note: |consumer| is not owned by Packetizer, it's a weak reference. |
- /// |consumer| shall exist for the duration of Packetizer object. |
- virtual void SetPacketConsumer(PacketConsumerInterface* consumer); |
- |
- /// Consumes incoming RSP messages in GDB RSP wire format. |
- /// @param[in] data buffer with incoming bytes |
- /// @param[in] data_length size of |data| |
- /// Note: |OnData| will directly call one of these methods: |
- /// consumer_->OnPacket |
- /// consumer_->OnUnexpectedByte |
- /// consumer_->OnBreak |
- virtual void OnData(const void* data, size_t data_length); |
- |
- /// Same as previous member. |
- /// @param[in] data buffer with incoming bytes |
- virtual void OnData(const debug::Blob& data); |
- |
- /// Resets state, dropping all received data. |
- virtual void Reset(); |
- |
- private: |
- enum State { |
- IDLE, // in between packets |
- BODY, // packet start symbol is received ('$'), normal RSP packet body |
- END, // packet end symbol is received ('#'), expect checksum next |
- CHECKSUM, // first byte of checksum is received, expect one more |
- ESCAPE, // received an escape symbol |
- RUNLEN // received a run-length encoding symbol, expect count byte next |
- }; |
- |
- virtual void OnByte(uint8_t c); |
- virtual void AddByteToChecksum(uint8_t c); |
- virtual void AddByteToBody(uint8_t c); |
- |
- /// Adds |n| copies of last byte in |body_|. |
- virtual void AddRepeatedBytes(size_t n); |
- |
- State state_; |
- PacketConsumerInterface* consumer_; |
- debug::Blob body_; |
- unsigned int calculated_checksum_; |
- unsigned int recv_checksum_; |
-}; |
- |
-/// This class represents interface to RSP packet consumer. |
-class PacketConsumerInterface { |
- public: |
- PacketConsumerInterface() {} |
- virtual ~PacketConsumerInterface() {} |
- |
- /// Handler for received RSP packet. |
- /// @param[in] body body of RSP packet, with 'envelope' removed |
- /// @param[in] valid_checksum true if checksum for the packet is correct |
- virtual void OnPacket(const debug::Blob& body, bool valid_checksum) = 0; |
- |
- /// This method get called when Packetizer encounter unexpected byte |
- virtual void OnUnexpectedByte(uint8_t unexpected_byte) = 0; |
- |
- /// This method get called when Packetizer encounter Ctl-C code, |
- /// meaning a "break" RSP command. |
- virtual void OnBreak() = 0; |
-}; |
- |
-} // namespace rsp |
- |
-#endif // DEBUGGER_RSP_RSP_PACKETIZER_H_ |
- |