19 #ifndef SNARK_SENSORS_VELODYNE_IMPL_STREAMTRAITS_H_
20 #define SNARK_SENSORS_VELODYNE_IMPL_STREAMTRAITS_H_
22 #include <boost/date_time/posix_time/posix_time.hpp>
23 #include "./pcap_reader.h"
24 #include "./proprietary_reader.h"
26 namespace snark {
namespace velodyne {
namespace impl {
28 template <
typename S >
32 static const char* read( S& s, std::size_t size ) {
return s.read(); }
35 static boost::posix_time::ptime timestamp(
const S& s ) {
return s.timestamp(); }
37 static void close( S& s ) { s.close(); }
41 struct stream_traits< proprietary_reader >
43 static const char* read( proprietary_reader& s, std::size_t ) {
return s.read(); }
45 static boost::posix_time::ptime timestamp(
const proprietary_reader& s ) {
return s.timestamp(); }
47 static void close( proprietary_reader& s ) { s.close(); }
51 struct stream_traits< pcap_reader >
53 static const char* read( pcap_reader& s, std::size_t size )
55 const char* r = s.read();
56 if( r == NULL ) {
return NULL; }
60 static boost::posix_time::ptime timestamp(
const pcap_reader& s ) {
return s.timestamp(); }
62 static void close( pcap_reader& s ) { s.close(); }
67 #endif // SNARK_SENSORS_VELODYNE_IMPL_STREAMTRAITS_H_