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

Unified Diff: build_tools/debug_server/debug_server/rsp_recorder/rsp_recorder.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/rsp_recorder/rsp_recorder.h
===================================================================
--- build_tools/debug_server/debug_server/rsp_recorder/rsp_recorder.h (revision 0)
+++ build_tools/debug_server/debug_server/rsp_recorder/rsp_recorder.h (revision 0)
@@ -0,0 +1,72 @@
+#ifndef NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_RSP_RECORDER_RSP_RECORDER_H_
+#define NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_RSP_RECORDER_RSP_RECORDER_H_
+
+#include "..\common\debug_socket.h"
+#include "..\common\rsp_packetizer.h"
+#include "..\common\rsp_session_log.h"
+
+namespace rsp_recorder {
+class Recorder;
+class HostPacketConsumer : public rsp::PacketConsumer {
+public:
+ HostPacketConsumer() : rec_(NULL) {}
+ virtual void OnPacket(debug::Blob& body, bool valid_checksum);
+ virtual void OnUnexpectedChar(char unexpected_char);
+ virtual void OnBreak();
+
+ rsp_recorder::Recorder* rec_;
+};
+
+class TargetPacketConsumer : public rsp::PacketConsumer {
+public:
+ TargetPacketConsumer() : rec_(NULL) {}
+ virtual void OnPacket(debug::Blob& body, bool valid_checksum);
+ virtual void OnUnexpectedChar(char unexpected_char);
+ virtual void OnBreak();
+
+ rsp_recorder::Recorder* rec_;
+};
+
+class Recorder {
+public:
+ Recorder();
+ ~Recorder();
+
+ void SetSessionLogFileName(const std::string& name);
+ void Start(int host_port,
+ const std::string& target_hostname,
+ int target_port);
+ void DoWork();
+ void Stop();
+ bool IsRunning() const;
+
+protected:
+ enum State {STOPPED, CONNECTING, CONNECTED};
+
+ void OnHostPacket(debug::Blob& body, bool valid_checksum);
+ void OnHostUnexpectedChar(char unexpected_char);
+ void OnHostBreak();
+ void OnTargetPacket(debug::Blob& body, bool valid_checksum);
+ void OnTargetUnexpectedChar(char unexpected_char);
+ void OnTargetBreak();
+ void OnError(const char* error_description);
+
+ State state_;
+ rsp::SessionLog session_log_;
+ int host_port_;
+ int target_port_;
+ std::string target_hostname_;
+ debug::ListeningSocket host_listening_socket_;
+ debug::Socket host_connection_;
+ debug::Socket target_connection_;
+ rsp::Packetizer host_packetizer_;
+ rsp::Packetizer target_packetizer_;
+ HostPacketConsumer host_packet_consumer_;
+ TargetPacketConsumer target_packet_consumer_;
+
+ friend class HostPacketConsumer;
+ friend class TargetPacketConsumer;
+};
+} // namespace rsp_recorder
+
+#endif // NACL_SDK_BUILD_TOOLS_DEBUG_SERVER_RSP_RECORDER_RSP_RECORDER_H_

Powered by Google App Engine
This is Rietveld 408576698