#ifndef BNCCASTER_H #define BNCCASTER_H #include #include #include #include "RTCM/GPSDecoder.h" #include "bncrinex.h" class bncGetThread; class bncCaster : public QObject { Q_OBJECT public: bncCaster(const QString& outFileName, int port); ~bncCaster(); void addGetThread(bncGetThread* getThread); int numStations() const {return _staIDs.size();} void newObs(const QByteArray& staID, const QUrl& mountPoint, bool firstObs, Observation* obs); signals: void getThreadErrors(); void newMessage(const QByteArray& msg); private slots: void slotNewConnection(); void slotGetThreadError(const QByteArray& staID); private: void dumpEpochs(long minTime, long maxTime); QFile* _outFile; int _port; QTextStream* _out; QMultiMap* _epochs; long _lastDumpSec; QTcpServer* _server; QList* _sockets; QList _staIDs; QMap _rinexWriters; QList _threads; int _samplingRate; long _waitTime; QMutex _mutex; }; #endif