22
33/* -------------------------------------------------------------------------- */
44WiFiClient::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>() );
66}
77/* -------------------------------------------------------------------------- */
88
99/* -------------------------------------------------------------------------- */
1010WiFiClient::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>() );
1212}
1313/* -------------------------------------------------------------------------- */
1414
1515/* -------------------------------------------------------------------------- */
16- WiFiClient::~WiFiClient () {
17- if (destroy_at_distructor) {
18- clear_buffer ();
19- }
20- }
16+ WiFiClient::~WiFiClient () { }
2117/* -------------------------------------------------------------------------- */
2218
23- void WiFiClient::clear_buffer () {
24- if (rx_buffer != nullptr ) {
25- delete rx_buffer;
26- rx_buffer = nullptr ;
27- }
28- }
29-
30-
3119/* -------------------------------------------------------------------------- */
3220WiFiClient::WiFiClient (const WiFiClient& c) {
3321/* -------------------------------------------------------------------------- */
3422 _sock = c._sock ;
3523 rx_buffer = c.rx_buffer ;
3624}
3725
38-
3926/* -------------------------------------------------------------------------- */
4027void WiFiClient::getSocket () {
4128/* -------------------------------------------------------------------------- */
@@ -48,8 +35,6 @@ void WiFiClient::getSocket() {
4835 }
4936}
5037
51-
52-
5338/* -------------------------------------------------------------------------- */
5439int WiFiClient::connect (IPAddress ip, uint16_t port){
5540/* -------------------------------------------------------------------------- */
@@ -113,6 +98,7 @@ int WiFiClient::available(){
11398 modem.begin ();
11499 if (modem.write (string (PROMPT (_AVAILABLE)),res, " %s%d\r\n " , CMD_WRITE (_AVAILABLE), _sock)) {
115100 rv = atoi (res.c_str ());
101+
116102 }
117103 }
118104 }
@@ -131,15 +117,14 @@ int WiFiClient::_read() {
131117 /* important - it works one shot */
132118 modem.avoid_trim_results ();
133119 modem.read_using_size ();
120+
134121 if (modem.write (string (PROMPT (_CLIENTRECEIVE)),res, " %s%d,%d\r\n " , CMD_WRITE (_CLIENTRECEIVE), _sock, size)) {
135122 for (int i = 0 , rv = 0 ; i < size && i < res.size (); i++) {
136123 rx_buffer->store ((uint8_t )res[i]);
137124 rv++;
138125 }
139126 }
140127 }
141-
142-
143128 return rv;
144129}
145130
0 commit comments