MODIFIED from mbed official WiflyInterface (interface for Roving Networks Wifly modules). Numerous performance and reliability improvements (see the detailed documentation). Also, tracking changes in mbed official version to retain functional parity.

Dependents:   Smart-WiFly-WebServer PUB_WiflyInterface_Demo

Fork of WiflyInterface by mbed official

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Socket.h Source File

Socket.h

00001 /* Copyright (C) 2012 mbed.org, MIT License
00002  *
00003  * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
00004  * and associated documentation files (the "Software"), to deal in the Software without restriction,
00005  * including without limitation the rights to use, copy, modify, merge, publish, distribute,
00006  * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
00007  * furnished to do so, subject to the following conditions:
00008  *
00009  * The above copyright notice and this permission notice shall be included in all copies or
00010  * substantial portions of the Software.
00011  *
00012  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
00013  * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
00014  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
00015  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
00016  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
00017  *
00018  * Changes relative to mbed official version and others as identified
00019  * in the thread http://mbed.org/forum/team-165-components-community/topic/4844/?page=1#comment-24108
00020  * Socket:
00021  * @li Improve documentation
00022  * @li revised the blocking / non-blocking mode
00023  * @li derived from 4:0bcec6272784
00024  */
00025 #ifndef SOCKET_H_
00026 #define SOCKET_H_
00027 
00028 #include "Wifly.h"
00029 
00030 /** Socket file descriptor and select wrapper
00031   */
00032 class Socket {
00033 public:
00034     /** Socket
00035      */
00036     Socket();
00037     
00038     /** Set blocking or non-blocking mode of the socket and a timeout on
00039         blocking socket operations
00040     @param blocking  true for blocking mode, false for non-blocking mode.
00041     @param timeout   timeout in ms [Default: (1500)ms] when non-blocking.
00042     @note if timeout is < 1 msec, it is set to 1 to avoid problems
00043           in other parts of the socket interface.
00044     */
00045     void set_blocking(bool blocking, unsigned int timeout=1500);
00046     
00047     /** Close the socket file descriptor
00048      */
00049     int close();
00050     
00051     ~Socket();
00052     
00053 protected:
00054     bool _blocking;
00055     int _timeout;
00056     Wifly * wifi;
00057 };
00058 
00059 
00060 #endif /* SOCKET_H_ */