00001 #ifndef VELODYNEUTILS_DATA_HPP
00002 #define VELODYNEUTILS_DATA_HPP
00003
00004 #include <iostream>
00005
00006 #include <boost/shared_ptr.hpp>
00007
00008 namespace jafar {
00009 namespace velodyneutils {
00010
00011 template<typename DataType>
00012 class Data {
00013 public:
00014 typedef boost::shared_ptr<DataType> DataTypePtr;
00015 typedef boost::shared_ptr<const DataType> DataTypeConstPtr;
00016
00017 Data(DataTypePtr& dataIn);
00018 ~Data();
00019
00020 int getTime() const;
00021 void increaseTime();
00022 DataTypePtr& get();
00023 const DataTypeConstPtr& get() const;
00024 void print() const;
00025
00026 private:
00027 DataTypePtr data;
00028 int time;
00029 };
00030
00031 template<typename DataType>
00032 std::ostream& operator<<(std::ostream& s, const Data<DataType>& data);
00033
00034 }
00035 }
00036
00037 #endif