Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2585)

Unified Diff: build_tools/debug_server/debug_server/common/rsp_packetizer.h

Issue 6312039: RSP proxy that can record session (for playback testing).... (Closed) Base URL: http://nativeclient-sdk.googlecode.com/svn/trunk/src/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: build_tools/debug_server/debug_server/common/rsp_packetizer.h
===================================================================
--- build_tools/debug_server/debug_server/common/rsp_packetizer.h (revision 0)
+++ build_tools/debug_server/debug_server/common/rsp_packetizer.h (revision 0)
@@ -0,0 +1,48 @@
+#ifndef NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_COMMON_RSP_TOKENIZER_H_
+#define NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_COMMON_RSP_TOKENIZER_H_
+
+#include <deque>
+#include <string>
+#include "debug_blob.h"
+#include "rsp_packet_utils.h"
+
+namespace rsp {
+class PacketConsumer {
+ public:
+ PacketConsumer() {}
+ virtual ~PacketConsumer() {}
+ virtual void OnPacket(debug::Blob& body, bool valid_checksum) = 0;
+ virtual void OnUnexpectedChar(char unexpected_char) = 0;
+ virtual void OnBreak() = 0;
+};
+
+class Packetizer {
+public:
+ Packetizer();
+ virtual ~Packetizer();
+
+ virtual void SetPacketConsumer(PacketConsumer* consumer);
+ virtual void OnData(const void* data, size_t data_length=-1);
+ virtual void OnData(const debug::Blob& data);
+ virtual void Reset();
+ virtual bool IsIdle() const;
+
+protected:
+ enum State {IDLE, BODY, END, CHECKSUM, ESCAPE, RUNLEN};
+
+ virtual void OnChar(unsigned char c);
+ bool HexCharToint(unsigned char c, unsigned int* result);
+ virtual void AddToChecksum(unsigned char c);
+ virtual void AddCharToBody(unsigned char c);
+ virtual void AddRepeatedChars(size_t n);
+
+ State state_;
+ PacketConsumer* consumer_;
+ debug::Blob body_;
+ unsigned int calculated_checksum_;
+ unsigned int recv_checksum_;
+};
+
+} // namespace rsp
+
+#endif // NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_COMMON_RSP_TOKENIZER_H_

Powered by Google App Engine
This is Rietveld 408576698