@@ -89,20 +89,22 @@ typedef enum { WS_CONTINUATION, WS_TEXT, WS_BINARY, WS_DISCONNECT = 0x08, WS_PIN
8989typedef enum { WS_MSG_SENDING, WS_MSG_SENT, WS_MSG_ERROR } AwsMessageStatus;
9090typedef enum { WS_EVT_CONNECT, WS_EVT_DISCONNECT, WS_EVT_PONG, WS_EVT_ERROR, WS_EVT_DATA } AwsEventType;
9191
92+ typedef DynamicBuffer AsyncWebSocketBuffer;
9293typedef SharedBuffer AsyncWebSocketSharedBuffer;
9394
94- // API compatibility class - use AsyncWebSocketSharedBuffer directly
95+ // API compatibility class.
96+ // Use AsyncWebSocketBuffer directly instead of this where possible.
9597class AsyncWebSocketMessageBuffer {
9698 private:
97- AsyncWebSocketSharedBuffer _buf;
99+ DynamicBuffer _buf;
98100
99101 public:
100102 AsyncWebSocketMessageBuffer () {};
101103 AsyncWebSocketMessageBuffer (size_t size) : _buf(size) {};
102104 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 ; }
104106 AsyncWebSocketMessageBuffer (AsyncWebSocketMessageBuffer &&) = default ;
105- AsyncWebSocketMessageBuffer (AsyncWebSocketSharedBuffer b) : _buf(std::move(b)) {};
107+ AsyncWebSocketMessageBuffer (DynamicBuffer b) : _buf(std::move(b)) {};
106108 ~AsyncWebSocketMessageBuffer () {};
107109
108110 void operator ++(int i) {};
@@ -160,6 +162,7 @@ class AsyncWebSocketMultiMessage: public AsyncWebSocketMessage {
160162 AsyncWebSocketSharedBuffer _WSbuffer;
161163public:
162164 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){};
163166 virtual ~AsyncWebSocketMultiMessage () override ;
164167 virtual bool betweenFrames () const override { return _acked == _ack; }
165168 virtual void ack (size_t len, uint32_t time) override ;
@@ -233,7 +236,7 @@ class AsyncWebSocketClient {
233236 void text (char * message);
234237 void text (const String &message);
235238 void text (const __FlashStringHelper *data);
236- void text (AsyncWebSocketSharedBuffer buffer);
239+ void text (AsyncWebSocketBuffer buffer);
237240 void text (AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
238241
239242 void binary (const char * message, size_t len);
@@ -242,7 +245,7 @@ class AsyncWebSocketClient {
242245 void binary (char * message);
243246 void binary (const String &message);
244247 void binary (const __FlashStringHelper *data, size_t len);
245- void binary (AsyncWebSocketSharedBuffer buffer);
248+ void binary (AsyncWebSocketBuffer buffer);
246249 void binary (AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
247250
248251 bool canSend () { return _messageQueue.length () < WS_MAX_QUEUED_MESSAGES; }
@@ -295,14 +298,15 @@ class AsyncWebSocket: public AsyncWebHandler {
295298 void text (uint32_t id, char * message);
296299 void text (uint32_t id, const String &message);
297300 void text (uint32_t id, const __FlashStringHelper *message);
301+ void text (uint32_t id, AsyncWebSocketBuffer buffer);
298302
299303 void textAll (const char * message, size_t len);
300304 void textAll (const char * message);
301305 void textAll (uint8_t * message, size_t len);
302306 void textAll (char * message);
303307 void textAll (const String &message);
304308 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
306310 void textAll (const AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
307311
308312 void binary (uint32_t id, const char * message, size_t len);
@@ -318,7 +322,7 @@ class AsyncWebSocket: public AsyncWebHandler {
318322 void binaryAll (char * message);
319323 void binaryAll (const String &message);
320324 void binaryAll (const __FlashStringHelper *message, size_t len);
321- void binaryAll (const AsyncWebSocketSharedBuffer& buffer);
325+ void binaryAll (AsyncWebSocketBuffer buffer);
322326 void binaryAll (const AsyncWebSocketMessageBuffer* buffer) __attribute__((deprecated)); // frees buffer
323327
324328 void message (uint32_t id, AsyncWebSocketMessage *message);
0 commit comments