eRPC API Reference  Rev. 1.12.0
NXP Semiconductors
erpc::ArbitratedClientManager Class Reference

Client that can share a transport with a server. More...

#include <erpc_arbitrated_client_manager.hpp>

+ Inheritance diagram for erpc::ArbitratedClientManager:
+ Collaboration diagram for erpc::ArbitratedClientManager:

Public Member Functions

 ArbitratedClientManager (void)
 Constructor. More...
 
void setArbitrator (TransportArbitrator *arbitrator)
 Sets the transport arbitrator instance. More...
 
TransportArbitratorgetArbitrator (void)
 Gets the transport arbitrator instance. More...
 
- Public Member Functions inherited from erpc::ClientManager
 ClientManager (void)
 Constructor. More...
 
virtual ~ClientManager (void)
 ClientManager destructor.
 
virtual RequestContext createRequest (bool isOneway)
 This function creates request context. More...
 
virtual void performRequest (RequestContext &request)
 This function performs request. More...
 
virtual void releaseRequest (RequestContext &request)
 This function releases request context. More...
 
void setErrorHandler (client_error_handler_t error_handler)
 This function sets error handler function for infrastructure errors. More...
 
void callErrorHandler (erpc_status_t err, uint32_t functionID)
 This function calls error handler callback function with given status. More...
 
- Public Member Functions inherited from erpc::ClientServerCommon
 ClientServerCommon (void)
 ClientServerCommon constructor.
 
 ~ClientServerCommon (void)
 ClientServerCommon destructor.
 
void setMessageBufferFactory (MessageBufferFactory *factory)
 This function sets message buffer factory to use. More...
 
void setCodecFactory (CodecFactory *factory)
 This function sets codec factory to use. More...
 
CodecFactorygetCodecFactory (void)
 This function sets codec factory to use. More...
 
void setTransport (Transport *transport)
 This function sets transport layer to use. More...
 
TransportgetTransport (void)
 This function gets transport instance. More...
 

Protected Member Functions

virtual void performClientRequest (RequestContext &request) override
 This function performs request. More...
 
void setTransport (Transport *transport)
 This method is not used with this class.
 
- Protected Member Functions inherited from erpc::ClientManager
virtual void verifyReply (RequestContext &request)
 Validate that an incoming message is a reply.
 
CodeccreateBufferAndCodec (void)
 Create message buffer and codec. More...
 

Protected Attributes

TransportArbitratorm_arbitrator
 Optional transport arbitrator. May be NULL.
 
- Protected Attributes inherited from erpc::ClientManager
uint32_t m_sequence
 Sequence number.
 
client_error_handler_t m_errorHandler
 Pointer to function error handler.
 
- Protected Attributes inherited from erpc::ClientServerCommon
MessageBufferFactorym_messageFactory
 Message buffer factory to use.
 
CodecFactorym_codecFactory
 Codec to use.
 
Transportm_transport
 Transport layer to use.
 

Detailed Description

Client that can share a transport with a server.

This class is a special subclass of ClientManager that works with the TransportArbitrator to share a single transport with a Server. This enables, for instance, a single UART to be used for bidirectional remote function invocations and replies.

The setTransport() method used on ClientManager is not used with this class. Instead, there is a setArbitrator() method. The underlying transport that is shared is set on the arbitrator.

Constructor & Destructor Documentation

erpc::ArbitratedClientManager::ArbitratedClientManager ( void  )
inline

Constructor.

This function initializes object attributes.

Member Function Documentation

void ArbitratedClientManager::setArbitrator ( TransportArbitrator arbitrator)

Sets the transport arbitrator instance.

Parameters
[in]arbitratorTransport arbitrator to use.
TransportArbitrator* erpc::ArbitratedClientManager::getArbitrator ( void  )
inline

Gets the transport arbitrator instance.

Returns
TransportArbitrator * Transport arbitrator instance.
void ArbitratedClientManager::performClientRequest ( RequestContext request)
overrideprotectedvirtual

This function performs request.

Should be called in non server context (do not call another eRPC function in server remote call implementation).

Parameters
[in]requestRequest context to perform.

Reimplemented from erpc::ClientManager.


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