00001 00018 #ifndef SICK_LMS_1XX_BUFFER_MONITOR_HH 00019 #define SICK_LMS_1XX_BUFFER_MONITOR_HH 00020 00021 #define DEFAULT_SICK_LMS_1XX_BYTE_TIMEOUT (100000) ///< Max allowable time between consecutive bytes 00022 00023 /* Definition dependencies */ 00024 #include "SickLMS1xxMessage.hh" 00025 #include "SickBufferMonitor.hh" 00026 #include "SickException.hh" 00027 00028 /* Associate the namespace */ 00029 namespace SickToolbox { 00030 00034 class SickLMS1xxBufferMonitor : public SickBufferMonitor< SickLMS1xxBufferMonitor, SickLMS1xxMessage > { 00035 00036 public: 00037 00039 SickLMS1xxBufferMonitor( ); 00040 00042 void GetNextMessageFromDataStream( SickLMS1xxMessage &sick_message ) throw( SickIOException ); 00043 00045 ~SickLMS1xxBufferMonitor( ); 00046 00047 private: 00048 00049 /* A utility function for flushing the receive buffer */ 00050 void _flushTCPRecvBuffer( ) const throw ( SickIOException ); 00051 00052 }; 00053 00054 } /* namespace SickToolbox */ 00055 00056 #endif /* SICK_LMS_1XX_BUFFER_MONITOR_HH */