Skip to content

Commit d2bb405

Browse files
Merge pull request #264 from kyberias/fix-forward
Move definition of AsyncWebSocketControl to header file
2 parents 6493c1e + 179f395 commit d2bb405

File tree

2 files changed

+61
-60
lines changed

2 files changed

+61
-60
lines changed

src/AsyncWebSocket.cpp

Lines changed: 5 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -120,6 +120,11 @@ size_t webSocketSendFrame(AsyncClient *client, bool final, uint8_t opcode, bool
120120
return len;
121121
}
122122

123+
size_t AsyncWebSocketControl::send(AsyncClient *client) {
124+
_finished = true;
125+
return webSocketSendFrame(client, true, _opcode & 0x0F, _mask, _data, _len);
126+
}
127+
123128
/*
124129
* AsyncWebSocketMessageBuffer
125130
*/
@@ -146,65 +151,6 @@ bool AsyncWebSocketMessageBuffer::reserve(size_t size) {
146151
return _buffer->capacity() >= size;
147152
}
148153

149-
/*
150-
* Control Frame
151-
*/
152-
153-
class AsyncWebSocketControl {
154-
private:
155-
uint8_t _opcode;
156-
uint8_t *_data;
157-
size_t _len;
158-
bool _mask;
159-
bool _finished;
160-
161-
public:
162-
AsyncWebSocketControl(uint8_t opcode, const uint8_t *data = NULL, size_t len = 0, bool mask = false)
163-
: _opcode(opcode), _len(len), _mask(len && mask), _finished(false) {
164-
if (data == NULL) {
165-
_len = 0;
166-
}
167-
if (_len) {
168-
if (_len > 125) {
169-
_len = 125;
170-
}
171-
172-
_data = (uint8_t *)malloc(_len);
173-
174-
if (_data == NULL) {
175-
#ifdef ESP32
176-
log_e("Failed to allocate");
177-
#endif
178-
_len = 0;
179-
} else {
180-
memcpy(_data, data, len);
181-
}
182-
} else {
183-
_data = NULL;
184-
}
185-
}
186-
187-
~AsyncWebSocketControl() {
188-
if (_data != NULL) {
189-
free(_data);
190-
}
191-
}
192-
193-
bool finished() const {
194-
return _finished;
195-
}
196-
uint8_t opcode() {
197-
return _opcode;
198-
}
199-
uint8_t len() {
200-
return _len + 2;
201-
}
202-
size_t send(AsyncClient *client) {
203-
_finished = true;
204-
return webSocketSendFrame(client, true, _opcode & 0x0F, _mask, _data, _len);
205-
}
206-
};
207-
208154
/*
209155
* AsyncWebSocketMessage Message
210156
*/

src/AsyncWebSocket.h

Lines changed: 56 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,62 @@ using AsyncWebSocketSharedBuffer = std::shared_ptr<std::vector<uint8_t>>;
5353
class AsyncWebSocket;
5454
class AsyncWebSocketResponse;
5555
class AsyncWebSocketClient;
56-
class AsyncWebSocketControl;
56+
57+
/*
58+
* Control Frame
59+
*/
60+
61+
class AsyncWebSocketControl {
62+
private:
63+
uint8_t _opcode;
64+
uint8_t *_data;
65+
size_t _len;
66+
bool _mask;
67+
bool _finished;
68+
69+
public:
70+
AsyncWebSocketControl(uint8_t opcode, const uint8_t *data = NULL, size_t len = 0, bool mask = false)
71+
: _opcode(opcode), _len(len), _mask(len && mask), _finished(false) {
72+
if (data == NULL) {
73+
_len = 0;
74+
}
75+
if (_len) {
76+
if (_len > 125) {
77+
_len = 125;
78+
}
79+
80+
_data = (uint8_t *)malloc(_len);
81+
82+
if (_data == NULL) {
83+
#ifdef ESP32
84+
log_e("Failed to allocate");
85+
#endif
86+
_len = 0;
87+
} else {
88+
memcpy(_data, data, len);
89+
}
90+
} else {
91+
_data = NULL;
92+
}
93+
}
94+
95+
~AsyncWebSocketControl() {
96+
if (_data != NULL) {
97+
free(_data);
98+
}
99+
}
100+
101+
bool finished() const {
102+
return _finished;
103+
}
104+
uint8_t opcode() {
105+
return _opcode;
106+
}
107+
uint8_t len() {
108+
return _len + 2;
109+
}
110+
size_t send(AsyncClient *client);
111+
};
57112

58113
typedef struct {
59114
/** Message type as defined by enum AwsFrameType.

0 commit comments

Comments
 (0)