]> git.mxchange.org Git - flightgear.git/commitdiff
Work with revised NetChannel poll() API.
authorJames Turner <zakalawe@mac.com>
Sun, 9 Jun 2013 18:12:04 +0000 (19:12 +0100)
committerJames Turner <zakalawe@mac.com>
Sun, 9 Jun 2013 21:57:45 +0000 (22:57 +0100)
src/FDM/ExternalNet/ExternalNet.cxx
src/Network/httpd.cxx
src/Network/props.cxx
src/Network/props.hxx

index 9d2f3e7b2f2a4102dc2da4a944919faa1521f53d..aafa2c1041bfa58e2682aaa5b7d440c637b04b16 100644 (file)
@@ -42,7 +42,7 @@ class HTTPClient : public simgear::NetBufferChannel
 
     bool done;
     SGTimeStamp start;
-
+    simgear::NetChannelPoller poller;
 public:
 
     HTTPClient ( const char* host, int port, const char* path ) :
@@ -55,6 +55,7 @@ public:
   ::snprintf (buffer, 256, "GET %s HTTP/1.0\r\n\r\n", path );
        bufferSend(buffer, strlen(buffer) ) ;
 
+        poller.addChannel(this);
         start.stamp();
     }
 
@@ -78,6 +79,11 @@ public:
             return done;
         }
     }
+    
+    void poll(int timeout)
+    {
+        poller.poll(timeout);
+    }
 };
 
 FGExternalNet::FGExternalNet( double dt, string host, int dop, int dip, int cp )
index dca4c79bf8ec7e831dab9f301285801ded229491..745a14c9e9dc9cc9200cb8213c850a2dc951df16 100644 (file)
@@ -58,7 +58,7 @@ using std::string;
 class HttpdChannel : public simgear::NetChat
 {
     simgear::NetBuffer buffer;
-
+    
     string urlEncode(string);
     string urlDecode(string);
 
@@ -90,11 +90,18 @@ class HttpdServer : private simgear::NetChannel
 
         HttpdChannel *hc = new HttpdChannel;
         hc->setHandle ( handle );
+        poller.addChannel( hc );
     }
 
+    simgear::NetChannelPoller poller;
 public:
 
     HttpdServer ( int port );
+    
+    void poll()
+    {
+        poller.poll();
+    }
 };
 
 HttpdServer::HttpdServer(int port)
@@ -116,6 +123,8 @@ HttpdServer::HttpdServer(int port)
         SG_LOG( SG_IO, SG_ALERT, "Failed to listen on HTTP port.");
         return;
     }
+    
+    poller.addChannel(this);
 
     SG_LOG(SG_IO, SG_ALERT, "Httpd server started on port " << port);
 }
@@ -152,8 +161,7 @@ bool FGHttpd::open() {
 
 
 bool FGHttpd::process() {
-    simgear::NetChannel::poll();
-
+    server->poll();
     return true;
 }
 
index 5e88933d18e2e541a2bee356f0171c88ae7f1b55..58905e2f30a8a1c953cf05e017cac6d0239e0de4 100644 (file)
@@ -594,6 +594,8 @@ FGProps::open()
         return false;
     }
 
+    poller.addChannel(this);
+    
     SG_LOG( SG_IO, SG_INFO, "Props server started on port " << port );
 
     set_enabled( true );
@@ -616,7 +618,7 @@ FGProps::close()
 bool
 FGProps::process()
 {
-    simgear::NetChannel::poll();
+    poller.poll();
     return true;
 }
 
@@ -632,4 +634,5 @@ FGProps::handleAccept()
             << addr.getHost() << ":" << addr.getPort() );
     PropsChannel* channel = new PropsChannel();
     channel->setHandle( handle );
+    poller.addChannel( channel );
 }
index 09b5a09a323fdc0d8fda8fd4e545deb238ed323f..9e7405583ee3480df5d59338a06db61c1bfbb0fa 100644 (file)
@@ -49,7 +49,7 @@ private:
      * Server port to listen on.
      */
     int port;
-
+    simgear::NetChannelPoller poller;
 public:
     /**
      * Create a new TCP server.