Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
uavcan_linux::BlockingServiceClient< DataType > Class Template Reference

#include <helpers.hpp>

Inheritance diagram for uavcan_linux::BlockingServiceClient< DataType >:
Inheritance graph
[legend]

Public Member Functions

int blockingCall (uavcan::NodeID server_node_id, const typename DataType::Request &request)
 
int blockingCall (uavcan::NodeID server_node_id, const typename DataType::Request &request, uavcan::MonotonicDuration timeout)
 
 BlockingServiceClient (uavcan::INode &node)
 
const DataType::Response & getResponse () const
 
bool wasSuccessful () const
 
- Public Member Functions inherited from uavcan::ServiceClient< DataType >
int call (NodeID server_node_id, const RequestType &request)
 
int call (NodeID server_node_id, const RequestType &request, ServiceCallID &out_call_id)
 
void cancelAllCalls ()
 
void cancelCall (ServiceCallID call_id)
 
const CallbackgetCallback () const
 
ServiceCallID getCallIDByIndex (unsigned index) const
 
unsigned getNumPendingCalls () const
 
TransferPriority getPriority () const
 
MonotonicDuration getRequestTimeout () const
 
uint32_t getResponseFailureCount () const
 
bool hasPendingCalls () const
 
bool hasPendingCallToServer (NodeID server_node_id) const
 
int init ()
 
int init (TransferPriority priority)
 
 ServiceClient (INode &node, const Callback &callback=Callback())
 
void setCallback (const Callback &cb)
 
void setPriority (const TransferPriority prio)
 
void setRequestTimeout (MonotonicDuration timeout)
 
virtual ~ServiceClient ()
 
- Public Member Functions inherited from uavcan::GenericSubscriberBase
uint32_t getFailureCount () const
 
INodegetNode () const
 

Private Types

typedef uavcan::ServiceClient< DataTypeSuper
 

Private Member Functions

void callback (const uavcan::ServiceCallResult< DataType > &res)
 
void setup ()
 

Private Attributes

bool call_was_successful_
 
DataType::Response response_
 

Additional Inherited Members

- Public Types inherited from uavcan::ServiceClient< DataType >
typedef std::function< void(const ServiceCallResult< DataType > &)> Callback
 
typedef DataType DataType
 
typedef DataType::Request RequestType
 
typedef DataType::Response ResponseType
 
typedef ServiceCallResult< DataTypeServiceCallResultType
 
- Static Public Member Functions inherited from uavcan::ServiceClientBase
static MonotonicDuration getDefaultRequestTimeout ()
 
static MonotonicDuration getMaxRequestTimeout ()
 
static MonotonicDuration getMinRequestTimeout ()
 
- Protected Member Functions inherited from uavcan::GenericSubscriber< DataType, DataType ::Response, TransferListenerWithFilter >
void allowAnonymousTransfers ()
 
 GenericSubscriber (INode &node)
 
TransferListenerWithFiltergetTransferListener ()
 
virtual void handleReceivedDataStruct (ReceivedDataStructure< DataType ::Response > &)=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 Member Functions inherited from uavcan::ServiceClientBase
int prepareToCall (INode &node, const char *dtname, NodeID server_node_id, ServiceCallID &out_call_id)
 
 ServiceClientBase (INode &node)
 
virtual ~ServiceClientBase ()
 
- Protected Member Functions inherited from uavcan::ITransferAcceptanceFilter
virtual ~ITransferAcceptanceFilter ()
 
- Protected Member Functions inherited from uavcan::DeadlineHandler
 DeadlineHandler (Scheduler &scheduler)
 
virtual ~DeadlineHandler ()
 
void generateDeadlineImmediately ()
 
MonotonicTime getDeadline () const
 
SchedulergetScheduler () const
 
bool isRunning () const
 
void startWithDeadline (MonotonicTime deadline)
 
void startWithDelay (MonotonicDuration delay)
 
void stop ()
 
- Protected Member Functions inherited from uavcan::LinkedListNode< DeadlineHandler >
 LinkedListNode ()
 
 ~LinkedListNode ()
 
DeadlineHandlergetNextListNode () const
 
void setNextListNode (DeadlineHandler *node)
 
- Protected Attributes inherited from uavcan::GenericSubscriberBase
uint32_t failure_count_
 
INodenode_
 
- Protected Attributes inherited from uavcan::ServiceClientBase
MonotonicDuration request_timeout_
 
- Protected Attributes inherited from uavcan::DeadlineHandler
Schedulerscheduler_
 

Detailed Description

template<typename DataType>
class uavcan_linux::BlockingServiceClient< DataType >

Wrapper over uavcan::ServiceClient<> for blocking calls. Blocks on uavcan::Node::spin() internally until the call is complete.

Definition at line 37 of file platform_specific_components/linux/libuavcan/include/uavcan_linux/helpers.hpp.

Member Typedef Documentation

◆ Super

template<typename DataType >
typedef uavcan::ServiceClient<DataType> uavcan_linux::BlockingServiceClient< DataType >::Super
private

Constructor & Destructor Documentation

◆ BlockingServiceClient()

template<typename DataType >
uavcan_linux::BlockingServiceClient< DataType >::BlockingServiceClient ( uavcan::INode node)
inline

Member Function Documentation

◆ blockingCall() [1/2]

template<typename DataType >
int uavcan_linux::BlockingServiceClient< DataType >::blockingCall ( uavcan::NodeID  server_node_id,
const typename DataType::Request &  request 
)
inline

Performs a blocking service call using default timeout (see the specs). Use getResponse() to get the actual response. Returns negative error code.

Definition at line 70 of file platform_specific_components/linux/libuavcan/include/uavcan_linux/helpers.hpp.

◆ blockingCall() [2/2]

template<typename DataType >
int uavcan_linux::BlockingServiceClient< DataType >::blockingCall ( uavcan::NodeID  server_node_id,
const typename DataType::Request &  request,
uavcan::MonotonicDuration  timeout 
)
inline

Performs a blocking service call using the specified timeout. Please consider using default timeout instead. Use getResponse() to get the actual response. Returns negative error code.

Definition at line 80 of file platform_specific_components/linux/libuavcan/include/uavcan_linux/helpers.hpp.

◆ callback()

template<typename DataType >
void uavcan_linux::BlockingServiceClient< DataType >::callback ( const uavcan::ServiceCallResult< DataType > &  res)
inlineprivate

◆ getResponse()

template<typename DataType >
const DataType::Response& uavcan_linux::BlockingServiceClient< DataType >::getResponse ( ) const
inline

Use this to retrieve the response of the last blocking service call. This method returns default constructed response object if the last service call was unsuccessful.

Definition at line 110 of file platform_specific_components/linux/libuavcan/include/uavcan_linux/helpers.hpp.

◆ setup()

template<typename DataType >
void uavcan_linux::BlockingServiceClient< DataType >::setup ( )
inlineprivate

◆ wasSuccessful()

template<typename DataType >
bool uavcan_linux::BlockingServiceClient< DataType >::wasSuccessful ( ) const
inline

Whether the last blocking call was successful.

Definition at line 104 of file platform_specific_components/linux/libuavcan/include/uavcan_linux/helpers.hpp.

Member Data Documentation

◆ call_was_successful_

template<typename DataType >
bool uavcan_linux::BlockingServiceClient< DataType >::call_was_successful_
private

◆ response_

template<typename DataType >
DataType::Response uavcan_linux::BlockingServiceClient< DataType >::response_
private

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


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