| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2009 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2009, 2011, 2012 Google Inc. All rights reserved. | 3 * Copyright (C) 2009, 2011, 2012 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions are | 6 * modification, are permitted provided that the following conditions are |
| 7 * met: | 7 * met: |
| 8 * | 8 * |
| 9 * * Redistributions of source code must retain the above copyright | 9 * * Redistributions of source code must retain the above copyright |
| 10 * notice, this list of conditions and the following disclaimer. | 10 * notice, this list of conditions and the following disclaimer. |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 | 40 |
| 41 namespace WebCore { | 41 namespace WebCore { |
| 42 | 42 |
| 43 class SocketStreamHandleClient; | 43 class SocketStreamHandleClient; |
| 44 class SocketStreamHandleInternal; | 44 class SocketStreamHandleInternal; |
| 45 | 45 |
| 46 class PLATFORM_EXPORT SocketStreamHandle : public RefCounted<SocketStreamHandle>
{ | 46 class PLATFORM_EXPORT SocketStreamHandle : public RefCounted<SocketStreamHandle>
{ |
| 47 public: | 47 public: |
| 48 enum SocketStreamState { Connecting, Open, Closing, Closed }; | 48 enum SocketStreamState { Connecting, Open, Closing, Closed }; |
| 49 | 49 |
| 50 static PassRefPtr<SocketStreamHandle> create(const KURL& url, SocketStreamHa
ndleClient* client) { return adoptRef(new SocketStreamHandle(url, client)); } | 50 static PassRefPtr<SocketStreamHandle> create(SocketStreamHandleClient* clien
t) { return adoptRef(new SocketStreamHandle(client)); } |
| 51 | 51 |
| 52 virtual ~SocketStreamHandle(); | 52 virtual ~SocketStreamHandle(); |
| 53 SocketStreamState state() const; | 53 SocketStreamState state() const; |
| 54 | 54 |
| 55 void connect(const KURL&); |
| 55 bool send(const char* data, int length); | 56 bool send(const char* data, int length); |
| 56 void close(); // Disconnect after all data in buffer are sent. | 57 void close(); // Disconnect after all data in buffer are sent. |
| 57 void disconnect(); | 58 void disconnect(); |
| 58 size_t bufferedAmount() const { return m_buffer.size(); } | 59 size_t bufferedAmount() const { return m_buffer.size(); } |
| 59 | 60 |
| 60 SocketStreamHandleClient* client() const { return m_client; } | 61 SocketStreamHandleClient* client() const { return m_client; } |
| 61 void setClient(SocketStreamHandleClient*); | 62 void setClient(SocketStreamHandleClient*); |
| 62 | 63 |
| 63 private: | 64 private: |
| 64 SocketStreamHandle(const KURL&, SocketStreamHandleClient*); | 65 SocketStreamHandle(SocketStreamHandleClient*); |
| 65 | 66 |
| 66 bool sendPendingData(); | 67 bool sendPendingData(); |
| 67 | 68 |
| 68 int sendInternal(const char* data, int length); | 69 int sendInternal(const char* data, int length); |
| 69 void closeInternal(); | 70 void closeInternal(); |
| 70 | 71 |
| 71 KURL m_url; | |
| 72 SocketStreamHandleClient* m_client; | 72 SocketStreamHandleClient* m_client; |
| 73 StreamBuffer<char, 1024 * 1024> m_buffer; | 73 StreamBuffer<char, 1024 * 1024> m_buffer; |
| 74 SocketStreamState m_state; | 74 SocketStreamState m_state; |
| 75 | 75 |
| 76 friend class SocketStreamHandleInternal; | 76 friend class SocketStreamHandleInternal; |
| 77 OwnPtr<SocketStreamHandleInternal> m_internal; | 77 OwnPtr<SocketStreamHandleInternal> m_internal; |
| 78 }; | 78 }; |
| 79 | 79 |
| 80 } // namespace WebCore | 80 } // namespace WebCore |
| 81 | 81 |
| 82 #endif // SocketStreamHandle_h | 82 #endif // SocketStreamHandle_h |
| OLD | NEW |