Changeset 6443 in ntrip for trunk/BNC/src/bncephuser.cpp


Ignore:
Timestamp:
Dec 26, 2014, 12:47:27 PM (9 years ago)
Author:
mervart
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/BNC/src/bncephuser.cpp

    r6441 r6443  
    6767////////////////////////////////////////////////////////////////////////////
    6868bncEphUser::~bncEphUser() {
    69   QMapIterator<QString, t_ephPair*> it(_eph);
     69  QMapIterator<QString, deque<t_eph*> > it(_eph);
    7070  while (it.hasNext()) {
    7171    it.next();
    72     delete it.value();
     72    const deque<t_eph*>& qq = it.value();
     73    for (unsigned ii = 0; ii < qq.size(); ii++) {
     74      delete qq[ii];
     75    }
    7376  }
    7477}
     
    137140  QString prn(newEph->prn().toString().c_str());
    138141
    139   if (_eph.contains(prn)) {
    140     if (newEph->isNewerThan(_eph.value(prn)->last)) {
    141       delete _eph.value(prn)->prev;
    142       _eph.value(prn)->prev = _eph.value(prn)->last;
    143       _eph.value(prn)->last = newEph;
    144       ephBufferChanged();
    145       return success;
     142  const t_eph* ephOld = ephLast(prn);
     143
     144  if (ephOld == 0 || newEph->isNewerThan(ephOld)) {
     145    deque<t_eph*>& qq = _eph[prn];
     146    qq.push_back(newEph);
     147    if (qq.size() > _maxQueueSize) {
     148      delete qq.front();
     149      qq.pop_front();
    146150    }
    147   }
    148   else {
    149     _eph.insert(prn, new t_ephPair(newEph));
    150151    ephBufferChanged();
    151152    return success;
    152153  }
    153 
    154   return failure;
     154  else {
     155    return failure;
     156  }
    155157}
    156158
Note: See TracChangeset for help on using the changeset viewer.