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 |