]> git.mxchange.org Git - flightgear.git/blobdiff - src/FDM/JSBSim/input_output/FGfdmSocket.h
PAtch by Andreas Gaeb to eliminate NaN's in the location code
[flightgear.git] / src / FDM / JSBSim / input_output / FGfdmSocket.h
index 14330bfea4ecfca7a7d9471af35bee920d5b4630..7090c6fc288eb52d67c9225b50002c47f277b53d 100644 (file)
@@ -4,7 +4,7 @@
  Author:       Jon S. Berndt
  Date started: 11/08/99
 
- ------------- Copyright (C) 1999  Jon S. Berndt (jsb@hal-pc.org) -------------
+ ------------- Copyright (C) 1999  Jon S. Berndt (jon@jsbsim.org) -------------
 
  This program is free software; you can redistribute it and/or modify it under
  the terms of the GNU Lesser General Public License as published by the Free Software
@@ -39,54 +39,33 @@ SENTRY
 INCLUDES
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#include <stdio.h>
-
-#ifdef FGFS
-#  include <simgear/compiler.h>
-#  include STL_STRING
-#  include STL_IOSTREAM
-#  include STL_FSTREAM
-   SG_USING_STD(cout);
-   SG_USING_STD(endl);
-#else
-#  include <string>
-#  if defined(sgi) && !defined(__GNUC__) && (_COMPILER_VERSION < 740)
-#    include <iostream.h>
-#    include <fstream.h>
-#  else
-#    include <iostream>
-#    include <fstream>
-     using std::cout;
-     using std::endl;
-#  endif
-#endif
-
+#include <string>
+#include <sstream>
 #include <sys/types.h>
 #include "FGJSBBase.h"
 
-#if defined(__BORLANDC__) || defined(_MSC_VER) || defined(__MINGW32__)
+#if defined(_MSC_VER) || defined(__MINGW32__)
   #include <winsock.h>
   #include <io.h>
 #else
   #include <unistd.h>
   #include <sys/socket.h>
   #include <netinet/in.h>
+  #include <arpa/inet.h>
   #include <netdb.h>
   #include <errno.h>
   #include <sys/ioctl.h>
 #endif
 
 #ifdef _MSC_VER
-
-#pragma comment (lib,"WSock32.lib")
-
+#  pragma comment (lib,"WSock32.lib")
 #endif
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 DEFINITIONS
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-#define ID_FDMSOCKET "$Id$"
+#define ID_FDMSOCKET "$Id: FGfdmSocket.h,v 1.20 2010/10/15 11:30:28 jberndt Exp $"
 
 /*%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 FORWARD DECLARATIONS
@@ -107,39 +86,35 @@ CLASS DOCUMENTATION
 CLASS DECLARATION
 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%*/
 
-using std::string;
-using std::cerr;
-
 class FGfdmSocket : public FGJSBBase
 {
 public:
-  FGfdmSocket(string, int);
-  FGfdmSocket(string, int, int);
+  FGfdmSocket(const std::string&, int);
+  FGfdmSocket(const std::string&, int, int);
   FGfdmSocket(int);
   ~FGfdmSocket();
   void Send(void);
-  void Send(char *data, int length);
+  void Send(const char *data, int length);
 
-  string Receive(void);
-  int Reply(string text);
-  void Append(const string s) {Append(s.c_str());}
+  std::string Receive(void);
+  int Reply(const std::string& text);
+  void Append(const std::string& s) {Append(s.c_str());}
   void Append(const char*);
   void Append(double);
   void Append(long);
   void Clear(void);
-  void Clear(string s);
+  void Clear(const std::string& s);
   void Close(void);
   bool GetConnectStatus(void) {return connected;}
 
-  enum {ptUDP, ptTCP};
+  enum ProtocolType {ptUDP, ptTCP} ;
 
 private:
   int sckt;
   int sckt_in;
-  int size;
   struct sockaddr_in scktName;
   struct hostent *host;
-  string buffer;
+  std::ostringstream buffer;
   bool connected;
   void Debug(int from);
 };