]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/sg_socket.hxx
Unit test for SGBinObj, and fix a bug in large-indice handling the test revealed.
[simgear.git] / simgear / io / sg_socket.hxx
index 4e1d9e0513e683025692ffc019c3cb7b3519c35e..8341cb34b5aef1e7c2dda27463e6960e676aac0c 100644 (file)
@@ -5,7 +5,7 @@
 
 // Written by Curtis Olson, started November 1999.
 //
-// Copyright (C) 1999  Curtis L. Olson - curt@flightgear.org
+// Copyright (C) 1999  Curtis L. Olson - http://www.flightgear.org/~curt
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License as
@@ -19,7 +19,7 @@
 //
 // You should have received a copy of the GNU General Public License
 // along with this program; if not, write to the Free Software
-// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 //
 // $Id$
 
 #ifndef _SG_SOCKET_HXX
 #define _SG_SOCKET_HXX
 
-
-#ifndef __cplusplus
-# error This library requires C++
-#endif
-
 #include <simgear/compiler.h>
 
-#include STL_STRING
+#include <string>
 
 #include <simgear/math/sg_types.hxx>
 #include <simgear/io/iochannel.hxx>
-
-#include <plib/netSocket.h>
-
-SG_USING_STD(string);
+#include <simgear/io/raw_socket.hxx>
 
 #define SG_MAX_SOCKET_QUEUE 32
 
@@ -52,18 +44,19 @@ SG_USING_STD(string);
 class SGSocket : public SGIOChannel {
 public:
 private:
-    string hostname;
-    string port_str;
+    std::string hostname;
+    std::string port_str;
 
     char save_buf[ 2 * SG_IO_MAX_MSG_SIZE ];
     int save_len;
 
-    netSocket sock;
-    netSocket* client;
+    simgear::Socket sock;
+    simgear::Socket* client;
     unsigned short port;
     bool is_tcp;
     bool is_server;
     bool first_read;
+    int timeout;
 
     static bool init;
 
@@ -125,7 +118,7 @@ public:
      * @param port port number if we care to choose one.
      * @param style specify "udp" or "tcp"
      */
-    SGSocket( const string& host, const string& port, const string& style );
+    SGSocket( const std::string& host, const std::string& port, const std::string& style );
 
     /** Destructor */
     ~SGSocket();
@@ -156,11 +149,14 @@ public:
      */
     bool nonblock();
 
+    // set timeout (default: 0)
+    inline void set_timeout(int i) { timeout = i; }
+
     /** @return the remote host name */
-    inline string get_hostname() const { return hostname; }
+    inline std::string get_hostname() const { return hostname; }
 
     /** @return the port number (in string form) */
-    inline string get_port_str() const { return port_str; }
+    inline std::string get_port_str() const { return port_str; }
 };