Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
rosserial_server::Session< Socket > Class Template Reference

#include <session.h>

Inheritance diagram for rosserial_server::Session< Socket >:
Inheritance graph
[legend]

Public Member Functions

bool is_active ()
 
 Session (boost::asio::io_service &io_service)
 
void set_require_param (std::string param_name)
 
void shutdown ()
 
Socket & socket ()
 
void start ()
 
void stop ()
 

Private Types

enum  { buffer_max = 1023 }
 

Private Member Functions

void attempt_sync ()
 
template<typename M >
bool check_set (std::string param_name, M map)
 
void handle_log (ros::serialization::IStream &stream)
 
void handle_time (ros::serialization::IStream &stream)
 
void read_body (ros::serialization::IStream &stream, uint16_t topic_id)
 
void read_failed (const boost::system::error_code &error)
 
void read_id_length (ros::serialization::IStream &stream)
 
void read_sync_first (ros::serialization::IStream &stream)
 
void read_sync_header ()
 
void read_sync_second (ros::serialization::IStream &stream)
 
void request_topics ()
 
void required_topics_check (const boost::system::error_code &error)
 
void ros_spin_timeout (const boost::system::error_code &error)
 
void set_sync_timeout (const boost::posix_time::time_duration &interval)
 
void setup_publisher (ros::serialization::IStream &stream)
 
void setup_service_client_publisher (ros::serialization::IStream &stream)
 
void setup_service_client_subscriber (ros::serialization::IStream &stream)
 
void setup_subscriber (ros::serialization::IStream &stream)
 
void sync_timeout (const boost::system::error_code &error)
 
void write_completion_cb (const boost::system::error_code &error, BufferPtr buffer_ptr)
 
void write_message (Buffer &message, const uint16_t topic_id)
 

Static Private Member Functions

static uint8_t checksum (ros::serialization::IStream &stream)
 
static uint8_t checksum (uint16_t val)
 

Private Attributes

bool active_
 
AsyncReadBuffer< Socket > async_read_buffer_
 
boost::posix_time::time_duration attempt_interval_
 
std::map< uint16_t, boost::function< void(ros::serialization::IStream &)> > callbacks_
 
boost::asio::io_service & io_service_
 
ros::NodeHandle nh_
 
std::map< uint16_t, PublisherPtrpublishers_
 
boost::posix_time::time_duration require_check_interval_
 
boost::asio::deadline_timer require_check_timer_
 
std::string require_param_name_
 
ros::CallbackQueue ros_callback_queue_
 
boost::posix_time::time_duration ros_spin_interval_
 
boost::asio::deadline_timer ros_spin_timer_
 
std::map< std::string, ServiceClientPtrservices_
 
Socket socket_
 
std::map< uint16_t, SubscriberPtrsubscribers_
 
boost::asio::deadline_timer sync_timer_
 
boost::posix_time::time_duration timeout_interval_
 

Detailed Description

template<typename Socket>
class rosserial_server::Session< Socket >

Definition at line 60 of file session.h.

Member Enumeration Documentation

◆ anonymous enum

template<typename Socket>
anonymous enum
private
Enumerator
buffer_max 

Definition at line 506 of file session.h.

Constructor & Destructor Documentation

◆ Session()

template<typename Socket>
rosserial_server::Session< Socket >::Session ( boost::asio::io_service &  io_service)
inline

Definition at line 63 of file session.h.

Member Function Documentation

◆ attempt_sync()

template<typename Socket>
void rosserial_server::Session< Socket >::attempt_sync ( )
inlineprivate

Definition at line 315 of file session.h.

◆ check_set()

template<typename Socket>
template<typename M >
bool rosserial_server::Session< Socket >::check_set ( std::string  param_name,
map 
)
inlineprivate

Definition at line 367 of file session.h.

◆ checksum() [1/2]

template<typename Socket>
static uint8_t rosserial_server::Session< Socket >::checksum ( ros::serialization::IStream stream)
inlinestaticprivate

Definition at line 392 of file session.h.

◆ checksum() [2/2]

template<typename Socket>
static uint8_t rosserial_server::Session< Socket >::checksum ( uint16_t  val)
inlinestaticprivate

Definition at line 400 of file session.h.

◆ handle_log()

template<typename Socket>
void rosserial_server::Session< Socket >::handle_log ( ros::serialization::IStream stream)
inlineprivate

Definition at line 476 of file session.h.

◆ handle_time()

template<typename Socket>
void rosserial_server::Session< Socket >::handle_time ( ros::serialization::IStream stream)
inlineprivate

Definition at line 486 of file session.h.

◆ is_active()

template<typename Socket>
bool rosserial_server::Session< Socket >::is_active ( )
inline

Definition at line 148 of file session.h.

◆ read_body()

template<typename Socket>
void rosserial_server::Session< Socket >::read_body ( ros::serialization::IStream stream,
uint16_t  topic_id 
)
inlineprivate

Definition at line 233 of file session.h.

◆ read_failed()

template<typename Socket>
void rosserial_server::Session< Socket >::read_failed ( const boost::system::error_code &  error)
inlineprivate

Definition at line 263 of file session.h.

◆ read_id_length()

template<typename Socket>
void rosserial_server::Session< Socket >::read_id_length ( ros::serialization::IStream stream)
inlineprivate

Definition at line 212 of file session.h.

◆ read_sync_first()

template<typename Socket>
void rosserial_server::Session< Socket >::read_sync_first ( ros::serialization::IStream stream)
inlineprivate

Definition at line 192 of file session.h.

◆ read_sync_header()

template<typename Socket>
void rosserial_server::Session< Socket >::read_sync_header ( )
inlineprivate

Definition at line 188 of file session.h.

◆ read_sync_second()

template<typename Socket>
void rosserial_server::Session< Socket >::read_sync_second ( ros::serialization::IStream stream)
inlineprivate

Definition at line 202 of file session.h.

◆ request_topics()

template<typename Socket>
void rosserial_server::Session< Socket >::request_topics ( )
inlineprivate

Definition at line 342 of file session.h.

◆ required_topics_check()

template<typename Socket>
void rosserial_server::Session< Socket >::required_topics_check ( const boost::system::error_code &  error)
inlineprivate

Definition at line 354 of file session.h.

◆ ros_spin_timeout()

template<typename Socket>
void rosserial_server::Session< Socket >::ros_spin_timeout ( const boost::system::error_code &  error)
inlineprivate

Periodic function which handles calling ROS callbacks, executed on the same io_service thread to avoid a concurrency nightmare.

Definition at line 169 of file session.h.

◆ set_require_param()

template<typename Socket>
void rosserial_server::Session< Socket >::set_require_param ( std::string  param_name)
inline

This is to set the name of the required topics parameter from the default of ~require. You might want to do this to avoid a conflict with something else in that namespace, or because you're embedding multiple instances of rosserial_server in a single process.

Definition at line 159 of file session.h.

◆ set_sync_timeout()

template<typename Socket>
void rosserial_server::Session< Socket >::set_sync_timeout ( const boost::posix_time::time_duration &  interval)
inlineprivate

Definition at line 320 of file session.h.

◆ setup_publisher()

template<typename Socket>
void rosserial_server::Session< Socket >::setup_publisher ( ros::serialization::IStream stream)
inlineprivate

Definition at line 406 of file session.h.

◆ setup_service_client_publisher()

template<typename Socket>
void rosserial_server::Session< Socket >::setup_service_client_publisher ( ros::serialization::IStream stream)
inlineprivate

Definition at line 434 of file session.h.

◆ setup_service_client_subscriber()

template<typename Socket>
void rosserial_server::Session< Socket >::setup_service_client_subscriber ( ros::serialization::IStream stream)
inlineprivate

Definition at line 454 of file session.h.

◆ setup_subscriber()

template<typename Socket>
void rosserial_server::Session< Socket >::setup_subscriber ( ros::serialization::IStream stream)
inlineprivate

Definition at line 417 of file session.h.

◆ shutdown()

template<typename Socket>
void rosserial_server::Session< Socket >::shutdown ( )
inline

Definition at line 139 of file session.h.

◆ socket()

template<typename Socket>
Socket& rosserial_server::Session< Socket >::socket ( )
inline

Definition at line 91 of file session.h.

◆ start()

template<typename Socket>
void rosserial_server::Session< Socket >::start ( )
inline

Definition at line 96 of file session.h.

◆ stop()

template<typename Socket>
void rosserial_server::Session< Socket >::stop ( )
inline

Definition at line 118 of file session.h.

◆ sync_timeout()

template<typename Socket>
void rosserial_server::Session< Socket >::sync_timeout ( const boost::system::error_code &  error)
inlineprivate

Definition at line 334 of file session.h.

◆ write_completion_cb()

template<typename Socket>
void rosserial_server::Session< Socket >::write_completion_cb ( const boost::system::error_code &  error,
BufferPtr  buffer_ptr 
)
inlineprivate

Definition at line 299 of file session.h.

◆ write_message()

template<typename Socket>
void rosserial_server::Session< Socket >::write_message ( Buffer message,
const uint16_t  topic_id 
)
inlineprivate

Definition at line 278 of file session.h.

Member Data Documentation

◆ active_

template<typename Socket>
bool rosserial_server::Session< Socket >::active_
private

Definition at line 507 of file session.h.

◆ async_read_buffer_

template<typename Socket>
AsyncReadBuffer<Socket> rosserial_server::Session< Socket >::async_read_buffer_
private

Definition at line 505 of file session.h.

◆ attempt_interval_

template<typename Socket>
boost::posix_time::time_duration rosserial_server::Session< Socket >::attempt_interval_
private

Definition at line 513 of file session.h.

◆ callbacks_

template<typename Socket>
std::map<uint16_t, boost::function<void(ros::serialization::IStream&)> > rosserial_server::Session< Socket >::callbacks_
private

Definition at line 521 of file session.h.

◆ io_service_

template<typename Socket>
boost::asio::io_service& rosserial_server::Session< Socket >::io_service_
private

Definition at line 503 of file session.h.

◆ nh_

template<typename Socket>
ros::NodeHandle rosserial_server::Session< Socket >::nh_
private

Definition at line 509 of file session.h.

◆ publishers_

template<typename Socket>
std::map<uint16_t, PublisherPtr> rosserial_server::Session< Socket >::publishers_
private

Definition at line 522 of file session.h.

◆ require_check_interval_

template<typename Socket>
boost::posix_time::time_duration rosserial_server::Session< Socket >::require_check_interval_
private

Definition at line 514 of file session.h.

◆ require_check_timer_

template<typename Socket>
boost::asio::deadline_timer rosserial_server::Session< Socket >::require_check_timer_
private

Definition at line 517 of file session.h.

◆ require_param_name_

template<typename Socket>
std::string rosserial_server::Session< Socket >::require_param_name_
private

Definition at line 519 of file session.h.

◆ ros_callback_queue_

template<typename Socket>
ros::CallbackQueue rosserial_server::Session< Socket >::ros_callback_queue_
private

Definition at line 510 of file session.h.

◆ ros_spin_interval_

template<typename Socket>
boost::posix_time::time_duration rosserial_server::Session< Socket >::ros_spin_interval_
private

Definition at line 515 of file session.h.

◆ ros_spin_timer_

template<typename Socket>
boost::asio::deadline_timer rosserial_server::Session< Socket >::ros_spin_timer_
private

Definition at line 518 of file session.h.

◆ services_

template<typename Socket>
std::map<std::string, ServiceClientPtr> rosserial_server::Session< Socket >::services_
private

Definition at line 524 of file session.h.

◆ socket_

template<typename Socket>
Socket rosserial_server::Session< Socket >::socket_
private

Definition at line 504 of file session.h.

◆ subscribers_

template<typename Socket>
std::map<uint16_t, SubscriberPtr> rosserial_server::Session< Socket >::subscribers_
private

Definition at line 523 of file session.h.

◆ sync_timer_

template<typename Socket>
boost::asio::deadline_timer rosserial_server::Session< Socket >::sync_timer_
private

Definition at line 516 of file session.h.

◆ timeout_interval_

template<typename Socket>
boost::posix_time::time_duration rosserial_server::Session< Socket >::timeout_interval_
private

Definition at line 512 of file session.h.


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


rosserial_server
Author(s): Mike Purvis
autogenerated on Mon Feb 28 2022 23:35:31