NetworkSocketAPI
Dependents: HelloWizFi250Interface
Fork of NetworkSocketAPI by
Revision 113:80ba92c5e5ca, committed 2016-04-20
- Comitter:
- Christopher Haster
- Date:
- Wed Apr 20 11:04:24 2016 -0500
- Parent:
- 112:e0cbb3e43c20
- Child:
- 114:964eba6394bc
- Commit message:
- Separate Stack/Interface concept into two distinct classes
Fixes issue with virtual inheritance and provides a better
separation of concerns.
Changed in this revision
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CellularInterface.h Wed Apr 20 11:04:24 2016 -0500 @@ -0,0 +1,45 @@ +/* CellularInterface + * Copyright (c) 2015 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef CELLULAR_INTERFACE_H +#define CELLULAR_INTERFACE_H + +#include "NetworkStack.h" + +/** CellularInterface class + * + * Common interface that is shared between ethernet hardware + */ +class CellularInterface +{ +public: + /** Start the interface + * + * @param apn Optional name of the network to connect to + * @param username Optional username for your APN + * @param password Optional password for your APN + * @return 0 on success, negative error code on failure + */ + virtual int connect(const char *apn = 0, const char *username = 0, const char *password = 0) = 0; + + /** Stop the interface + * + * @return 0 on success, negative error code on failure + */ + virtual int disconnect() = 0; +}; + +#endif
--- a/CellularStack.h Wed Apr 20 03:19:26 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* CellularStack - * Copyright (c) 2015 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef CELLULAR_INTERFACE_H -#define CELLULAR_INTERFACE_H - -#include "NetworkStack.h" - -/** CellularStack class - * - * Common interface that is shared between ethernet hardware - */ -class CellularStack : public NetworkStack -{ -public: - /** Start the interface - * - * @param apn Optional name of the network to connect to - * @param username Optional username for your APN - * @param password Optional password for your APN - * @return 0 on success, negative error code on failure - */ - virtual int connect(const char *apn = 0, const char *username = 0, const char *password = 0) = 0; - - /** Stop the interface - * - * @return 0 on success, negative error code on failure - */ - virtual int disconnect() = 0; -}; - -#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/EthernetInterface.h Wed Apr 20 11:04:24 2016 -0500 @@ -0,0 +1,42 @@ +/* EthernetInterface + * Copyright (c) 2015 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ETHERNET_INTERFACE_H +#define ETHERNET_INTERFACE_H + +#include "NetworkStack.h" + +/** EthernetInterface class + * + * Common interface that is shared between ethernet hardware. + */ +class EthernetInterface +{ +public: + /** Start the interface + * + * @return 0 on success, negative error code on failure + */ + virtual int connect() = 0; + + /** Stop the interface + * + * @return 0 on success, negative error code on failure + */ + virtual int disconnect() = 0; +}; + +#endif
--- a/EthernetStack.h Wed Apr 20 03:19:26 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* EthernetStack - * Copyright (c) 2015 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef ETHERNET_INTERFACE_H -#define ETHERNET_INTERFACE_H - -#include "NetworkStack.h" - -/** EthernetStack class - * - * Common interface that is shared between ethernet hardware. - */ -class EthernetStack : public NetworkStack -{ -public: - /** Start the interface - * - * @return 0 on success, negative error code on failure - */ - virtual int connect() = 0; - - /** Stop the interface - * - * @return 0 on success, negative error code on failure - */ - virtual int disconnect() = 0; -}; - -#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MeshInterface.h Wed Apr 20 11:04:24 2016 -0500 @@ -0,0 +1,42 @@ +/* MeshInterface + * Copyright (c) 2015 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MESH_INTERFACE_H +#define MESH_INTERFACE_H + +#include "NetworkStack.h" + +/** MeshInterface class + * + * Common interface that is shared between mesh hardware + */ +class MeshInterface +{ +public: + /** Start the interface + * + * @return 0 on success, negative on failure + */ + virtual int connect() = 0; + + /** Stop the interface + * + * @return 0 on success, negative on failure + */ + virtual int disconnect() = 0; +}; + +#endif
--- a/MeshStack.h Wed Apr 20 03:19:26 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* MeshStack - * Copyright (c) 2015 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef MESH_INTERFACE_H -#define MESH_INTERFACE_H - -#include "NetworkStack.h" - -/** MeshStack class - * - * Common interface that is shared between mesh hardware - */ -class MeshStack : public NetworkStack -{ -public: - /** Start the interface - * - * @return 0 on success, negative on failure - */ - virtual int connect() = 0; - - /** Stop the interface - * - * @return 0 on success, negative on failure - */ - virtual int disconnect() = 0; -}; - -#endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/WiFiInterface.h Wed Apr 20 11:04:24 2016 -0500 @@ -0,0 +1,62 @@ +/* WiFiInterface + * Copyright (c) 2015 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef WIFI_INTERFACE_H +#define WIFI_INTERFACE_H + +#include "NetworkStack.h" + +/** Enum of WiFi encryption types + * + * The security type specifies a particular security to use when + * connected to a WiFi network + * + * @enum nsapi_protocol_t + */ +enum nsapi_security_t { + NSAPI_SECURITY_NONE = 0, /*!< open access point */ + NSAPI_SECURITY_WEP, /*!< phrase conforms to WEP */ + NSAPI_SECURITY_WPA, /*!< phrase conforms to WPA */ + NSAPI_SECURITY_WPA2, /*!< phrase conforms to WPA2 */ +}; + +/** WiFiInterface class + * + * Common interface that is shared between WiFi devices + */ +class WiFiInterface +{ +public: + /** Start the interface + * + * Attempts to connect to a WiFi network. If passphrase is invalid, + * NSAPI_ERROR_AUTH_ERROR is returned. + * + * @param ssid Name of the network to connect to + * @param pass Security passphrase to connect to the network + * @param security Type of encryption for connection + * @return 0 on success, negative error code on failure + */ + virtual int connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE) = 0; + + /** Stop the interface + * + * @return 0 on success, negative error code on failure + */ + virtual int disconnect() = 0; +}; + +#endif
--- a/WiFiStack.h Wed Apr 20 03:19:26 2016 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* WiFiStack - * Copyright (c) 2015 ARM Limited - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef WIFI_INTERFACE_H -#define WIFI_INTERFACE_H - -#include "NetworkStack.h" - -/** Enum of WiFi encryption types - * - * The security type specifies a particular security to use when - * connected to a WiFi network - * - * @enum nsapi_protocol_t - */ -enum nsapi_security_t { - NSAPI_SECURITY_NONE = 0, /*!< open access point */ - NSAPI_SECURITY_WEP, /*!< phrase conforms to WEP */ - NSAPI_SECURITY_WPA, /*!< phrase conforms to WPA */ - NSAPI_SECURITY_WPA2, /*!< phrase conforms to WPA2 */ -}; - -/** WiFiStack class - * - * Common interface that is shared between WiFi devices - */ -class WiFiStack : public NetworkStack -{ -public: - /** Start the interface - * - * Attempts to connect to a WiFi network. If passphrase is invalid, - * NSAPI_ERROR_AUTH_ERROR is returned. - * - * @param ssid Name of the network to connect to - * @param pass Security passphrase to connect to the network - * @param security Type of encryption for connection - * @return 0 on success, negative error code on failure - */ - virtual int connect(const char *ssid, const char *pass, nsapi_security_t security = NSAPI_SECURITY_NONE) = 0; - - /** Stop the interface - * - * @return 0 on success, negative error code on failure - */ - virtual int disconnect() = 0; -}; - -#endif