SocketStreamHandleInternal.h [plain text]
#ifndef SocketStreamHandleInternal_h
#define SocketStreamHandleInternal_h
#if ENABLE(WEB_SOCKETS)
#include "SocketStreamHandle.h"
#include "platform/WebSocketStreamHandleClient.h"
#include "platform/WebURL.h"
#include <wtf/PassOwnPtr.h>
namespace WebKit {
class WebData;
class WebSocketStreamError;
class WebSocketStreamHandle;
}
namespace WebCore {
class SocketStreamHandleInternal : public WebKit::WebSocketStreamHandleClient {
public:
static PassOwnPtr<SocketStreamHandleInternal> create(SocketStreamHandle* handle)
{
return adoptPtr(new SocketStreamHandleInternal(handle));
}
virtual ~SocketStreamHandleInternal();
void connect(const KURL&);
int send(const char*, int);
void close();
virtual void didOpenStream(WebKit::WebSocketStreamHandle*, int);
virtual void didSendData(WebKit::WebSocketStreamHandle*, int);
virtual void didReceiveData(WebKit::WebSocketStreamHandle*, const WebKit::WebData&);
virtual void didClose(WebKit::WebSocketStreamHandle*);
virtual void didFail(WebKit::WebSocketStreamHandle*, const WebKit::WebSocketStreamError&);
static WebKit::WebSocketStreamHandle* toWebSocketStreamHandle(SocketStreamHandle* handle)
{
if (handle && handle->m_internal)
return handle->m_internal->m_socket.get();
return 0;
}
private:
explicit SocketStreamHandleInternal(SocketStreamHandle*);
SocketStreamHandle* m_handle;
OwnPtr<WebKit::WebSocketStreamHandle> m_socket;
int m_maxPendingSendAllowed;
int m_pendingAmountSent;
};
}
#endif // ENABLE(WEB_SOCKETS)
#endif // SocketStreamHandleInternal_h