mirror of
https://github.com/eclipse-openvehicle-api/openvehicle-api.git
synced 2026-07-02 05:35:11 +00:00
52
sdv_services/core/iso_monitor.cpp
Normal file
52
sdv_services/core/iso_monitor.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include "iso_monitor.h"
|
||||
#include "sdv_core.h"
|
||||
#include "app_control.h"
|
||||
|
||||
CIsoMonitor::CIsoMonitor(sdv::IInterfaceAccess* pObject) :
|
||||
m_ptrObject(pObject), m_pObjectControl(m_ptrObject.GetInterface<sdv::IObjectControl>())
|
||||
{}
|
||||
|
||||
CIsoMonitor::~CIsoMonitor()
|
||||
{
|
||||
GetAppControl().RequestShutdown();
|
||||
}
|
||||
|
||||
void CIsoMonitor::Initialize(/*in*/ const sdv::u8string& ssObjectConfig)
|
||||
{
|
||||
if (m_pObjectControl)
|
||||
{
|
||||
m_pObjectControl->Initialize(ssObjectConfig);
|
||||
m_eObjectStatus = m_pObjectControl->GetStatus();
|
||||
}
|
||||
else
|
||||
m_eObjectStatus = sdv::EObjectStatus::initialized;
|
||||
}
|
||||
|
||||
sdv::EObjectStatus CIsoMonitor::GetStatus() const
|
||||
{
|
||||
if (m_pObjectControl) return m_pObjectControl->GetStatus();
|
||||
return m_eObjectStatus;
|
||||
}
|
||||
|
||||
void CIsoMonitor::SetOperationMode(/*in*/ sdv::EOperationMode eMode)
|
||||
{
|
||||
if (m_pObjectControl) m_pObjectControl->SetOperationMode(eMode);
|
||||
}
|
||||
|
||||
void CIsoMonitor::Shutdown()
|
||||
{
|
||||
m_eObjectStatus = sdv::EObjectStatus::shutdown_in_progress;
|
||||
if (m_pObjectControl)
|
||||
{
|
||||
m_pObjectControl->Shutdown();
|
||||
m_eObjectStatus = m_pObjectControl->GetStatus();
|
||||
}
|
||||
m_eObjectStatus = sdv::EObjectStatus::destruction_pending;
|
||||
GetAppControl().RequestShutdown();
|
||||
m_pObjectControl = nullptr;
|
||||
}
|
||||
|
||||
sdv::IInterfaceAccess* CIsoMonitor::GetContainedObject()
|
||||
{
|
||||
return m_ptrObject;
|
||||
}
|
||||
Reference in New Issue
Block a user