Public Types | Public Member Functions | Static Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
uavcan::ServiceServer< DataType_, Callback_ > Class Template Reference

#include <service_server.hpp>

Inheritance diagram for uavcan::ServiceServer< DataType_, Callback_ >:
Inheritance graph
[legend]

Public Types

typedef Callback_ Callback
 
typedef DataType_ DataType
 
typedef DataType::Request RequestType
 
typedef DataType::Response ResponseType
 

Public Member Functions

uint32_t getRequestFailureCount () const
 
uint32_t getResponseFailureCount () const
 
MonotonicDuration getTxTimeout () const
 
 ServiceServer (INode &node)
 
void setTxTimeout (MonotonicDuration tx_timeout)
 
int start (const Callback &callback)
 
void stop ()
 
- Public Member Functions inherited from uavcan::GenericSubscriberBase
uint32_t getFailureCount () const
 
INodegetNode () const
 

Static Public Member Functions

static MonotonicDuration getDefaultTxTimeout ()
 
static MonotonicDuration getMaxTxTimeout ()
 
static MonotonicDuration getMinTxTimeout ()
 

Private Types

typedef GenericPublisher< DataType, ResponseTypePublisherType
 
typedef GenericSubscriber< DataType, RequestType, TransferListenerSubscriberType
 

Private Member Functions

virtual void handleReceivedDataStruct (ReceivedDataStructure< RequestType > &request)
 

Private Attributes

Callback callback_
 
PublisherType publisher_
 
uint32_t response_failure_count_
 

Additional Inherited Members

- Protected Member Functions inherited from uavcan::GenericSubscriber< DataType_, DataType_::Request, TransferListener >
void allowAnonymousTransfers ()
 
 GenericSubscriber (INode &node)
 
TransferListenergetTransferListener ()
 
virtual void handleReceivedDataStruct (ReceivedDataStructure< DataType_::Request > &)=0
 
int startAsMessageListener ()
 
int startAsServiceRequestListener ()
 
int startAsServiceResponseListener ()
 
void stop ()
 
virtual ~GenericSubscriber ()
 
- Protected Member Functions inherited from uavcan::GenericSubscriberBase
int genericStart (TransferListener *listener, bool(Dispatcher::*registration_method)(TransferListener *))
 
 GenericSubscriberBase (INode &node)
 
void stop (TransferListener *listener)
 
 ~GenericSubscriberBase ()
 
- Protected Attributes inherited from uavcan::GenericSubscriberBase
uint32_t failure_count_
 
INodenode_
 

Detailed Description

template<typename DataType_, typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
class uavcan::ServiceServer< DataType_, Callback_ >

Use this class to implement UAVCAN service servers.

Note that the references passed to the callback may point to stack-allocated objects, which means that the references get invalidated once the callback returns.

Template Parameters
DataType_Service data type.
Callback_Service calls will be delivered through the callback of this type, and service response will be returned via the output parameter of the callback. Note that the reference to service response data struct passed to the callback always points to a default initialized response object. Please also refer to ReceivedDataStructure<> and ServiceResponseDataStructure<>. In C++11 mode this type defaults to std::function<>. In C++03 mode this type defaults to a plain function pointer; use binder to call member functions as callbacks.

Definition at line 90 of file service_server.hpp.

Member Typedef Documentation

◆ Callback

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef Callback_ uavcan::ServiceServer< DataType_, Callback_ >::Callback

Definition at line 97 of file service_server.hpp.

◆ DataType

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef DataType_ uavcan::ServiceServer< DataType_, Callback_ >::DataType

Definition at line 94 of file service_server.hpp.

◆ PublisherType

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef GenericPublisher<DataType, ResponseType> uavcan::ServiceServer< DataType_, Callback_ >::PublisherType
private

Definition at line 101 of file service_server.hpp.

◆ RequestType

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef DataType::Request uavcan::ServiceServer< DataType_, Callback_ >::RequestType

Definition at line 95 of file service_server.hpp.

◆ ResponseType

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef DataType::Response uavcan::ServiceServer< DataType_, Callback_ >::ResponseType

Definition at line 96 of file service_server.hpp.

◆ SubscriberType

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
typedef GenericSubscriber<DataType, RequestType, TransferListener> uavcan::ServiceServer< DataType_, Callback_ >::SubscriberType
private

Definition at line 100 of file service_server.hpp.

Constructor & Destructor Documentation

◆ ServiceServer()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
uavcan::ServiceServer< DataType_, Callback_ >::ServiceServer ( INode node)
inlineexplicit

Definition at line 143 of file service_server.hpp.

Member Function Documentation

◆ getDefaultTxTimeout()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
static MonotonicDuration uavcan::ServiceServer< DataType_, Callback_ >::getDefaultTxTimeout ( )
inlinestatic

Definition at line 183 of file service_server.hpp.

◆ getMaxTxTimeout()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
static MonotonicDuration uavcan::ServiceServer< DataType_, Callback_ >::getMaxTxTimeout ( )
inlinestatic

Definition at line 185 of file service_server.hpp.

◆ getMinTxTimeout()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
static MonotonicDuration uavcan::ServiceServer< DataType_, Callback_ >::getMinTxTimeout ( )
inlinestatic

Definition at line 184 of file service_server.hpp.

◆ getRequestFailureCount()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
uint32_t uavcan::ServiceServer< DataType_, Callback_ >::getRequestFailureCount ( ) const
inline

Returns the number of failed attempts to decode data structs. Generally, a failed attempt means either:

  • Transient failure in the transport layer.
  • Incompatible data types.

Definition at line 195 of file service_server.hpp.

◆ getResponseFailureCount()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
uint32_t uavcan::ServiceServer< DataType_, Callback_ >::getResponseFailureCount ( ) const
inline

Definition at line 196 of file service_server.hpp.

◆ getTxTimeout()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
MonotonicDuration uavcan::ServiceServer< DataType_, Callback_ >::getTxTimeout ( ) const
inline

Definition at line 187 of file service_server.hpp.

◆ handleReceivedDataStruct()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
virtual void uavcan::ServiceServer< DataType_, Callback_ >::handleReceivedDataStruct ( ReceivedDataStructure< RequestType > &  request)
inlineprivatevirtual

Definition at line 107 of file service_server.hpp.

◆ setTxTimeout()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
void uavcan::ServiceServer< DataType_, Callback_ >::setTxTimeout ( MonotonicDuration  tx_timeout)
inline

Definition at line 188 of file service_server.hpp.

◆ start()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
int uavcan::ServiceServer< DataType_, Callback_ >::start ( const Callback callback)
inline

Starts the server. Incoming service requests will be passed to the application via the callback.

Definition at line 158 of file service_server.hpp.

◆ stop()

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
void uavcan::GenericSubscriber< DataSpec, DataStruct, TransferListenerType >::stop
inline

Stops the server.

Definition at line 213 of file generic_subscriber.hpp.

Member Data Documentation

◆ callback_

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
Callback uavcan::ServiceServer< DataType_, Callback_ >::callback_
private

Definition at line 104 of file service_server.hpp.

◆ publisher_

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
PublisherType uavcan::ServiceServer< DataType_, Callback_ >::publisher_
private

Definition at line 103 of file service_server.hpp.

◆ response_failure_count_

template<typename DataType_ , typename Callback_ = std::function<void (const ReceivedDataStructure<typename DataType_::Request>&, ServiceResponseDataStructure<typename DataType_::Response>&)>>
uint32_t uavcan::ServiceServer< DataType_, Callback_ >::response_failure_count_
private

Definition at line 105 of file service_server.hpp.


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


uavcan_communicator
Author(s):
autogenerated on Fri Dec 13 2024 03:10:05