4 #ifndef ROSBAG_FANCY_BAGREADER_H 5 #define ROSBAG_FANCY_BAGREADER_H 16 #include <boost/make_shared.hpp> 28 :
std::runtime_error{what}
42 bool latching =
false;
44 std::uint64_t totalCount = 0;
72 ser::IStream stream(const_cast<uint8_t*>(m_data), m_size);
74 auto ret = boost::make_shared<M>();
75 ser::deserialize(stream, *ret);
79 const uint8_t*
data()
const 89 const uint8_t* m_data = nullptr;
120 std::shared_ptr<Private>
m_d;
143 void advanceWithPredicates(
const std::function<
bool(
const ConnectionInfo&)>& connPredicate,
const std::function<
bool(
const Message&)>& messagePredicate);
144 void findNextWithPredicates(
const std::function<
bool(
const ConnectionInfo&)>& connPredicate,
const std::function<
bool(
const Message&)>& messagePredicate);
149 std::vector<ConnectionInfo>& currentChunkConnections()
const;
166 explicit BagReader(
const std::string& filename);
191 std::unique_ptr<Private>
m_d;
198 namespace message_traits
203 struct MD5Sum<rosbag_fancy::BagReader::Message>
230 namespace serialization
235 template<
typename Stream>
static const char * value(const rosbag_fancy::BagReader::Message &m)
decltype(sizeof(void *)) typede size_t)
const BagReader * m_reader
bool operator!=(const BagView::Iterator &a, const BagView::Iterator &b)
const ConnectionMap & connections() const
bool operator==(const BagView::Iterator &a, const BagView::Iterator &b)
std::size_t numChunks() const
boost::shared_ptr< M > instantiate() const
Iterator findTime(const ros::Time &time) const
ros::Time endTime() const
static const char * value(const rosbag_fancy::BagReader::Message &m)
const uint8_t * data() const
std::unique_ptr< Private > m_d
ROS_FORCE_INLINE uint8_t * advance(uint32_t len)
static void write(Stream &stream, const rosbag_fancy::BagReader::Message &t)
BagReader(const std::string &filename)
const Connection * connection
Iterator chunkBegin(int chunk) const
std::map< std::uint32_t, Connection > ConnectionMap
std::input_iterator_tag iterator_category
std::shared_ptr< Private > m_d
Exception(const std::string &what)
ros::Time startTime() const
static uint32_t serializedLength(const rosbag_fancy::BagReader::Message &t)
static const char * value(const rosbag_fancy::BagReader::Message &m)
std::string topicAsPublished
ChunkIterator operator++(int)
int findChunk(const ros::Time &time) const
std::input_iterator_tag iterator_category
BagReader & operator=(const BagReader &)=delete