23 std::optional<std::reference_wrapper<conversation_manager::ConversationManager>>
 
   33     : DiagnosticManager{},
 
   34       uds_transport_protocol_mgr_{std::make_unique<
uds_transport::UdsTransportProtocolManager>()},
 
   35       conversation_mgr_{std::move(dcm_client_config), *uds_transport_protocol_mgr_},
 
   36       vehicle_discovery_conversation_{
 
   46   conversation_mgr_.Startup();
 
   48   uds_transport_protocol_mgr_->Startup();
 
   50   vehicle_discovery_conversation_.Startup();
 
   54       [](std::stringstream &msg) { msg << 
"Dcm Client Initialized"; });
 
   62       [](std::stringstream &msg) { msg << 
"Dcm Client is ready to serve"; });
 
   75       [](std::stringstream &msg) { msg << 
"Dcm Client Shutdown completed"; });
 
   79     std::string_view conversation_name) noexcept {
 
   87   return vehicle_discovery_conversation_.SendVehicleIdentificationRequest(vehicle_info_request);
 
   94         [](std::stringstream &msg) { msg << 
"DiagClient is not Initialized"; });
 
Class type to contains a value (of type ValueType), or an error (of type ErrorType)
 
VehicleInfoResponseError
Definitions of Vehicle Identification response error code.
 
virtual void Shutdown() noexcept=0
Function to shutdown the Conversation.
 
Conversation class to establish connection with a Diagnostic Server.
 
void Shutdown() noexcept
Function to shutdown the ConversationManager.
 
Class to create Diagnostic Manager Client functionality.
 
std::unique_ptr< uds_transport::UdsTransportProtocolManager > uds_transport_protocol_mgr_
Stores the uds transport protocol manager.
 
DCMClient(config_parser::DcmClientConfig dcm_client_config)
Constructs an instance of DCMClient.
 
void Shutdown() noexcept override
Function to shutdown the DCMClient.
 
conversation_manager::ConversationManager conversation_mgr_
Stores the conversation manager instance.
 
void Run() noexcept override
Function to run DCMClient.
 
~DCMClient() noexcept override
Destructs an instance of DCMClient.
 
conversation::DiagClientConversation GetDiagnosticClientConversation(std::string_view conversation_name) noexcept override
Function to get required diag client conversation object based on conversation name.
 
conversation::Conversation & vehicle_discovery_conversation_
Store the conversation for vehicle discovery.
 
core_type::Result< diag::client::vehicle_info::VehicleInfoMessageResponseUniquePtr, DiagClient::VehicleInfoResponseError > SendVehicleIdentificationRequest(diag::client::vehicle_info::VehicleInfoListRequestType vehicle_info_request) noexcept override
Function to send vehicle identification request and get the Diagnostic Server list.
 
static auto GetDiagClientLogger() noexcept -> DiagClientLogger &
Get the diag client logger instance.
 
std::optional< std::reference_wrapper< conversation_manager::ConversationManager > > conversation_manager_ref
Store the conversation manager reference optionally.
 
constexpr std::string_view VehicleDiscoveryConversation
String representing of vehicle discovery conversation name.
 
auto GetConversationManager() noexcept -> conversation_manager::ConversationManager &
Function to get the reference to conversation manager.
 
std::unique_ptr< VehicleInfoMessage > VehicleInfoMessageResponseUniquePtr
The unique_ptr for Vehicle Identification Response Message.
 
Struct containing Vehicle selection mode.