Template Class MessageCollection

Class Documentation

template<class M>
class MessageCollection

Represents a collection of ROS Messages stored in a database. Each stored message in the db has a unique id, a creation time, and optional additional metadata stored as a dictionary

Public Types

typedef boost::shared_ptr<MessageCollection<M>> Ptr
typedef M message_type

Public Functions

MessageCollection(MessageCollectionHelper::Ptr collection)

Will connect to given database and collection. Collection is created if it doesn’t exist.

MessageCollection() = default

Default constructor.

void insert(const M &msg, Metadata::Ptr metadata)

Insert a ROS message, together with some optional metadata, into the db.

Throws

mongo::DBException – if unable to insert

Parameters

metadataMetadata to insert. Note that a unique id field _id and a field creation_time will be autogenerated for all messages.

QueryResults<M>::range_t query(Query::ConstPtr query, bool metadata_only = false, const std::string &sort_by = "", bool ascending = true) const
Return values

Iterator – range over matching messages

Parameters
  • query – A query object

  • metadata_only – If this is true, only retrieve the metadata (returned message objects will just be default constructed)

std::vector<typename MessageWithMetadata<M>::ConstPtr> queryList(Query::ConstPtr query, bool metadata_only = false, const std::string &sort_by = "", bool ascending = true) const

Convenience function that calls queryResult and puts the results into a vector.

MessageWithMetadata<M>::ConstPtr findOne(Query::ConstPtr query, bool metadata_only = false) const

Convenience function that returns a single matching result for the query.

Throws

NoMatchingMessageException

unsigned removeMessages(Query::ConstPtr query)

Remove messages matching query.

void modifyMetadata(Query::ConstPtr q, Metadata::ConstPtr m)

Modify metadata Find message matching q and update its metadata using m In other words, overwrite keys in the message using m, but keep keys that don’t occur in m.

unsigned count()

Count messages in collection.

bool md5SumMatches() const

Check if the md5 sum of the messages previously stored in the database matches that of the compiled message.

Query::Ptr createQuery() const
Metadata::Ptr createMetadata() const