Commit Graph

33 Commits (a534c20a1745a4162158dda36247e6327c50b18a)

Author SHA1 Message Date
Christopher Haster f567252d3a Coalesce redundant events to reduce cpu usage in lazy implementations
*cough* esp8266 *cough*

this is especially important for event-loop based systems where
excessive events results in problematic memory consumption.
2016-06-06 16:35:12 -05:00
Russ Butler 64cd1f3dfb Fix SocketAddress constructor to support ipv6
Fix typo causing ipv6 addresses in the constructor to fail.
2016-05-17 08:24:10 -05:00
Christopher Haster dd6a24b76d Adopt Callback class in NetworkSocketAPI 2016-05-16 11:48:09 -05:00
Russ Butler b15e2c293e Add synchronization to the network socket API
Add mutexes to protect the network socket API.  Also use semaphores to
wait for read/write events.  Also fix a typo in the comments for
timeout.
2016-05-15 18:03:48 -05:00
Christopher Haster 7d9b5e6f76 Small bug fixes
mirrored from:
https://developer.mbed.org/teams/NetworkSocketAPI/code/NetworkSocketAPI/

- Fix bug with SocketAddress init per @c1728p9
- Fix issue with not passing interface through accept call
- Fix port issue in SocketAddress constructor
2016-05-13 11:41:17 -05:00
Christopher Haster 8304124a63 Add NSAPI_ERROR_PARAMETER
per @c1728p9
2016-05-13 11:41:16 -05:00
Christopher Haster bcab0fcef5 Added WFI to save power in temporary polling implementation 2016-05-13 11:41:15 -05:00
Christopher Haster 5475dd0404 Consolidate set_timeout/set_blocking behaviour
- Avoids ambiguity when both are used
- Matches Python behaviour
2016-05-13 11:41:14 -05:00
Christopher Haster d17fa4faad Separate Stack/Interface concept into two distinct classes 2016-05-13 11:41:13 -05:00
Christopher Haster 49ba2be3a7 Add standardized stack options 2016-05-13 11:41:11 -05:00
Christopher Haster 893dfec7e6 Added workaround for bug in newlib sscanf
https://bugs.launchpad.net/gcc-arm-embedded/+bug/1399224
2016-05-13 11:41:10 -05:00
Christopher Haster f4526e5b73 Fix race condition in socket close 2016-05-13 11:41:08 -05:00
Christopher Haster 16929af278 Rename Interface -> Stack
NetworkInterface  -> NetworkStack
EthernetInterface -> EthernetStack
WiFiInterface     -> WiFiStack
CellularInterface -> CellularStack
MeshInterface     -> MeshStack
2016-05-13 11:41:07 -05:00
Christopher Haster 55f7d29fc3 Revised documentation for Interface classes 2016-05-13 11:41:06 -05:00
Christopher Haster d43f8706d3 Revisited documentation for Socket API 2016-05-13 11:41:05 -05:00
Christopher Haster eab6d775ac Removed is_connected function
- Not supported by TCP/UDP protocols
- Uncommon and less useful with proper error handling
2016-05-13 11:41:04 -05:00
Christopher Haster 50a9143478 Revisited documentation for NetworkInterface specific methods 2016-05-13 11:41:03 -05:00
Christopher Haster e762b04f64 Added support for shortened form ipv6 addresses
supported:
    1.2.3.4
    1:2:3:4:5:6:7:8
    1:2::7:8
    ::

currently not supported:
    1:2:3:4:5:6:1.2.3.4
2016-05-13 11:41:01 -05:00
Christopher Haster 525c7b361c Revised stack specific configurations
Adds the following functions for direct configuration of interface
- (set|get)stackopt
- (set|get)sockopt
2016-05-13 11:41:00 -05:00
Christopher Haster c4506dc1c0 Move bind to Socket
Bind can operate on any IP socket and is not specific to a protocol
2016-05-13 11:40:59 -05:00
Russ Butler fa45131245 Fix ipv6 addr in SocketAddress
Correctly set and return the ipv6 address.
2016-05-13 11:40:58 -05:00
Christopher Haster 141b245dfc Added better support for SocketAddress/string addresses/ports 2016-05-13 11:40:57 -05:00
Christopher Haster d488f02f5e Move to SocketAddress in gethostbyname 2016-05-13 11:40:55 -05:00
Christopher Haster 62bb777c1f Added support for storing bytes directly in SocketAddress
Bytes are stored by default, however enough space is allocated in
a SocketAddress to generate the string representation if necessary.

Currently there is no support for shortened addresses
2016-05-13 11:40:54 -05:00
Christopher Haster 455f023949 Renamed NetworkInterface create/destroy methods to match Socket methods
- socket_create -> socket_open
- socket_destroy -> socket_close
2016-05-13 11:40:53 -05:00
Christopher Haster c33d246fa6 Move to single state-change interrupt
Pros
- Easier to implement
- More similar to SIGIO in BDS sockets

Cons
- Less information, but this information had a high risk of being
  faulty/spurious
2016-05-13 11:40:52 -05:00
Christopher Haster c3eec0322b Remove shutdown parameter from close call
Pros
- Simplifies interface
- Easier base implementation

Cons
- May need shutdown functionality, in this case shutdown
  can be added as another function in the future
2016-05-13 11:40:51 -05:00
Christopher Haster 71efccb1e8 Add open call as alternative to passing NetworkInterface at construction
Pros
- Allows memory to be statically allocated
- Avoids issues with Thread creation before entering main
- Matches existing APIs such as FunctionPointer and Ticker

Cons
- Does not enforce passing a NetworkInterface
2016-05-13 11:40:50 -05:00
Christopher Haster 106e459a64 Adopt mbed style doxygen comments
per @0xc0170
2016-05-13 11:40:49 -05:00
Russ Butler 98a8c49f00 Add mesh interface header file
Add the mesh interface header file.
2016-04-10 23:37:23 -05:00
Christopher Haster 8a5121aaff Reverted merge of FuncPtr (#10)
Replaced FuncPtr with FunctionPointer in NSAPI
2016-04-06 11:23:42 -05:00
Christopher Haster 03475f35bb Matched changes NetworkSocketAPI
Responded to feedback from mbed-client implementation
to introduce a full feature set that should support most
of the use cases for the API.
2016-04-06 08:50:56 -05:00
Bogdan Marinescu 882d3f4e48 Preparing new layout - added net/NetworkSocketAPI
Origin: https://developer.mbed.org/teams/NetworkSocketAPI/code/NetworkSocketAPI/
2016-04-05 16:40:57 +01:00