00001 #ifndef GPSCONNECTOR_H_ 00002 #define GPSCONNECTOR_H_ 00003 00004 #include "emma/GPSProvider.h" 00005 #include "utils/Service.h" 00006 #include "utils/MutexLock.h" 00007 #include "utils/Mutex.h" 00008 #include <string> 00009 00010 using namespace dtn::utils; 00011 using namespace std; 00012 00013 namespace emma 00014 { 00015 class GPSConnector : public Service, public GPSProvider 00016 { 00017 public: 00018 GPSConnector(string host, unsigned int port); 00019 virtual ~GPSConnector(); 00020 00021 virtual double getTime(); 00022 virtual double getLongitude(); 00023 virtual double getLatitude(); 00024 00025 virtual GPSState getState(); 00026 00027 protected: 00028 virtual void tick(); 00029 virtual void initialize(); 00030 virtual void terminate(); 00031 00032 private: 00033 bool requestData(); 00034 bool readData(); 00035 void parseData(char *data, unsigned int size); 00036 bool connect(); 00037 void disconnect(); 00038 00039 void setState(GPSState state); 00040 00041 string m_host; 00042 unsigned int m_port; 00043 00044 GPSState m_state; 00045 double m_longitude; 00046 double m_latitude; 00047 double m_time; 00048 00049 Mutex m_datalock; 00050 Mutex m_socketlock; 00051 00052 unsigned int m_datatimeout; 00053 00054 int m_socket; 00055 }; 00056 } 00057 00058 #endif /*GPSCONNECTOR_H_*/
1.5.6