blob: 94862767f8af291b4b0264c8d610b3aad8db44a6 [file]
/*******************************************************************************
* Copyright (c) 2016 fortiss GmbH
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Milan Vathoopan, Guru Chandrasekhara - initial API and implementation and/or initial documentation
*******************************************************************************/
#ifndef SRC_ARCH_FREERTOS_FREERTOSTIHA_H_
#define SRC_ARCH_FREERTOS_FREERTOSTIHA_H_
#include <FreeRTOS.h>
#include <timers.h>
#include "../timerha.h"
/*! \brief External event handler for the FreeRTOS Timer.
* \ingroup FreeRTOS-HAL
*
*/
class CFreeRTOSTimerHandler : public CTimerHandler {
public:
virtual ~CFreeRTOSTimerHandler();
/*!\brief Enables this event source
*
*/
virtual void enableHandler(void);
/*!\brief Disable this event source
*/
virtual void disableHandler(void);
/*!\brief Sets the priority of the event source
*
* \param pa_nPriority new priority of the event source
*/
virtual void setPriority(int paPriority);
/*!\brief Get the current priority of the event source
*
* \return current priority
*/
virtual int getPriority(void) const;
private:
explicit CFreeRTOSTimerHandler(CDeviceExecution& paDeviceExecution);
static void vCallbackFunction(TimerHandle_t paTimer);
TimerHandle_t mTimer;
friend class CTimerHandler;
};
#endif /* SRC_ARCH_FREERTOS_FREERTOSTIHA_H_ */