@@ -89,20 +89,22 @@ typedef enum { WS_CONTINUATION, WS_TEXT, WS_BINARY, WS_DISCONNECT = 0x08, WS_PIN
89
89
typedef enum { WS_MSG_SENDING, WS_MSG_SENT, WS_MSG_ERROR } AwsMessageStatus;
90
90
typedef enum { WS_EVT_CONNECT, WS_EVT_DISCONNECT, WS_EVT_PONG, WS_EVT_ERROR, WS_EVT_DATA } AwsEventType;
91
91
92
+ typedef DynamicBuffer AsyncWebSocketBuffer;
92
93
typedef SharedBuffer AsyncWebSocketSharedBuffer;
93
94
94
- // API compatibility class - use AsyncWebSocketSharedBuffer directly
95
+ // API compatibility class.
96
+ // Use AsyncWebSocketBuffer directly instead of this where possible.
95
97
class AsyncWebSocketMessageBuffer {
96
98
private:
97
- AsyncWebSocketSharedBuffer _buf;
99
+ DynamicBuffer _buf;
98
100
99
101
public:
100
102
AsyncWebSocketMessageBuffer () {};
101
103
AsyncWebSocketMessageBuffer (size_t size) : _buf(size) {};
102
104
AsyncWebSocketMessageBuffer (uint8_t * data, size_t size) : _buf(reinterpret_cast <char *>(data), size) {};
103
- AsyncWebSocketMessageBuffer (const AsyncWebSocketMessageBuffer &r) { if (r._buf ) _buf = SharedBuffer ( r._buf . copy ()) ; }
105
+ AsyncWebSocketMessageBuffer (const AsyncWebSocketMessageBuffer &r) { if (r._buf ) _buf = r._buf ; }
104
106
AsyncWebSocketMessageBuffer (AsyncWebSocketMessageBuffer &&) = default ;
105
- AsyncWebSocketMessageBuffer (AsyncWebSocketSharedBuffer b) : _buf(std::move(b)) {};
107
+ AsyncWebSocketMessageBuffer (DynamicBuffer b) : _buf(std::move(b)) {};
106
108
~AsyncWebSocketMessageBuffer () {};
107
109
108
110
void operator ++(int i) {};
@@ -160,6 +162,7 @@ class AsyncWebSocketMultiMessage: public AsyncWebSocketMessage {
160
162
AsyncWebSocketSharedBuffer _WSbuffer;
161
163
public:
162
164
AsyncWebSocketMultiMessage (AsyncWebSocketSharedBuffer buffer, uint8_t opcode=WS_TEXT, bool mask=false );
165
+ AsyncWebSocketMultiMessage (AsyncWebSocketBuffer buffer, uint8_t opcode=WS_TEXT, bool mask=false ) : AsyncWebSocketMultiMessage(AsyncWebSocketSharedBuffer(std::move(buffer)), opcode, mask){};
163
166
virtual ~AsyncWebSocketMultiMessage () override ;
164
167
virtual bool betweenFrames () const override { return _acked == _ack; }
165
168
virtual void ack (size_t len, uint32_t time) override ;
@@ -233,7 +236,7 @@ class AsyncWebSocketClient {
233
236
void text (char * message);
234
237
void text (const String &message);
235
238
void text (const __FlashStringHelper *data);
236
- void text (AsyncWebSocketSharedBuffer buffer);
239
+ void text (AsyncWebSocketBuffer buffer);
237
240
void text (AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
238
241
239
242
void binary (const char * message, size_t len);
@@ -242,7 +245,7 @@ class AsyncWebSocketClient {
242
245
void binary (char * message);
243
246
void binary (const String &message);
244
247
void binary (const __FlashStringHelper *data, size_t len);
245
- void binary (AsyncWebSocketSharedBuffer buffer);
248
+ void binary (AsyncWebSocketBuffer buffer);
246
249
void binary (AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
247
250
248
251
bool canSend () { return _messageQueue.length () < WS_MAX_QUEUED_MESSAGES; }
@@ -295,14 +298,15 @@ class AsyncWebSocket: public AsyncWebHandler {
295
298
void text (uint32_t id, char * message);
296
299
void text (uint32_t id, const String &message);
297
300
void text (uint32_t id, const __FlashStringHelper *message);
301
+ void text (uint32_t id, AsyncWebSocketBuffer buffer);
298
302
299
303
void textAll (const char * message, size_t len);
300
304
void textAll (const char * message);
301
305
void textAll (uint8_t * message, size_t len);
302
306
void textAll (char * message);
303
307
void textAll (const String &message);
304
308
void textAll (const __FlashStringHelper *message); // need to convert
305
- void textAll (const AsyncWebSocketSharedBuffer& buffer);
309
+ void textAll (AsyncWebSocketBuffer buffer); // must be moved, or will be copied
306
310
void textAll (const AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
307
311
308
312
void binary (uint32_t id, const char * message, size_t len);
@@ -318,7 +322,7 @@ class AsyncWebSocket: public AsyncWebHandler {
318
322
void binaryAll (char * message);
319
323
void binaryAll (const String &message);
320
324
void binaryAll (const __FlashStringHelper *message, size_t len);
321
- void binaryAll (const AsyncWebSocketSharedBuffer& buffer);
325
+ void binaryAll (AsyncWebSocketBuffer buffer);
322
326
void binaryAll (const AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
323
327
324
328
void message (uint32_t id, AsyncWebSocketMessage *message);
0 commit comments