Public Member Functions | Private Attributes | List of all members
ros::AsyncSpinner Class Reference

AsyncSpinner is a spinner that does not conform to the abstract Spinner interface. Instead, it spins asynchronously when you call start(), and stops when either you call stop(), ros::shutdown() is called, or its destructor is called. More...

#include <spinner.h>

Public Member Functions

 AsyncSpinner (uint32_t thread_count)
 Simple constructor. Uses the global callback queue. More...
 
 AsyncSpinner (uint32_t thread_count, CallbackQueue *queue)
 Constructor with custom callback queue. More...
 
bool canStart ()
 Check if the spinner can be started. The spinner shouldn't be started if another single-threaded spinner is already operating on the callback queue. More...
 
void start ()
 Start this spinner spinning asynchronously. More...
 
void stop ()
 Stop this spinner from running. More...
 

Private Attributes

AsyncSpinnerImplPtr impl_
 

Detailed Description

AsyncSpinner is a spinner that does not conform to the abstract Spinner interface. Instead, it spins asynchronously when you call start(), and stops when either you call stop(), ros::shutdown() is called, or its destructor is called.

AsyncSpinner is reference counted internally, so if you copy one it will continue spinning until all copies have destructed (or stop() has been called on one of them)

Definition at line 93 of file spinner.h.

Constructor & Destructor Documentation

◆ AsyncSpinner() [1/2]

ros::AsyncSpinner::AsyncSpinner ( uint32_t  thread_count)

Simple constructor. Uses the global callback queue.

Parameters
thread_countThe number of threads to use. A value of 0 means to use the number of processor cores

Definition at line 269 of file spinner.cpp.

◆ AsyncSpinner() [2/2]

ros::AsyncSpinner::AsyncSpinner ( uint32_t  thread_count,
CallbackQueue queue 
)

Constructor with custom callback queue.

Parameters
thread_countThe number of threads to use. A value of 0 means to use the number of processor cores
queueThe callback queue to operate on. A null value means to use the global queue

Definition at line 274 of file spinner.cpp.

Member Function Documentation

◆ canStart()

bool ros::AsyncSpinner::canStart ( )

Check if the spinner can be started. The spinner shouldn't be started if another single-threaded spinner is already operating on the callback queue.

This function is not necessary anymore. start() will always try to start spinning and throw a std::runtime_error if it failed.

Definition at line 279 of file spinner.cpp.

◆ start()

void ros::AsyncSpinner::start ( )

Start this spinner spinning asynchronously.

Definition at line 284 of file spinner.cpp.

◆ stop()

void ros::AsyncSpinner::stop ( )

Stop this spinner from running.

Definition at line 289 of file spinner.cpp.

Member Data Documentation

◆ impl_

AsyncSpinnerImplPtr ros::AsyncSpinner::impl_
private

Definition at line 130 of file spinner.h.


The documentation for this class was generated from the following files:


roscpp
Author(s): Morgan Quigley, Josh Faust, Brian Gerkey, Troy Straszheim, Dirk Thomas , Jacob Perron
autogenerated on Sat Sep 14 2024 02:59:36