summaryrefslogtreecommitdiff
path: root/AudioManagerDaemon/src/CAmWatchdog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerDaemon/src/CAmWatchdog.cpp')
-rwxr-xr-xAudioManagerDaemon/src/CAmWatchdog.cpp112
1 files changed, 0 insertions, 112 deletions
diff --git a/AudioManagerDaemon/src/CAmWatchdog.cpp b/AudioManagerDaemon/src/CAmWatchdog.cpp
deleted file mode 100755
index 4ac890f..0000000
--- a/AudioManagerDaemon/src/CAmWatchdog.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/**
- * SPDX license identifier: MPL-2.0
- *
- * Copyright (C) 2012, BMW AG
- *
- * This file is part of GENIVI Project AudioManager.
- *
- * Contributions are licensed to the GENIVI Alliance under one or more
- * Contribution License Agreements.
- *
- * \copyright
- * This Source Code Form is subject to the terms of the
- * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with
- * this file, You can obtain one at http://mozilla.org/MPL/2.0/.
- *
- *
- * \author Christian Linke, christian.linke@bmw.de BMW 2011,2012
- *
- * \file CAmWatchdog.cpp
- * For further information see http://www.genivi.org/.
- *
- */
-
-#include "CAmWatchdog.h"
-#include <cassert>
-#include <cstdlib>
-#include <stdexcept>
-#include "audiomanagerconfig.h"
-#include "CAmDltWrapper.h"
-
-#ifdef SYSTEMD_FOUND
- #include <systemd/sd-daemon.h>
-#else
- #include "sd-daemon.h"
-#endif
-
-namespace am
-{
-
-CAmWatchdog::CAmWatchdog(CAmSocketHandler* CAmSocketHandler) :
- TimerCallback(this, &CAmWatchdog::timerCallback), //
- mpCAmSocketHandler(CAmSocketHandler), //
- mHandle(0) //
-{
- assert(mpCAmSocketHandler);
-
-
- //first retrieve the timeout interval
-
- int watchdogTimeout = 0;
-
- char* wusec=getenv("WATCHDOG_USEC");
- if (wusec)
- watchdogTimeout=atoi(wusec);
-
- if (watchdogTimeout > 0)
- {
- timespec timeout;
-
- //calculate the half cycle as the right interval to trigger the watchdog.
- timeout.tv_sec = (watchdogTimeout / 2) / 1000000;
- timeout.tv_nsec = ((watchdogTimeout / 2) % 1000000) * 1000;
- logInfo("CAmWatchdog::CAmWatchdog setting watchdog timeout:", watchdogTimeout, "us. Notification set to:",
- timeout.tv_sec, "sec and", timeout.tv_nsec, "ns");
-
- //add the timer here
- if (mpCAmSocketHandler->addTimer(timeout, &TimerCallback, mHandle, NULL))
- {
- logError("CAmWatchdog::CAmWatchdog failed to add timer");
- throw std::runtime_error("CAmWatchdog::CAmWatchdog failed to add timer");
- }
- }
-
- else
- {
- logInfo("CAmWatchdog::CAmWatchdog watchdog timeout was ", watchdogTimeout, " museconds, no watchdog active");
- }
-}
-
-CAmWatchdog::~CAmWatchdog()
-{
- //remove the timer again.
- mpCAmSocketHandler->removeTimer(mHandle);
-}
-
-void CAmWatchdog::timerCallback(sh_timerHandle_t handle, void* userData)
-{
- (void) userData;
- int error(sd_notify(0, "WATCHDOG=1"));
- if (error < 0)
- {
- logError("CAmWatchdog::timerCallback could not reset watchdog, error ", error);
- throw std::runtime_error("CAmWatchdog::timerCallback could not reset watchdog");
- }
-
- mpCAmSocketHandler->restartTimer(handle);
-}
-
-void CAmWatchdog::startWatchdog()
-{
- int error(sd_notify(0, "READY=1"));
- if (error < 0)
- {
- logError("CAmWatchdog::startWatchdog could not start watchdog, error ", error);
- throw std::runtime_error("CAmWatchdog::startWatchdog could not start watchdog");
- }
- logInfo("READY=1 was sent to systemd");
-}
-
-}
-
-/* namespace am */