Index: trunk/BNC/bnc.pro
===================================================================
--- trunk/BNC/bnc.pro	(revision 2034)
+++ trunk/BNC/bnc.pro	(revision 2035)
@@ -38,5 +38,5 @@
           bncnetqueryudp0.h bncudpport.h t_time.h                     \ 
           bncserialport.h bncnetquerys.h bncfigure.h                  \ 
-          bncfigurelate.h bncpppthread.h bncversion.h                 \ 
+          bncfigurelate.h bncpppclient.h bncversion.h                 \ 
           RTCM/GPSDecoder.h RTCM/RTCM2.h RTCM/RTCM2Decoder.h          \
           RTCM/RTCM2_2021.h RTCM/rtcm_utils.h                         \
@@ -65,5 +65,5 @@
           bncnetqueryudp0.cpp bncudpport.cpp                          \
           bncserialport.cpp bncnetquerys.cpp bncfigure.cpp            \
-          bncfigurelate.cpp bncpppthread.cpp t_time.cpp               \
+          bncfigurelate.cpp bncpppclient.cpp t_time.cpp               \
           RTCM/RTCM2.cpp RTCM/RTCM2Decoder.cpp                        \
           RTCM/RTCM2_2021.cpp RTCM/rtcm_utils.cpp                     \
Index: trunk/BNC/bnccaster.cpp
===================================================================
--- trunk/BNC/bnccaster.cpp	(revision 2034)
+++ trunk/BNC/bnccaster.cpp	(revision 2035)
@@ -47,5 +47,4 @@
 #include "bncutils.h"
 #include "bncsettings.h"
-#include "bncpppthread.h"
 #include "RTCM/GPSDecoder.h"
 
Index: trunk/BNC/bncgetthread.cpp
===================================================================
--- trunk/BNC/bncgetthread.cpp	(revision 2034)
+++ trunk/BNC/bncgetthread.cpp	(revision 2035)
@@ -63,5 +63,5 @@
 #include "bncsettings.h"
 #include "latencychecker.h"
-#include "bncpppthread.h"
+#include "bncpppclient.h"
 
 #include "RTCM/RTCM2Decoder.h"
@@ -123,5 +123,5 @@
   _nextSleep     = 0;
   _rawOutFile    = 0;
-  _PPPthread     = 0;
+  _PPPclient     = 0;
 
   bncSettings settings;
@@ -284,9 +284,12 @@
   // _rawOutFile->open(QIODevice::WriteOnly);
 
-  // Initialize PPP Clinet?
+  // Initialize PPP Client?
   // ----------------------
-  bool pppClient = false;
   if (settings.value("pppMount").toString() == _staID) {
-    pppClient = true;
+    _PPPclient = new bncPPPclient(_staID);
+    connect(((bncApp*)qApp), SIGNAL(newEphGPS(gpsephemeris)),
+	    _PPPclient, SLOT(slotNewEphGPS(gpsephemeris)));
+    connect(((bncApp*)qApp), SIGNAL(newCorrections(QList<QString>)),
+	    _PPPclient, SLOT(slotNewCorrections(QList<QString>)));
   }
 
@@ -297,7 +300,4 @@
     emit(newMessage(_staID + ": Get data in RTCM 2.x format", true));
     _decoder = new RTCM2Decoder(_staID.data());
-    if (pppClient) {
-      _PPPthread = new bncPPPthread(_staID);
-    }
   }
   else if (_format.indexOf("RTCM_3") != -1 || _format.indexOf("RTCM3") != -1 ||
@@ -307,14 +307,8 @@
     connect((RTCM3Decoder*) _decoder, SIGNAL(newMessage(QByteArray,bool)), 
             this, SIGNAL(newMessage(QByteArray,bool)));
-    if (pppClient) {
-      _PPPthread = new bncPPPthread(_staID);
-    }
   }
   else if (_format.indexOf("RTIGS") != -1) {
     emit(newMessage(_staID + ": Get data in RTIGS format", true));
     _decoder = new RTIGSDecoder();
-    if (pppClient) {
-      _PPPthread = new bncPPPthread(_staID);
-    }
   }
   else if (_format.indexOf("GPSS") != -1 || _format.indexOf("BNC") != -1) {
@@ -333,12 +327,4 @@
   _latencyChecker = new latencyChecker(_staID);
 
-  if (_PPPthread) {
-    connect(((bncApp*)qApp), SIGNAL(newEphGPS(gpsephemeris)),
-	    _PPPthread, SLOT(slotNewEphGPS(gpsephemeris)));
-    connect(((bncApp*)qApp), SIGNAL(newCorrections(QList<QString>)),
-	    _PPPthread, SLOT(slotNewCorrections(QList<QString>)));
-    ////    _PPPthread->start();  // currently processing in the same thread
-  }
-
   msleep(100); //sleep 0.1 sec
 }
@@ -347,17 +333,12 @@
 ////////////////////////////////////////////////////////////////////////////
 bncGetThread::~bncGetThread() {
-
-  if (_PPPthread) {
-    _PPPthread->terminate();
-  }
-
   if (isRunning()) {
     wait();
   }
-
   if (_query) {
     _query->stop();
     _query->deleteLater();
   }
+  delete _PPPclient;
   delete _decoder;
   delete _rnx;
@@ -501,6 +482,6 @@
         // PPP Client
         // ----------
-        if (_PPPthread) {
-          _PPPthread->putNewObs(obs);
+        if (_PPPclient) {
+          _PPPclient->putNewObs(obs);
         }
 
Index: trunk/BNC/bncgetthread.h
===================================================================
--- trunk/BNC/bncgetthread.h	(revision 2034)
+++ trunk/BNC/bncgetthread.h	(revision 2035)
@@ -39,5 +39,5 @@
 class QextSerialPort;
 class latencyChecker;
-class bncPPPthread;
+class bncPPPclient;
 
 class bncGetThread : public QThread {
@@ -122,5 +122,5 @@
    t_serialNMEA    _serialNMEA;
    QMutex          _mutex;
-   bncPPPthread*   _PPPthread;
+   bncPPPclient*   _PPPclient;
 };
 
Index: trunk/BNC/bncpppclient.cpp
===================================================================
--- trunk/BNC/bncpppclient.cpp	(revision 2035)
+++ trunk/BNC/bncpppclient.cpp	(revision 2035)
@@ -0,0 +1,209 @@
+// Part of BNC, a utility for retrieving decoding and
+// converting GNSS data streams from NTRIP broadcasters.
+//
+// Copyright (C) 2007
+// German Federal Agency for Cartography and Geodesy (BKG)
+// http://www.bkg.bund.de
+// Czech Technical University Prague, Department of Geodesy
+// http://www.fsv.cvut.cz
+//
+// Email: euref-ip@bkg.bund.de
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation, version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+/* -------------------------------------------------------------------------
+ * BKG NTRIP Client
+ * -------------------------------------------------------------------------
+ *
+ * Class:      bncPPPclient
+ *
+ * Purpose:    Precise Point Positioning
+ *
+ * Author:     L. Mervart
+ *
+ * Created:    21-Nov-2009
+ *
+ * Changes:    
+ *
+ * -----------------------------------------------------------------------*/
+
+#include <iomanip>
+#include <newmatio.h>
+
+#include "bncpppclient.h"
+
+extern "C" {
+#include "clock_orbit_rtcm.h"
+}
+
+using namespace std;
+
+// Constructor
+////////////////////////////////////////////////////////////////////////////
+bncPPPclient::bncPPPclient(QByteArray staID) {
+  _staID         = staID;
+  _data          = 0;
+  _dataHlp       = 0;
+}
+
+// Destructor
+////////////////////////////////////////////////////////////////////////////
+bncPPPclient::~bncPPPclient() {
+  delete _data;
+  delete _dataHlp;
+  QMapIterator<QString, t_eph*> it(_eph);
+  while (it.hasNext()) {
+    it.next();
+    delete it.value();
+  }
+  QMapIterator<QString, t_corr*> ic(_corr);
+  while (ic.hasNext()) {
+    ic.next();
+    delete ic.value();
+  }
+}
+
+//
+////////////////////////////////////////////////////////////////////////////
+void bncPPPclient::putNewObs(p_obs pp) {
+  {
+    QMutexLocker locker(&_mutex);
+    
+    t_obsInternal* obs = &(pp->_o);
+    
+    t_time tt(obs->GPSWeek, obs->GPSWeeks);
+    
+    if      (!_dataHlp) {
+      _dataHlp = new t_data();
+      _dataHlp->tt = tt;
+    }
+    else if (tt != _dataHlp->tt) {
+      _data = _dataHlp;
+      _dataHlp = new t_data();
+      _dataHlp->tt = tt;
+    }
+    
+    ++_dataHlp->numSat;
+    
+    if (_dataHlp->numSat > t_data::MAXOBS) {
+      cerr << "putNewObs: numSat > MAXOBS\n";
+      exit(1);
+    }
+    
+    _dataHlp->prn[_dataHlp->numSat] = 
+          QString("%1%2").arg(obs->satSys).arg(obs->satNum, 2, 10, QChar('0'));
+        
+    _dataHlp->C1[_dataHlp->numSat] = obs->C1;
+    _dataHlp->C2[_dataHlp->numSat] = obs->C2;
+    _dataHlp->P1[_dataHlp->numSat] = obs->P1;
+    _dataHlp->P2[_dataHlp->numSat] = obs->P2;
+    _dataHlp->L1[_dataHlp->numSat] = obs->L1;
+    _dataHlp->L2[_dataHlp->numSat] = obs->L2;
+  } // end of mutex
+
+  processEpoch(); // currently in the same thread as bncgetthread
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void bncPPPclient::slotNewEphGPS(gpsephemeris gpseph) {
+  QMutexLocker locker(&_mutex);
+
+  QString prn = QString("G%1").arg(gpseph.satellite, 2, 10, QChar('0'));
+
+  if (_eph.contains(prn)) {
+    (static_cast<t_ephGPS*>(_eph.value(prn)))->set(&gpseph);
+  }
+  else {
+    t_ephGPS* ee = new t_ephGPS();
+    ee->set(&gpseph);
+    _eph[prn] = ee;
+  }
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void bncPPPclient::slotNewCorrections(QList<QString> corrList) {
+  QMutexLocker locker(&_mutex);
+  QListIterator<QString> it(corrList);
+  while (it.hasNext()) {
+    QTextStream in(it.next().toAscii());
+    int     messageType;
+    int     updateInterval;
+    int     GPSweek;
+    double  GPSweeks;
+    QString prn;
+    in >> messageType >> updateInterval >> GPSweek >> GPSweeks >> prn;
+    if ( messageType == COTYPE_GPSCOMBINED     || 
+         messageType == COTYPE_GLONASSCOMBINED ) {
+      t_corr* cc = 0;
+      if (_corr.contains(prn)) {
+        cc = _corr.value(prn); 
+      }
+      else {
+        cc = new t_corr();
+        _corr[prn] = cc;
+      }
+      cc->tt.set(GPSweek, GPSweeks);
+      in >> cc->iod >> cc->dClk >> cc->rao[0] >> cc->rao[1] >> cc->rao[2];
+    }
+  }
+}
+
+// Satellite Position
+////////////////////////////////////////////////////////////////////////////
+t_irc bncPPPclient::getSatPos(const t_time& tt, const QString& prn, 
+                              ColumnVector& xc, ColumnVector& vv) {
+
+  if (_eph.contains(prn)) {
+    _eph.value(prn)->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
+    return success;
+  }
+
+  return failure;
+}
+
+// 
+////////////////////////////////////////////////////////////////////////////
+void bncPPPclient::processEpoch() {
+  QMutexLocker locker(&_mutex);
+
+  if (!_data) {
+    return;
+  }
+
+  for (int is = 1; is <= _data->numSat; is++) {
+    QString prn = _data->prn[is];
+
+    ColumnVector xc(4);
+    ColumnVector vv(3);
+
+    cout.setf(ios::fixed);
+
+    if (getSatPos(_data->tt, prn, xc, vv) == success) {
+      cout << _data->tt.timestr(1) << " " << prn.toAscii().data() << "   "
+           << setw(14) << setprecision(3) << xc(1)                << "  "
+           << setw(14) << setprecision(3) << xc(2)                << "  "
+           << setw(14) << setprecision(3) << xc(3)                << "  "
+           << setw(14) << setprecision(6) << xc(4)*1.e6           << endl;
+    }
+  }
+
+  cout << endl;
+  cout.flush();
+
+  delete _data;
+  _data = 0;
+}
+
Index: trunk/BNC/bncpppclient.h
===================================================================
--- trunk/BNC/bncpppclient.h	(revision 2035)
+++ trunk/BNC/bncpppclient.h	(revision 2035)
@@ -0,0 +1,90 @@
+// Part of BNC, a utility for retrieving decoding and
+// converting GNSS data streams from NTRIP broadcasters.
+//
+// Copyright (C) 2007
+// German Federal Agency for Cartography and Geodesy (BKG)
+// http://www.bkg.bund.de
+// Czech Technical University Prague, Department of Geodesy
+// http://www.fsv.cvut.cz
+//
+// Email: euref-ip@bkg.bund.de
+//
+// This program is free software; you can redistribute it and/or
+// modify it under the terms of the GNU General Public License
+// as published by the Free Software Foundation, version 2.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+//
+// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+#ifndef BNCPPPCLIENT_H
+#define BNCPPPCLIENT_H
+
+#include <QtNetwork>
+
+#include <newmat.h>
+
+#include "bncconst.h"
+#include "t_time.h"
+#include "RTCM/GPSDecoder.h"
+#include "RTCM3/ephemeris.h"
+
+#define MAXPRN = 
+
+class t_data {
+ public:
+  static const int MAXOBS = 56;
+  t_data() {numSat = 0;}
+  ~t_data() {}
+  t_time  tt;
+  int     numSat;  
+  QString prn[MAXOBS+1];
+  double  C1[MAXOBS+1];
+  double  C2[MAXOBS+1];
+  double  P1[MAXOBS+1];
+  double  P2[MAXOBS+1];
+  double  L1[MAXOBS+1];
+  double  L2[MAXOBS+1];
+};
+
+class t_corr {
+ public:
+  t_time tt;
+  int    iod;
+  double dClk;
+  double rao[3];
+};
+
+class bncPPPclient {
+ Q_OBJECT
+
+ public:
+  bncPPPclient(QByteArray staID);
+  ~bncPPPclient();
+  void putNewObs(p_obs pp);
+
+ signals:
+  void newMessage(QByteArray msg, bool showOnScreen);
+
+ public slots:
+  void slotNewEphGPS(gpsephemeris gpseph);
+  void slotNewCorrections(QList<QString> corrList);
+
+ private:
+  t_irc getSatPos(const t_time& tt, const QString& prn, 
+                  ColumnVector& xc, ColumnVector& vv);
+  void processEpoch();
+  QByteArray             _staID;
+  QMutex                 _mutex;
+  QMap<QString, t_eph*>  _eph;
+  QMap<QString, t_corr*> _corr;
+  t_data*                _data;
+  t_data*                _dataHlp;
+};
+
+#endif
Index: trunk/BNC/bncpppthread.cpp
===================================================================
--- trunk/BNC/bncpppthread.cpp	(revision 2034)
+++ 	(revision )
@@ -1,241 +1,0 @@
-// Part of BNC, a utility for retrieving decoding and
-// converting GNSS data streams from NTRIP broadcasters.
-//
-// Copyright (C) 2007
-// German Federal Agency for Cartography and Geodesy (BKG)
-// http://www.bkg.bund.de
-// Czech Technical University Prague, Department of Geodesy
-// http://www.fsv.cvut.cz
-//
-// Email: euref-ip@bkg.bund.de
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation, version 2.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-/* -------------------------------------------------------------------------
- * BKG NTRIP Client
- * -------------------------------------------------------------------------
- *
- * Class:      bncPPPthread
- *
- * Purpose:    Precise Point Positioning
- *
- * Author:     L. Mervart
- *
- * Created:    21-Nov-2009
- *
- * Changes:    
- *
- * -----------------------------------------------------------------------*/
-
-#include <iomanip>
-#include <newmatio.h>
-
-#include "bncpppthread.h"
-
-extern "C" {
-#include "clock_orbit_rtcm.h"
-}
-
-using namespace std;
-
-// Constructor
-////////////////////////////////////////////////////////////////////////////
-bncPPPthread::bncPPPthread(QByteArray staID) {
-  _staID         = staID;
-  _isToBeDeleted = false;
-  _data          = 0;
-  _dataHlp       = 0;
-}
-
-// Destructor
-////////////////////////////////////////////////////////////////////////////
-bncPPPthread::~bncPPPthread() {
-  if (isRunning()) {
-    wait();
-  }
-  delete _data;
-  delete _dataHlp;
-  QMapIterator<QString, t_eph*> it(_eph);
-  while (it.hasNext()) {
-    it.next();
-    delete it.value();
-  }
-  QMapIterator<QString, t_corr*> ic(_corr);
-  while (ic.hasNext()) {
-    ic.next();
-    delete ic.value();
-  }
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::terminate() {
-  _isToBeDeleted = true;
-  if (!isRunning()) {
-    delete this;
-  }
-}
-
-// Run
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::run() {
-  while (true) {
-    try {
-      if (_isToBeDeleted) {
-        QThread::exit(0);
-        this->deleteLater();
-        return;
-      }
-      processEpoch();
-    }
-    catch (...) {
-      emit(newMessage(_staID + "bncPPPthread exception", true));
-      _isToBeDeleted = true;
-    }
-  }
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::putNewObs(p_obs pp) {
-  {
-    QMutexLocker locker(&_mutex);
-    
-    t_obsInternal* obs = &(pp->_o);
-    
-    t_time tt(obs->GPSWeek, obs->GPSWeeks);
-    
-    if      (!_dataHlp) {
-      _dataHlp = new t_data();
-      _dataHlp->tt = tt;
-    }
-    else if (tt != _dataHlp->tt) {
-      _data = _dataHlp;
-      _dataHlp = new t_data();
-      _dataHlp->tt = tt;
-    }
-    
-    ++_dataHlp->numSat;
-    
-    if (_dataHlp->numSat > t_data::MAXOBS) {
-      cerr << "putNewObs: numSat > MAXOBS\n";
-      exit(1);
-    }
-    
-    _dataHlp->prn[_dataHlp->numSat] = 
-          QString("%1%2").arg(obs->satSys).arg(obs->satNum, 2, 10, QChar('0'));
-        
-    _dataHlp->C1[_dataHlp->numSat] = obs->C1;
-    _dataHlp->C2[_dataHlp->numSat] = obs->C2;
-    _dataHlp->P1[_dataHlp->numSat] = obs->P1;
-    _dataHlp->P2[_dataHlp->numSat] = obs->P2;
-    _dataHlp->L1[_dataHlp->numSat] = obs->L1;
-    _dataHlp->L2[_dataHlp->numSat] = obs->L2;
-  } // end of mutex
-
-  processEpoch(); // currently in the same thread as bncgetthread
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::slotNewEphGPS(gpsephemeris gpseph) {
-  QMutexLocker locker(&_mutex);
-
-  QString prn = QString("G%1").arg(gpseph.satellite, 2, 10, QChar('0'));
-
-  if (_eph.contains(prn)) {
-    (static_cast<t_ephGPS*>(_eph.value(prn)))->set(&gpseph);
-  }
-  else {
-    t_ephGPS* ee = new t_ephGPS();
-    ee->set(&gpseph);
-    _eph[prn] = ee;
-  }
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::slotNewCorrections(QList<QString> corrList) {
-  QMutexLocker locker(&_mutex);
-  QListIterator<QString> it(corrList);
-  while (it.hasNext()) {
-    QTextStream in(it.next().toAscii());
-    int     messageType;
-    int     updateInterval;
-    int     GPSweek;
-    double  GPSweeks;
-    QString prn;
-    in >> messageType >> updateInterval >> GPSweek >> GPSweeks >> prn;
-    if ( messageType == COTYPE_GPSCOMBINED     || 
-         messageType == COTYPE_GLONASSCOMBINED ) {
-      t_corr* cc = 0;
-      if (_corr.contains(prn)) {
-        cc = _corr.value(prn); 
-      }
-      else {
-        cc = new t_corr();
-        _corr[prn] = cc;
-      }
-      cc->tt.set(GPSweek, GPSweeks);
-      in >> cc->iod >> cc->dClk >> cc->rao[0] >> cc->rao[1] >> cc->rao[2];
-    }
-  }
-}
-
-// Satellite Position
-////////////////////////////////////////////////////////////////////////////
-t_irc bncPPPthread::getSatPos(const t_time& tt, const QString& prn, 
-                              ColumnVector& xc, ColumnVector& vv) {
-
-  if (_eph.contains(prn)) {
-    _eph.value(prn)->position(tt.gpsw(), tt.gpssec(), xc.data(), vv.data());
-    return success;
-  }
-
-  return failure;
-}
-
-// 
-////////////////////////////////////////////////////////////////////////////
-void bncPPPthread::processEpoch() {
-  QMutexLocker locker(&_mutex);
-
-  if (!_data) {
-    return;
-  }
-
-  for (int is = 1; is <= _data->numSat; is++) {
-    QString prn = _data->prn[is];
-
-    ColumnVector xc(4);
-    ColumnVector vv(3);
-
-    cout.setf(ios::fixed);
-
-    if (getSatPos(_data->tt, prn, xc, vv) == success) {
-      cout << _data->tt.timestr(1) << " " << prn.toAscii().data() << "   "
-           << setw(14) << setprecision(3) << xc(1)                << "  "
-           << setw(14) << setprecision(3) << xc(2)                << "  "
-           << setw(14) << setprecision(3) << xc(3)                << "  "
-           << setw(14) << setprecision(6) << xc(4)*1.e6           << endl;
-    }
-  }
-
-  cout << endl;
-  cout.flush();
-
-  delete _data;
-  _data = 0;
-}
-
Index: trunk/BNC/bncpppthread.h
===================================================================
--- trunk/BNC/bncpppthread.h	(revision 2034)
+++ 	(revision )
@@ -1,101 +1,0 @@
-// Part of BNC, a utility for retrieving decoding and
-// converting GNSS data streams from NTRIP broadcasters.
-//
-// Copyright (C) 2007
-// German Federal Agency for Cartography and Geodesy (BKG)
-// http://www.bkg.bund.de
-// Czech Technical University Prague, Department of Geodesy
-// http://www.fsv.cvut.cz
-//
-// Email: euref-ip@bkg.bund.de
-//
-// This program is free software; you can redistribute it and/or
-// modify it under the terms of the GNU General Public License
-// as published by the Free Software Foundation, version 2.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-// GNU General Public License for more details.
-//
-// 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
-#ifndef BNCPPPTHREAD_H
-#define BNCPPPTHREAD_H
-
-#include <QThread>
-#include <QtNetwork>
-
-#include <newmat.h>
-
-#include "bncconst.h"
-#include "t_time.h"
-#include "RTCM/GPSDecoder.h"
-#include "RTCM3/ephemeris.h"
-
-#define MAXPRN = 
-
-class t_data {
- public:
-  static const int MAXOBS = 56;
-  t_data() {numSat = 0;}
-  ~t_data() {}
-  t_time  tt;
-  int     numSat;  
-  QString prn[MAXOBS+1];
-  double  C1[MAXOBS+1];
-  double  C2[MAXOBS+1];
-  double  P1[MAXOBS+1];
-  double  P2[MAXOBS+1];
-  double  L1[MAXOBS+1];
-  double  L2[MAXOBS+1];
-};
-
-class t_corr {
- public:
-  t_time tt;
-  int    iod;
-  double dClk;
-  double rao[3];
-};
-
-class bncPPPthread : public QThread {
- Q_OBJECT
-
- public:
-  bncPPPthread(QByteArray staID);
-
- protected:
-  ~bncPPPthread();
-
- public:
-  void terminate();
-  void putNewObs(p_obs pp);
-
- signals:
-  void newMessage(QByteArray msg, bool showOnScreen);
-
-
- protected:
-  virtual void run();
-
- public slots:
-  void slotNewEphGPS(gpsephemeris gpseph);
-  void slotNewCorrections(QList<QString> corrList);
-
- private:
-  t_irc getSatPos(const t_time& tt, const QString& prn, 
-                  ColumnVector& xc, ColumnVector& vv);
-  void processEpoch();
-  QByteArray             _staID;
-  bool                   _isToBeDeleted;
-  QMutex                 _mutex;
-  QMap<QString, t_eph*>  _eph;
-  QMap<QString, t_corr*> _corr;
-  t_data*                _data;
-  t_data*                _dataHlp;
-};
-
-#endif
