41 , allow_concurrent_callbacks_(allow_concurrent_callbacks)
50 bool has_tracked_object,
const VoidConstWPtr& tracked_object,
bool nonconst_need_copy,
67 ROS_DEBUG(
"Incoming queue was full for topic \"%s\". Discarded oldest message (current queue size [%d])",
topic_.c_str(), (int)
queue_.size());
107 boost::recursive_mutex::scoped_try_lock lock(
callback_mutex_, boost::defer_lock);
112 if (!lock.owns_lock())
157 self = shared_from_this();
159 catch (boost::bad_weak_ptr&)
176 boost::recursive_mutex::scoped_try_lock lock(
callback_mutex_, boost::try_to_lock);
177 return lock.owns_lock();
CallResult
Possible results for the call() method.
MessageDeserializerPtr deserializer
VoidConstWPtr tracked_object
boost::mutex queue_mutex_
SubscriptionCallbackHelperPtr helper
bool allow_concurrent_callbacks_
virtual CallbackInterface::CallResult call()
Call this callback.
void push(const SubscriptionCallbackHelperPtr &helper, const MessageDeserializerPtr &deserializer, bool has_tracked_object, const VoidConstWPtr &tracked_object, bool nonconst_need_copy, ros::Time receipt_time=ros::Time(), bool *was_full=0)
boost::recursive_mutex callback_mutex_
boost::weak_ptr< void const > VoidConstWPtr
SubscriptionQueue(const std::string &topic, int32_t queue_size, bool allow_concurrent_callbacks)
boost::function< MessagePtr()> CreateFunction
virtual bool ready()
Provides the opportunity for specifying that a callback is not ready to be called before call() actua...
Call not ready, try again later.
MessageEvent< void const > event