Using a class for this structure is more idiomatic C++, allows
future deprecations, and more flexibility of the internal structure.
Additionally, this matches to design of the SocketAddress class
specific to the network-socket api.
Current asynchronous functions do not match the blocking/attach
pattern of the current codebase.
Unfortunately, the asynchronous api can not be updated in the
current time constraints. The async functions will be removed
for now and can be reconsidered at a later date.
This accomplishes two things:
1. Provides a simple route for adding static IP address support to the
base NetworkInterface
2. Provides a simple route for adding configurability to network
interfaces and unifies the network interface to consistent connect
call, allowing network interfaces to be passed around abstractly
NetworkInterface
- set_network
- set_dhcp
WiFiInterface
- set_credentials
CellularInterface
- set_credentials
General refactoring of the API and new methods added:
* get_rssi() - measures radio signal strenght
* get_state() - returns current state (not connected,
connecting, connected, error)
* scan() - scans for available networks sync and async versions
* connect_async() - connect to a network without blocking