36 #define foreach BOOST_FOREACH 56 if (view !=
NULL && !end)
93 if (start != range->
end)
98 while (iter !=
iters_.back().iter)
110 return other.
iters_.empty();
137 std::multiset<IndexEntry>::const_iterator last_iter =
iters_.back().iter;
139 while (
iters_.back().iter == last_iter)
172 addQuery(bag, start_time, end_time);
195 if (range->
begin->time < begin)
196 begin = range->
begin->time;
210 std::multiset<IndexEntry>::const_iterator
e = range->
end;
281 multiset<IndexEntry>
const&
index = j->second;
286 std::multiset<IndexEntry>::const_iterator
end = index.upper_bound({ q->
query.
getEndTime() , 0, 0 });
289 while (begin != index.begin())
306 for (vector<MessageRange*>::iterator k =
ranges_.begin(); k !=
ranges_.end(); k++) {
336 std::vector<const ConnectionInfo*> connections;
BagMode getMode() const
Get the mode the bag is in.
boost::function< bool(ConnectionInfo const *)> const & getQuery() const
Get the query functor.
rs2rosinternal::Time getEndTime()
std::vector< const ConnectionInfo * > getConnections()
bool equal(iterator const &other) const
std::map< uint32_t, ConnectionInfo * > connections_
ROSTIME_DECL const Time TIME_MAX
The actual iterator data structure.
MessageInstance * newMessageInstance(ConnectionInfo const *connection_info, IndexEntry const &index, Bag const &bag)
Base class for rosbag exceptions.
GLsizei const GLchar *const * string
An iterator that points to a MessageInstance from a bag.
rs2rosinternal::Time getBeginTime()
GLsizei GLsizei GLfloat distance
void sort(sort_type m_sort_type, const std::string &in, const std::string &out)
iterator & operator=(iterator const &i)
MessageInstance * message_instance_
void updateQueries(BagQuery *q)
A class pointing into a bag file.
std::multiset< IndexEntry >::const_iterator iter
Time representation. May either represent wall clock time or ROS clock time.
ConnectionInfo const * connection_info
rs2rosinternal::Time const & getEndTime() const
Get the end-time.
BagQuery const * bag_query
pointer to vector of queries in View
std::map< uint32_t, std::multiset< IndexEntry > > connection_indexes_
std::vector< ViewIterHelper > iters_
MessageRange const * range
pointer to vector of ranges in View
std::multiset< IndexEntry >::const_iterator begin
Pairs of queries and the bags they come from (used internally by View)
std::vector< MessageRange * > ranges_
rs2rosinternal::Time const & getStartTime() const
Get the start-time.
GLdouble GLdouble GLdouble q
ROSTIME_DECL const Time TIME_MIN
void populateSeek(std::multiset< IndexEntry >::const_iterator iter)
iterator end()
Default constructed iterator signifies end.
iterator begin()
Simply copy the merge_queue state into the iterator.
std::vector< BagQuery * > queries_
View(bool const &reduce_overlap=false)
Create a view on a bag.
std::multiset< IndexEntry >::const_iterator end
MessageInstance & dereference() const
void addQuery(Bag const &bag, rs2rosinternal::Time const &start_time=rs2rosinternal::TIME_MIN, rs2rosinternal::Time const &end_time=rs2rosinternal::TIME_MAX)
Add a query to a view.
GeneratorWrapper< T > map(Func &&function, GeneratorWrapper< U > &&generator)