modified by ohneta

Dependents:   HelloESP8266Interface_mine

Fork of NetworkSocketAPI by NetworkSocketAPI

Revision:
1:291a9d61e58a
Parent:
0:d35446f60233
Child:
2:ce08986b18b5
--- a/NetworkInterface.h	Mon May 11 05:51:41 2015 +0000
+++ b/NetworkInterface.h	Thu May 14 01:37:53 2015 +0000
@@ -14,8 +14,90 @@
  * limitations under the License.
  */
  
- #ifndef NETWORKINTERFACE_H
- #define NETWORKINTERFACE_H
+#ifndef NETWORKINTERFACE_H
+#define NETWORKINTERFACE_H
+
+/** NetworkInterface class.
+ *   This is a common interface that is shared between all hardware that connect
+ *   to a network over IP.
+ */
+class NetworkInterface {
  
- #endif
- 
\ No newline at end of file
+public:
+
+    /**
+     *    Initialize the network interface with DHCP.
+     *
+     *    \returns 0 on success, a negative number on failure
+     */
+    virtual int init() = 0; 
+    
+    /**
+     *    Initialize the network interface with a static IP address.
+     *
+     *    @param ip The static IP address to use
+     *    @param mask The IP address mask
+     *    @param gateway The gateway to use
+     *
+     *    \returns 0 on success, a negative number on failure
+     */
+    virtual int init(char* ip, char* mask, char *gateway) = 0;
+    
+    /**
+     *    Start the interface, using DHCP if needed.
+     *
+     *    @param timeout_ms Time in miliseconds to wait while attempting to connect before timing out
+     *
+     *    \returns 0 on success, a negative number on failure
+     */
+    virtual int connect(unsigned int timeout_ms=15000) = 0;
+    
+    /**
+     *    Start the interface, specifically for wifi based hardware, using DHCP if needed. This only needs to be implemented on wifi hardware.
+     *
+     *    @param ssid The SSID of the access point
+     *    @param phrase The passphrase, if needed, to connect
+     *    @param gateway The security type of the access point
+     *
+     *    \returns 0 on success, a negative number on failure
+     */
+    virtual int connect(char* ssid, char* phrase, char* security_type) = 0;
+    
+    /**
+     *    Stop the interface, bringing down dhcp if necessary.
+     *
+     *    \returns 0 on success, a negative number on failure
+     */
+    virtual int disconnect() = 0;
+    
+    /**
+     *    Get the current IP address.
+     *
+     *    \returns a pointer to a string containing the IP address.
+     */
+    virtual char* getIPAddress() = 0;
+    
+    /**
+     *    Get the current gateway address.
+     *
+     *    \returns a pointer to a string containing the gateway address.
+     */
+    virtual char* getGateway() = 0;
+    
+    
+    /**
+     *    Get the current network mask.
+     *
+     *    \returns a pointer to a string containing the network mask.
+     */
+    virtual char* getNetworkMask() = 0;
+    
+    /**
+     *    Get the current status of the interface connection.
+     *
+     *    \returns true if connected, false otherwise.
+     */
+    virtual bool isConnected(void) = 0;
+};
+
+#endif