summaryrefslogtreecommitdiffstats
path: root/net/websockets/websocket_job.h
diff options
context:
space:
mode:
authorukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-01 03:11:16 +0000
committerukai@chromium.org <ukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-06-01 03:11:16 +0000
commit3985966ad82dc8ac7094698bc1e598a6d072c93e (patch)
treec5e22e38883a3d7ba8eb0708d959f5e64cffb70b /net/websockets/websocket_job.h
parent1bdaa60c309250932259402cc8abe0a1bb3f5b2d (diff)
downloadchromium_src-3985966ad82dc8ac7094698bc1e598a6d072c93e.zip
chromium_src-3985966ad82dc8ac7094698bc1e598a6d072c93e.tar.gz
chromium_src-3985966ad82dc8ac7094698bc1e598a6d072c93e.tar.bz2
Factor out WebSocket frame handler out of WebSocketJob.
WebSocket frame handler might be used to count number of frames, variance of type or length of frame. It might be also used to compress/decompress message in websocket frame. BUG=none TEST=none Review URL: http://codereview.chromium.org/2078002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@48615 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/websockets/websocket_job.h')
-rw-r--r--net/websockets/websocket_job.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/net/websockets/websocket_job.h b/net/websockets/websocket_job.h
index bb4ac1e..db436be 100644
--- a/net/websockets/websocket_job.h
+++ b/net/websockets/websocket_job.h
@@ -16,6 +16,9 @@ class GURL;
namespace net {
+class DrainableIOBuffer;
+class WebSocketFrameHandler;
+
// WebSocket protocol specific job on SocketStream.
// It captures WebSocket handshake message and handles cookie operations.
// Chrome security policy doesn't allow renderer process (except dev tools)
@@ -29,7 +32,8 @@ class WebSocketJob : public SocketStreamJob, public SocketStream::Delegate {
INITIALIZED = -1,
CONNECTING = 0,
OPEN = 1,
- CLOSED = 2,
+ CLOSING = 2,
+ CLOSED = 3,
};
static void EnsureInit();
@@ -83,6 +87,8 @@ class WebSocketJob : public SocketStreamJob, public SocketStream::Delegate {
void Wakeup();
void DoCallback();
+ void SendPending();
+
SocketStream::Delegate* delegate_;
State state_;
bool waiting_;
@@ -102,6 +108,10 @@ class WebSocketJob : public SocketStreamJob, public SocketStream::Delegate {
CompletionCallbackImpl<WebSocketJob> can_get_cookies_callback_;
CompletionCallbackImpl<WebSocketJob> can_set_cookie_callback_;
+ scoped_ptr<WebSocketFrameHandler> send_frame_handler_;
+ scoped_refptr<DrainableIOBuffer> current_buffer_;
+ scoped_ptr<WebSocketFrameHandler> receive_frame_handler_;
+
DISALLOW_COPY_AND_ASSIGN(WebSocketJob);
};