Diag-Client-Lib
protocol_handler.h
Go to the documentation of this file.
1 /* Diagnostic Client library
2  * Copyright (C) 2024 Avijit Dey
3  *
4  * This Source Code Form is subject to the terms of the Mozilla Public
5  * License, v. 2.0. If a copy of the MPL was not distributed with this
6  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7  */
8 #ifndef DIAGNOSTIC_CLIENT_LIB_LIB_UDS_TRANSPORT_LAYER_API_UDS_TRANSPORT_PROTOCOL_HANDLER_H
9 #define DIAGNOSTIC_CLIENT_LIB_LIB_UDS_TRANSPORT_LAYER_API_UDS_TRANSPORT_PROTOCOL_HANDLER_H
10 
11 #include <cstdint>
12 #include <memory>
13 #include <string_view>
14 
16 
17 namespace uds_transport {
18 // forward declaration
19 class Connection;
20 class ConversionHandler;
21 
23  public:
27  using UdsTransportProtocolHandlerId = std::uint8_t;
28 
32  enum class InitializationResult : std::uint8_t { kInitializeOk = 0, kInitializeFailed = 1 };
33 
42  : handler_id_{handler_id} {}
43 
47  virtual ~UdsTransportProtocolHandler() = default;
48 
54 
60 
64  virtual void Start() = 0;
65 
69  virtual void Stop() = 0;
70 
81  virtual std::unique_ptr<Connection> CreateTcpConnection(ConversionHandler& conversion_handler,
82  std::string_view tcpIpaddress, uint16_t portNum) = 0;
83 
94  virtual std::unique_ptr<Connection> CreateUdpConnection(ConversionHandler& conversion_handler,
95  std::string_view udpIpaddress, uint16_t portNum) = 0;
96 
97  protected:
102 };
103 } // namespace uds_transport
104 #endif // DIAGNOSTIC_CLIENT_LIB_LIB_UDS_TRANSPORT_LAYER_API_UDS_TRANSPORT_PROTOCOL_HANDLER_H
Class to manage reception from transport protocol handler to connection handler.
virtual std::unique_ptr< Connection > CreateUdpConnection(ConversionHandler &conversion_handler, std::string_view udpIpaddress, uint16_t portNum)=0
Function to create a new Udp connection.
std::uint8_t UdsTransportProtocolHandlerId
Type alias for handler id.
virtual std::unique_ptr< Connection > CreateTcpConnection(ConversionHandler &conversion_handler, std::string_view tcpIpaddress, uint16_t portNum)=0
Function to create a new Tcp connection.
virtual UdsTransportProtocolHandlerId GetHandlerID() const
Function to get the handler id.
UdsTransportProtocolHandlerId handler_id_
Store the handler id.
virtual void Start()=0
Function to start the handler.
UdsTransportProtocolHandler(UdsTransportProtocolHandlerId const handler_id, UdsTransportProtocolMgr const &)
Constructs an instance of UdsTransportProtocolHandler.
virtual ~UdsTransportProtocolHandler()=default
Destruct an instance of UdsTransportProtocolHandler.
InitializationResult
Definitions of different initialization result.
virtual InitializationResult Initialize()=0
Function to initialize the handler.
virtual void Stop()=0
Function to stop the handler.