Diag-Client-Lib
Public Types | Public Member Functions | Private Attributes | List of all members
doip_client::transport_protocol_handler::DoipTransportProtocolHandler Class Referencefinal

Protocol handler class to manage the whole Doip protocol communication. More...

#include <doip_transport_protocol_handler.h>

Inheritance diagram for doip_client::transport_protocol_handler::DoipTransportProtocolHandler:
Inheritance graph
[legend]
Collaboration diagram for doip_client::transport_protocol_handler::DoipTransportProtocolHandler:
Collaboration graph
[legend]

Public Types

using UdsTransportProtocolHandlerId = uds_transport::UdsTransportProtocolHandler::UdsTransportProtocolHandlerId
 Type alias for handler id. More...
 
using InitializationResult = uds_transport::UdsTransportProtocolHandler::InitializationResult
 Type alias for Initialization result. More...
 
- Public Types inherited from uds_transport::UdsTransportProtocolHandler
enum class  InitializationResult : std::uint8_t { kInitializeOk = 0 , kInitializeFailed = 1 }
 Definitions of different initialization result. More...
 
using UdsTransportProtocolHandlerId = std::uint8_t
 Type alias for handler id. More...
 

Public Member Functions

 DoipTransportProtocolHandler (UdsTransportProtocolHandlerId handler_id, uds_transport::UdsTransportProtocolMgr const &transport_protocol_mgr)
 Constructs an instance of DoipTransportProtocolHandler. More...
 
 ~DoipTransportProtocolHandler () final
 Destruct an instance of DoipTransportProtocolHandler. More...
 
InitializationResult Initialize () override
 Function to initialize the handler. More...
 
void Start () override
 Function to start the protocol handler. More...
 
void Stop () override
 Function to stop the protocol handler. More...
 
std::unique_ptr< uds_transport::ConnectionCreateTcpConnection (uds_transport::ConversionHandler &conversation, std::string_view tcp_ip_address, std::uint16_t port_num) override
 Function to create a new Tcp connection. More...
 
std::unique_ptr< uds_transport::ConnectionCreateUdpConnection (uds_transport::ConversionHandler &conversion_handler, std::string_view udp_ip_address, std::uint16_t port_num) override
 Function to create a new Udp connection. More...
 
- Public Member Functions inherited from uds_transport::UdsTransportProtocolHandler
 UdsTransportProtocolHandler (UdsTransportProtocolHandlerId const handler_id, UdsTransportProtocolMgr const &)
 Constructs an instance of UdsTransportProtocolHandler. More...
 
virtual ~UdsTransportProtocolHandler ()=default
 Destruct an instance of UdsTransportProtocolHandler. More...
 
virtual UdsTransportProtocolHandlerId GetHandlerID () const
 Function to get the handler id. More...
 
virtual std::unique_ptr< ConnectionCreateTcpConnection (ConversionHandler &conversion_handler, std::string_view tcpIpaddress, uint16_t portNum)=0
 Function to create a new Tcp connection. More...
 
virtual std::unique_ptr< ConnectionCreateUdpConnection (ConversionHandler &conversion_handler, std::string_view udpIpaddress, uint16_t portNum)=0
 Function to create a new Udp connection. More...
 

Private Attributes

connection::DoipConnectionManager doip_connection_mgr_
 Store Doip Connection manager. More...
 

Additional Inherited Members

- Protected Attributes inherited from uds_transport::UdsTransportProtocolHandler
UdsTransportProtocolHandlerId handler_id_
 Store the handler id. More...
 

Detailed Description

Protocol handler class to manage the whole Doip protocol communication.

This class must be instantiated by user for using the DoIP functionalities. This will inherit uds transport protocol handler

Definition at line 25 of file doip_transport_protocol_handler.h.

Member Typedef Documentation

◆ InitializationResult

Type alias for Initialization result.

Definition at line 35 of file doip_transport_protocol_handler.h.

◆ UdsTransportProtocolHandlerId

Type alias for handler id.

Definition at line 30 of file doip_transport_protocol_handler.h.

Constructor & Destructor Documentation

◆ DoipTransportProtocolHandler()

doip_client::transport_protocol_handler::DoipTransportProtocolHandler::DoipTransportProtocolHandler ( UdsTransportProtocolHandlerId  handler_id,
uds_transport::UdsTransportProtocolMgr const &  transport_protocol_mgr 
)

Constructs an instance of DoipTransportProtocolHandler.

Parameters
[in]handler_idThe id of this transport protocol handler
[in]transport_protocol_mgrThe reference to transport protocol manager

Definition at line 16 of file doip_transport_protocol_handler.cpp.

◆ ~DoipTransportProtocolHandler()

doip_client::transport_protocol_handler::DoipTransportProtocolHandler::~DoipTransportProtocolHandler ( )
finaldefault

Destruct an instance of DoipTransportProtocolHandler.

Member Function Documentation

◆ CreateTcpConnection()

std::unique_ptr< uds_transport::Connection > doip_client::transport_protocol_handler::DoipTransportProtocolHandler::CreateTcpConnection ( uds_transport::ConversionHandler conversation,
std::string_view  tcp_ip_address,
std::uint16_t  port_num 
)
override

Function to create a new Tcp connection.

Parameters
[in]conversationThe conversation handler used by tcp connection to communicate
[in]tcp_ip_addressThe local tcp ip address
[in]port_numThe local port number
Returns
The unique pointer to Connection created

Definition at line 32 of file doip_transport_protocol_handler.cpp.

33  {
35  __FILE__, __LINE__, __func__, [tcp_ip_address](std::stringstream &msg) {
36  msg << "Doip Tcp protocol requested with local endpoint : "
37  << "<Tcp: " << tcp_ip_address << ">";
38  });
39  return doip_connection_mgr_.FindOrCreateTcpConnection(conversation, tcp_ip_address, port_num);
40 }
std::unique_ptr< uds_transport::Connection > FindOrCreateTcpConnection(uds_transport::ConversionHandler const &conversation, std::string_view tcp_ip_address, std::uint16_t port_num)
Function to find or create a new Tcp connection.
static auto GetDiagClientLogger() noexcept -> DoipClientLogger &
Definition: logger.h:20

References doip_connection_mgr_, doip_client::connection::DoipConnectionManager::FindOrCreateTcpConnection(), and doip_client::logger::DoipClientLogger::GetDiagClientLogger().

Here is the call graph for this function:

◆ CreateUdpConnection()

std::unique_ptr< uds_transport::Connection > doip_client::transport_protocol_handler::DoipTransportProtocolHandler::CreateUdpConnection ( uds_transport::ConversionHandler conversion_handler,
std::string_view  udp_ip_address,
std::uint16_t  port_num 
)
override

Function to create a new Udp connection.

Parameters
[in]conversationThe conversation handler used by tcp connection to communicate
[in]udp_ip_addressThe local udp ip address
[in]port_numThe local port number
Returns
The unique pointer to Connection created

Definition at line 42 of file doip_transport_protocol_handler.cpp.

43  {
45  __FILE__, __LINE__, __func__, [udp_ip_address](std::stringstream &msg) {
46  msg << "Doip Udp protocol requested with local endpoint : "
47  << "<Udp: " << udp_ip_address << ">";
48  });
49  return doip_connection_mgr_.FindOrCreateUdpConnection(conversation, udp_ip_address, port_num);
50 }
std::unique_ptr< uds_transport::Connection > FindOrCreateUdpConnection(uds_transport::ConversionHandler const &conversation, std::string_view udp_ip_address, std::uint16_t port_num)
Function to find or create a new Udp connection.

References doip_connection_mgr_, doip_client::connection::DoipConnectionManager::FindOrCreateUdpConnection(), and doip_client::logger::DoipClientLogger::GetDiagClientLogger().

Here is the call graph for this function:

◆ Initialize()

DoipTransportProtocolHandler::InitializationResult doip_client::transport_protocol_handler::DoipTransportProtocolHandler::Initialize ( )
overridevirtual

Function to initialize the handler.

Returns
The initialization result

Implements uds_transport::UdsTransportProtocolHandler.

Definition at line 24 of file doip_transport_protocol_handler.cpp.

References uds_transport::UdsTransportProtocolHandler::kInitializeOk.

◆ Start()

void doip_client::transport_protocol_handler::DoipTransportProtocolHandler::Start ( )
overridevirtual

Function to start the protocol handler.

Implements uds_transport::UdsTransportProtocolHandler.

Definition at line 28 of file doip_transport_protocol_handler.cpp.

28 {}

◆ Stop()

void doip_client::transport_protocol_handler::DoipTransportProtocolHandler::Stop ( )
overridevirtual

Function to stop the protocol handler.

Implements uds_transport::UdsTransportProtocolHandler.

Definition at line 30 of file doip_transport_protocol_handler.cpp.

30 {}

Member Data Documentation

◆ doip_connection_mgr_

connection::DoipConnectionManager doip_client::transport_protocol_handler::DoipTransportProtocolHandler::doip_connection_mgr_
private

Store Doip Connection manager.

Definition at line 100 of file doip_transport_protocol_handler.h.

Referenced by CreateTcpConnection(), and CreateUdpConnection().


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