Index: trunk/BNC/src/PPP/pppClient.cpp
===================================================================
--- trunk/BNC/src/PPP/pppClient.cpp	(revision 5771)
+++ trunk/BNC/src/PPP/pppClient.cpp	(revision 5772)
@@ -108,24 +108,23 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putGPSEphemeris(const t_ephGPS* eph) {
-  _ephPool->putEphemeris(new t_ephGPS(*eph));
-}
-
-// 
-//////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putGloEphemeris(const t_ephGlo* eph) {
-  _ephPool->putEphemeris(new t_ephGlo(*eph));
-}
-
-// 
-//////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putGalEphemeris(const t_ephGal* eph) {
-  _ephPool->putEphemeris(new t_ephGal(*eph));
-}
-
-// 
-//////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putOrbCorrections(int numCorr, const t_orbCorr* corr) {
-  for (int ii = 0; ii < numCorr; ii++) {
+void t_pppClient::putEphemeris(const t_eph* eph) {
+  const t_ephGPS* ephGPS = dynamic_cast<const t_ephGPS*>(eph);
+  const t_ephGlo* ephGlo = dynamic_cast<const t_ephGlo*>(eph);
+  const t_ephGal* ephGal = dynamic_cast<const t_ephGal*>(eph);
+  if      (ephGPS) {
+    _ephPool->putEphemeris(new t_ephGPS(*ephGPS));
+  }
+  else if (ephGlo) {
+    _ephPool->putEphemeris(new t_ephGlo(*ephGlo));
+  }
+  else if (ephGal) {
+    _ephPool->putEphemeris(new t_ephGal(*ephGal));
+  }
+}
+
+// 
+//////////////////////////////////////////////////////////////////////////////
+void t_pppClient::putOrbCorrections(const vector<t_orbCorr>& corr) {
+  for (unsigned ii = 0; ii < corr.size(); ii++) {
     _ephPool->putOrbCorrection(new t_orbCorr(corr[ii]));
   }
@@ -134,6 +133,6 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putClkCorrections(int numCorr, const t_clkCorr* corr) {
-  for (int ii = 0; ii < numCorr; ii++) {
+void t_pppClient::putClkCorrections(const vector<t_clkCorr>& corr) {
+  for (unsigned ii = 0; ii < corr.size(); ii++) {
     _ephPool->putClkCorrection(new t_clkCorr(corr[ii]));
   }
@@ -142,6 +141,6 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-void t_pppClient::putBiases(int numBiases, const t_satBiases* biases) {
-  for (int ii = 0; ii < numBiases; ii++) {
+void t_pppClient::putBiases(const vector<t_satBiases>& biases) {
+  for (unsigned ii = 0; ii < biases.size(); ii++) {
     _obsPool->putBiases(new t_satBias(biases[ii]));
   }
@@ -150,6 +149,6 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-t_irc t_pppClient::prepareObs(int numSat, const t_pppSatObs* satObs,
-                                 vector<t_satObs*>& obsVector, bncTime& epoTime) {
+t_irc t_pppClient::prepareObs(const vector<t_pppSatObs>& pppSatObs,
+                              vector<t_satObs*>& obsVector, bncTime& epoTime) {
   // Default 
   // -------
@@ -159,8 +158,8 @@
   // -----------------------------------
   int numValidGPS = 0;
-  for (int ii = 0; ii < numSat; ii++) {
-    char system = satObs[ii]._prn.system();
+  for (unsigned ii = 0; ii < pppSatObs.size(); ii++) {
+    char system = pppSatObs[ii]._prn.system();
     if (system == 'G' || (system == 'R' && OPT->useGlonass())) {
-      t_satObs* satObs = new t_satObs(satObs[ii]);
+      t_satObs* satObs = new t_satObs(pppSatObs[ii]);
       if (satObs->isValid()) {
         obsVector.push_back(satObs);
@@ -401,6 +400,5 @@
 // 
 //////////////////////////////////////////////////////////////////////////////
-void t_pppClient::processEpoch(int numSatRover, const t_pppSatObs* satObsRover,
-                             t_output* output) {
+void t_pppClient::processEpoch(const vector<t_pppSatObs>& pppSatObs, t_output* output) {
 
   try {
@@ -409,6 +407,5 @@
     // Prepare Observations of the Rover
     // ---------------------------------    
-    if (prepareObs(numSatRover, satObsRover, _obsRover, 
-                    _epoTimeRover) != success) {
+    if (prepareObs(pppSatObs, _obsRover, _epoTimeRover) != success) {
       return finish(failure);
     }
Index: trunk/BNC/src/PPP/pppClient.h
===================================================================
--- trunk/BNC/src/PPP/pppClient.h	(revision 5771)
+++ trunk/BNC/src/PPP/pppClient.h	(revision 5772)
@@ -23,12 +23,9 @@
   ~t_pppClient();                                                     
 
-  void putGPSEphemeris(const t_ephGPS* eph);                  
-  void putGloEphemeris(const t_ephGlo* eph);                  
-  void putGalEphemeris(const t_ephGal* eph);                  
-  void putOrbCorrections(int numCorr, const t_orbCorr* corr); 
-  void putClkCorrections(int numCorr, const t_clkCorr* corr); 
-  void putBiases(int numBiases, const t_satBiases* biases);   
-  void processEpoch(int numSatRover, const t_pppSatObs* satObsRover,
-                    t_output* output);                        
+  void putEphemeris(const t_eph* eph);                  
+  void putOrbCorrections(const std::vector<t_orbCorr>& corr); 
+  void putClkCorrections(const std::vector<t_clkCorr>& corr); 
+  void putBiases(const std::vector<t_satBiases>& biases);   
+  void processEpoch(const std::vector<t_pppSatObs>& pppSatObs, t_output* output);
 
   const t_ephPool* ephPool() const {return _ephPool;}
@@ -49,11 +46,10 @@
   void finish(t_irc irc);
   void clearObs();
-  t_irc prepareObs(int numSat, const t_pppSatObs* satObs,
-                        std::vector<t_satObs*>& obsVector, bncTime& epoTime);
+  t_irc prepareObs(const std::vector<t_pppSatObs>& pppSatObs,
+                   std::vector<t_satObs*>& obsVector, bncTime& epoTime);
   t_irc cmpModel(t_station* station, const ColumnVector& xyzc,
-                      std::vector<t_satObs*>& obsVector);
-  t_irc cmpBancroft(const bncTime& epoTime, 
-                         std::vector<t_satObs*>& obsVector, 
-                         ColumnVector& xyzc, bool print);
+                 std::vector<t_satObs*>& obsVector);
+  t_irc cmpBancroft(const bncTime& epoTime, std::vector<t_satObs*>& obsVector, 
+                    ColumnVector& xyzc, bool print);
   double cmpOffGG(std::vector<t_satObs*>& obsVector);
 
Index: trunk/BNC/src/PPP/pppThread.cpp
===================================================================
--- trunk/BNC/src/PPP/pppThread.cpp	(revision 5771)
+++ trunk/BNC/src/PPP/pppThread.cpp	(revision 5772)
@@ -118,5 +118,5 @@
   t_ephGPS eph;
   eph.set(&gpseph);
-  _pppClient->putGPSEphemeris(&eph);
+  _pppClient->putEphemeris(&eph);
 }
 
@@ -127,5 +127,5 @@
   t_ephGlo eph;
   eph.set(&gloeph);
-  _pppClient->putGloEphemeris(&eph);
+  _pppClient->putEphemeris(&eph);
 }
   
@@ -136,5 +136,5 @@
   t_ephGal eph;
   eph.set(&galeph);
-  _pppClient->putGalEphemeris(&eph);
+  _pppClient->putEphemeris(&eph);
 }
 
@@ -148,7 +148,7 @@
   }
 
-  // _pppClient->putOrbCorrections(int numCorr, const t_orbCorr* corr); 
-  // _pppClient->putClkCorrections(int numCorr, const t_clkCorr* corr); 
-  // _pppClient->putBiases(int numBiases, const t_satBiases* biases);   
+  // _pppClient->putOrbCorrections(const std::vector<t_orbCorr>& corr); 
+  // _pppClient->putClkCorrections(const std::vector<t_clkCorr>& corr); 
+  // _pppClient->putBiases(const std::vector<t_satBiases>& biases);   
 }
 //
@@ -157,6 +157,11 @@
   QMutexLocker locker(&_mutex);
 
-  QByteArray msg = "slotNewObs";
-  emit newMessage(msg, true);
+
+  vector<t_pppSatObs> satObs;
+  t_output            output;
+
+  _pppClient->processEpoch(satObs, &output);
+
+  emit newMessage(QByteArray(output._log.c_str()), true);
 }
     
