NetworkSocketAPI

Dependencies:   DnsQuery

Dependents:   HelloWizFi250Interface

Fork of NetworkSocketAPI by NetworkSocketAPI

Files at this revision

API Documentation at this revision

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

CellularInterface.h Show annotated file Show diff for this revision Revisions of this file
CellularStack.h Show diff for this revision Revisions of this file
EthernetInterface.h Show annotated file Show diff for this revision Revisions of this file
EthernetStack.h Show diff for this revision Revisions of this file
MeshInterface.h Show annotated file Show diff for this revision Revisions of this file
MeshStack.h Show diff for this revision Revisions of this file
WiFiInterface.h Show annotated file Show diff for this revision Revisions of this file
WiFiStack.h Show diff for this revision Revisions of this file
--- /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