2
2
3
3
/* -------------------------------------------------------------------------- */
4
4
WiFiClient::WiFiClient () : _sock(-1 ), destroy_at_distructor(true ), rx_buffer(nullptr ) {
5
- rx_buffer = new FifoBuffer<uint8_t ,RX_BUFFER_DIM>();
5
+ rx_buffer = shared_ptr<FifoBuffer< uint8_t ,RX_BUFFER_DIM>>( new FifoBuffer<uint8_t ,RX_BUFFER_DIM>() );
6
6
}
7
7
/* -------------------------------------------------------------------------- */
8
8
9
9
/* -------------------------------------------------------------------------- */
10
10
WiFiClient::WiFiClient (int s) : _sock(s), destroy_at_distructor(false ), rx_buffer(nullptr ) {
11
- rx_buffer = new FifoBuffer<uint8_t ,RX_BUFFER_DIM>();
11
+ rx_buffer = shared_ptr<FifoBuffer< uint8_t ,RX_BUFFER_DIM>>( new FifoBuffer<uint8_t ,RX_BUFFER_DIM>() );
12
12
}
13
13
/* -------------------------------------------------------------------------- */
14
14
15
15
/* -------------------------------------------------------------------------- */
16
- WiFiClient::~WiFiClient () {
17
- if (destroy_at_distructor) {
18
- clear_buffer ();
19
- }
20
- }
16
+ WiFiClient::~WiFiClient () { }
21
17
/* -------------------------------------------------------------------------- */
22
18
23
- void WiFiClient::clear_buffer () {
24
- if (rx_buffer != nullptr ) {
25
- delete rx_buffer;
26
- rx_buffer = nullptr ;
27
- }
28
- }
29
-
30
-
31
19
/* -------------------------------------------------------------------------- */
32
20
WiFiClient::WiFiClient (const WiFiClient& c) {
33
21
/* -------------------------------------------------------------------------- */
34
22
_sock = c._sock ;
35
23
rx_buffer = c.rx_buffer ;
36
24
}
37
25
38
-
39
26
/* -------------------------------------------------------------------------- */
40
27
void WiFiClient::getSocket () {
41
28
/* -------------------------------------------------------------------------- */
@@ -48,8 +35,6 @@ void WiFiClient::getSocket() {
48
35
}
49
36
}
50
37
51
-
52
-
53
38
/* -------------------------------------------------------------------------- */
54
39
int WiFiClient::connect (IPAddress ip, uint16_t port){
55
40
/* -------------------------------------------------------------------------- */
@@ -113,6 +98,7 @@ int WiFiClient::available(){
113
98
modem.begin ();
114
99
if (modem.write (string (PROMPT (_AVAILABLE)),res, " %s%d\r\n " , CMD_WRITE (_AVAILABLE), _sock)) {
115
100
rv = atoi (res.c_str ());
101
+
116
102
}
117
103
}
118
104
}
@@ -131,15 +117,14 @@ int WiFiClient::_read() {
131
117
/* important - it works one shot */
132
118
modem.avoid_trim_results ();
133
119
modem.read_using_size ();
120
+
134
121
if (modem.write (string (PROMPT (_CLIENTRECEIVE)),res, " %s%d,%d\r\n " , CMD_WRITE (_CLIENTRECEIVE), _sock, size)) {
135
122
for (int i = 0 , rv = 0 ; i < size && i < res.size (); i++) {
136
123
rx_buffer->store ((uint8_t )res[i]);
137
124
rv++;
138
125
}
139
126
}
140
127
}
141
-
142
-
143
128
return rv;
144
129
}
145
130
0 commit comments