summaryrefslogtreecommitdiff
path: root/AudioManagerUtilities/include/CAmSocketHandler.h
diff options
context:
space:
mode:
Diffstat (limited to 'AudioManagerUtilities/include/CAmSocketHandler.h')
-rw-r--r--AudioManagerUtilities/include/CAmSocketHandler.h468
1 files changed, 256 insertions, 212 deletions
diff --git a/AudioManagerUtilities/include/CAmSocketHandler.h b/AudioManagerUtilities/include/CAmSocketHandler.h
index 04d19c3..ffd9e71 100644
--- a/AudioManagerUtilities/include/CAmSocketHandler.h
+++ b/AudioManagerUtilities/include/CAmSocketHandler.h
@@ -33,189 +33,205 @@
#ifdef WITH_TIMERFD
-#include <stdio.h>
-#include <string>
-#include <stdexcept>
-#include <unistd.h>
-#include <fcntl.h>
+# include <stdio.h>
+# include <string>
+# include <stdexcept>
+# include <unistd.h>
+# include <fcntl.h>
-#endif
+#endif // ifdef WITH_TIMERFD
namespace am
{
-#define MAX_NS 1000000000L
+#define MAX_NS 1000000000L
#define MAX_TIMERHANDLE UINT16_MAX
-#define MAX_POLLHANDLE UINT16_MAX
+#define MAX_POLLHANDLE UINT16_MAX
-typedef uint16_t sh_pollHandle_t; //!<this is a handle for a filedescriptor to be used with the SocketHandler
-typedef sh_pollHandle_t sh_timerHandle_t; //!<this is a handle for a timer to be used with the SocketHandler
+typedef uint16_t sh_pollHandle_t; //!< this is a handle for a filedescriptor to be used with the SocketHandler
+typedef sh_pollHandle_t sh_timerHandle_t; //!< this is a handle for a timer to be used with the SocketHandler
/**
- * prototype for poll prepared callback
- */
+ * prototype for poll prepared callback
+ */
class IAmShPollPrepare
{
public:
- virtual void Call(const sh_pollHandle_t handle, void* userData) = 0;
+ virtual void Call(const sh_pollHandle_t handle, void *userData) = 0;
+
virtual ~IAmShPollPrepare() {}
};
/**
- * prototype for poll fired callback
- */
+ * prototype for poll fired callback
+ */
class IAmShPollFired
{
public:
- virtual void Call(const pollfd pollfd, const sh_pollHandle_t handle, void* userData) = 0;
- virtual ~ IAmShPollFired() {}
+ virtual void Call(const pollfd pollfd, const sh_pollHandle_t handle, void *userData) = 0;
+
+ virtual ~IAmShPollFired() {}
};
/**
- * prototype for poll check callback
- */
+ * prototype for poll check callback
+ */
class IAmShPollCheck
{
public:
- virtual bool Call(const sh_pollHandle_t handle, void* userData) = 0;
- virtual ~ IAmShPollCheck() {}
+ virtual bool Call(const sh_pollHandle_t handle, void *userData) = 0;
+
+ virtual ~IAmShPollCheck() {}
};
/**
- * prototype for dispatch callback
- */
+ * prototype for dispatch callback
+ */
class IAmShPollDispatch
{
public:
- virtual bool Call(const sh_pollHandle_t handle, void* userData) = 0;
- virtual ~ IAmShPollDispatch() {}
+ virtual bool Call(const sh_pollHandle_t handle, void *userData) = 0;
+
+ virtual ~IAmShPollDispatch() {}
};
/**
- * prototype for the timer callback
- */
+ * prototype for the timer callback
+ */
class IAmShTimerCallBack
{
public:
- IAmShTimerCallBack(){};
- virtual void Call(const sh_timerHandle_t handle, void* userData) = 0;
+ IAmShTimerCallBack(){}
+ virtual void Call(const sh_timerHandle_t handle, void *userData) = 0;
+
virtual ~IAmShTimerCallBack(){}
};
/**make private, not public
- * template for a callback
- */
-template<class TClass> class TAmShPollFired: public IAmShPollFired
+ * template for a callback
+ */
+template<class TClass>
+class TAmShPollFired : public IAmShPollFired
{
private:
- TClass* mInstance;
- void (TClass::*mFunction)(const pollfd pollfd, const sh_pollHandle_t handle, void* userData);
+ TClass *mInstance;
+ void (TClass::*mFunction)(const pollfd pollfd, const sh_pollHandle_t handle, void *userData);
public:
- TAmShPollFired(TClass* instance, void (TClass::*function)(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)) :
- mInstance(instance),
- mFunction(function)
+ TAmShPollFired(TClass *instance, void (TClass::*function)(const pollfd pollfd, const sh_pollHandle_t handle, void *userData))
+ : mInstance(instance)
+ , mFunction(function)
{}
- virtual void Call(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)
+ virtual void Call(const pollfd pollfd, const sh_pollHandle_t handle, void *userData)
{
(*mInstance.*mFunction)(pollfd, handle, userData);
}
+
};
/**
- * template for a callback
- */
-template<class TClass> class TAmShPollCheck: public IAmShPollCheck
+ * template for a callback
+ */
+template<class TClass>
+class TAmShPollCheck : public IAmShPollCheck
{
private:
- TClass* mInstance;
- bool (TClass::*mFunction)(const sh_pollHandle_t handle, void* userData);
+ TClass *mInstance;
+ bool (TClass::*mFunction)(const sh_pollHandle_t handle, void *userData);
public:
- TAmShPollCheck(TClass* instance, bool (TClass::*function)(const sh_pollHandle_t handle, void* userData)) :
- mInstance(instance),
- mFunction(function)
+ TAmShPollCheck(TClass *instance, bool (TClass::*function)(const sh_pollHandle_t handle, void *userData))
+ : mInstance(instance)
+ , mFunction(function)
{}
- virtual bool Call(const sh_pollHandle_t handle, void* userData)
+ virtual bool Call(const sh_pollHandle_t handle, void *userData)
{
return ((*mInstance.*mFunction)(handle, userData));
}
+
};
/**
- * template for a callback
- */
-template<class TClass> class TAmShPollDispatch: public IAmShPollDispatch
+ * template for a callback
+ */
+template<class TClass>
+class TAmShPollDispatch : public IAmShPollDispatch
{
private:
- TClass* mInstance;
- bool (TClass::*mFunction)(const sh_pollHandle_t handle, void* userData);
+ TClass *mInstance;
+ bool (TClass::*mFunction)(const sh_pollHandle_t handle, void *userData);
public:
- TAmShPollDispatch(TClass* instance, bool (TClass::*function)(const sh_pollHandle_t handle, void* userData)) :
- mInstance(instance),
- mFunction(function)
+ TAmShPollDispatch(TClass *instance, bool (TClass::*function)(const sh_pollHandle_t handle, void *userData))
+ : mInstance(instance)
+ , mFunction(function)
{}
- virtual bool Call(const sh_pollHandle_t handle, void* userData)
+ virtual bool Call(const sh_pollHandle_t handle, void *userData)
{
return ((*mInstance.*mFunction)(handle, userData));
}
+
};
/**
- * template to create the functor for a class
- */
-template<class TClass> class TAmShTimerCallBack: public IAmShTimerCallBack
+ * template to create the functor for a class
+ */
+template<class TClass>
+class TAmShTimerCallBack : public IAmShTimerCallBack
{
private:
- TClass* mInstance;
- void (TClass::*mFunction)(sh_timerHandle_t handle, void* userData);
+ TClass *mInstance;
+ void (TClass::*mFunction)(sh_timerHandle_t handle, void *userData);
public:
- TAmShTimerCallBack(TClass* instance, void (TClass::*function)(sh_timerHandle_t handle, void* userData)) :
- IAmShTimerCallBack(), mInstance(instance),
- mFunction(function)
+ TAmShTimerCallBack(TClass *instance, void (TClass::*function)(sh_timerHandle_t handle, void *userData))
+ : IAmShTimerCallBack()
+ , mInstance(instance)
+ , mFunction(function)
{}
- virtual void Call(sh_timerHandle_t handle, void* userData)
+ virtual void Call(sh_timerHandle_t handle, void *userData)
{
(*mInstance.*mFunction)(handle, userData);
}
+
};
/**
- * template for a callback
- */
+ * template for a callback
+ */
-template<class TClass> class TAmShPollPrepare: public IAmShPollPrepare
+template<class TClass>
+class TAmShPollPrepare : public IAmShPollPrepare
{
private:
- TClass* mInstance;
- void (TClass::*mFunction)(const sh_pollHandle_t handle, void* userData);
+ TClass *mInstance;
+ void (TClass::*mFunction)(const sh_pollHandle_t handle, void *userData);
public:
- TAmShPollPrepare(TClass* instance, void (TClass::*function)(const sh_pollHandle_t handle, void* userData)) :
- mInstance(instance),
- mFunction(function)
+ TAmShPollPrepare(TClass *instance, void (TClass::*function)(const sh_pollHandle_t handle, void *userData))
+ : mInstance(instance)
+ , mFunction(function)
{}
- virtual void Call(const sh_pollHandle_t handle, void* userData)
+ virtual void Call(const sh_pollHandle_t handle, void *userData)
{
(*mInstance.*mFunction)(handle, userData);
}
+
};
/**
- * The am::CAmSocketHandler implements a mainloop for the AudioManager. Plugins and different parts of the AudioManager add their filedescriptors to the handler
- * to get called on communication of the filedescriptors.\n
- * More information can be found here : \ref mainl
- */
+ * The am::CAmSocketHandler implements a mainloop for the AudioManager. Plugins and different parts of the AudioManager add their filedescriptors to the handler
+ * to get called on communication of the filedescriptors.\n
+ * More information can be found here : \ref mainl
+ */
class CAmSocketHandler
{
- typedef enum:uint8_t
+ typedef enum : uint8_t
{
ADD = 0u, // new, uninitialized element which needs to be added to ppoll array
UPDATE = 1u, // update of event information therefore update ppoll array
@@ -224,49 +240,60 @@ class CAmSocketHandler
INVALID = 4u // uninit element requested to be removed from internal map only
} poll_states_e;
- struct sh_poll_s //!<struct that holds information about polls
+ struct sh_poll_s //!< struct that holds information about polls
{
- sh_pollHandle_t handle; //!<handle to uniquely adress a filedesriptor
- pollfd pollfdValue; //!<the array for polling the filedescriptors
- std::function<void(const sh_pollHandle_t handle, void* userData)> prepareCB; //preperation callback
- std::function<void(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)> firedCB; //fired callback
- std::function<bool(const sh_pollHandle_t handle, void* userData)> checkCB; //check callback
- std::function<bool(const sh_pollHandle_t handle, void* userData)> dispatchCB; //dispatch callback
- void* userData;
+ sh_pollHandle_t handle; //!< handle to uniquely adress a filedesriptor
+ pollfd pollfdValue; //!< the array for polling the filedescriptors
+ std::function<void(const sh_pollHandle_t handle, void *userData)> prepareCB; // preperation callback
+ std::function<void(const pollfd pollfd, const sh_pollHandle_t handle, void *userData)> firedCB; // fired callback
+ std::function<bool(const sh_pollHandle_t handle, void *userData)> checkCB; // check callback
+ std::function<bool(const sh_pollHandle_t handle, void *userData)> dispatchCB; // dispatch callback
+ void *userData;
poll_states_e state;
- sh_poll_s() :
- handle(0), pollfdValue(), prepareCB(), firedCB(), checkCB(), dispatchCB(), userData(0), state(ADD)
+ sh_poll_s()
+ : handle(0)
+ , pollfdValue()
+ , prepareCB()
+ , firedCB()
+ , checkCB()
+ , dispatchCB()
+ , userData(0)
+ , state(ADD)
{}
};
- struct sh_timer_s //!<struct that holds information of timers
+ struct sh_timer_s //!< struct that holds information of timers
{
- sh_timerHandle_t handle; //!<the handle of the timer
-#ifdef WITH_TIMERFD
+ sh_timerHandle_t handle; //!< the handle of the timer
+#ifdef WITH_TIMERFD
int fd;
- itimerspec countdown; //!<the countdown, this value is decreased every time the timer is up
+ itimerspec countdown; //!< the countdown, this value is decreased every time the timer is up
#else
- timespec countdown; //!<the countdown, this value is decreased every time the timer is up
-#endif
- std::function<void(const sh_timerHandle_t handle, void* userData)> callback; //timer callback
- void* userData;
- sh_timer_s() :
- handle(0)
+ timespec countdown; //!< the countdown, this value is decreased every time the timer is up
+#endif
+ std::function<void(const sh_timerHandle_t handle, void *userData)> callback; // timer callback
+ void *userData;
+ sh_timer_s()
+ : handle(0)
#ifdef WITH_TIMERFD
- , fd(-1)
+ , fd(-1)
#endif
- , countdown(), callback(), userData(0)
+ , countdown()
+ , callback()
+ , userData(0)
{}
};
struct sh_signal_s
{
- sh_pollHandle_t handle; //!<handle to uniquely adress a filedesriptor
- std::function<void(const sh_pollHandle_t handle, const signalfd_siginfo & info, void* userData)> callback;
- void* userData;
- sh_signal_s() :
- handle(0), callback(), userData(0)
+ sh_pollHandle_t handle; //!< handle to uniquely adress a filedesriptor
+ std::function<void(const sh_pollHandle_t handle, const signalfd_siginfo &info, void *userData)> callback;
+ void *userData;
+ sh_signal_s()
+ : handle(0)
+ , callback()
+ , userData(0)
{}
};
@@ -275,17 +302,19 @@ class CAmSocketHandler
std::set<sh_pollHandle_t> pollHandles;
uint16_t limit;
uint16_t lastUsedID;
- sh_identifier_s(const uint16_t pollLimit = UINT16_MAX) :
- pollHandles(), limit(pollLimit), lastUsedID(0)
+ sh_identifier_s(const uint16_t pollLimit = UINT16_MAX)
+ : pollHandles()
+ , limit(pollLimit)
+ , lastUsedID(0)
{}
};
- typedef std::reverse_iterator<sh_timer_s> rListTimerIter; //!<typedef for reverseiterator on timer lists
- typedef std::vector<pollfd> VectorPollfd_t; //!<vector of filedescriptors
- typedef std::map<int, sh_poll_s> MapShPoll_t; //!<list for the callbacks
- typedef std::vector<sh_signal_s> VectorSignalHandlers_t; //!<list for the callbacks
+ typedef std::reverse_iterator<sh_timer_s> rListTimerIter; //!< typedef for reverseiterator on timer lists
+ typedef std::vector<pollfd> VectorPollfd_t; //!< vector of filedescriptors
+ typedef std::map<int, sh_poll_s> MapShPoll_t; //!< list for the callbacks
+ typedef std::vector<sh_signal_s> VectorSignalHandlers_t; //!< list for the callbacks
- typedef enum:uint8_t
+ typedef enum : uint8_t
{
NO_ERROR = 0u, // OK
FD_ERROR = 1u, // Invalid file descriptor
@@ -293,53 +322,55 @@ class CAmSocketHandler
} internal_codes_e;
typedef uint8_t internal_codes_t;
- int mEventFd;
- int mSignalFd;
- bool mDispatchDone; //this starts / stops the mainloop
- MapShPoll_t mMapShPoll; //!<list that holds all information for the ppoll
+ int mEventFd;
+ int mSignalFd;
+ bool mDispatchDone; // this starts / stops the mainloop
+ MapShPoll_t mMapShPoll; //!< list that holds all information for the ppoll
- sh_identifier_s mSetPollKeys; //!A set of all used ppoll keys
- sh_identifier_s mSetTimerKeys; //!A set of all used timer keys
- std::list<sh_timer_s> mListTimer; //!<list of all timers
+ sh_identifier_s mSetPollKeys; //! A set of all used ppoll keys
+ sh_identifier_s mSetTimerKeys; //! A set of all used timer keys
+ std::list<sh_timer_s> mListTimer; //!< list of all timers
#ifndef WITH_TIMERFD
- std::list<sh_timer_s> mListActiveTimer; //!<list of all currently active timers
+ std::list<sh_timer_s> mListActiveTimer; //!< list of all currently active timers
#endif
- sh_identifier_s mSetSignalhandlerKeys; //!A set of all used signal handler keys
+ sh_identifier_s mSetSignalhandlerKeys; //! A set of all used signal handler keys
VectorSignalHandlers_t mSignalHandlers;
- internal_codes_t mInternalCodes;
+ internal_codes_t mInternalCodes;
#ifndef WITH_TIMERFD
- timespec mStartTime; //!<here the actual time is saved for timecorrection
+ timespec mStartTime; //!< here the actual time is saved for timecorrection
#endif
private:
bool fdIsValid(const int fd) const;
- void wakeupWorker(const std::string & func, const uint64_t value = 1u);
+ void wakeupWorker(const std::string &func, const uint64_t value = 1u);
+
+ timespec *insertTime(timespec &buffertime);
- timespec* insertTime(timespec& buffertime);
-#ifdef WITH_TIMERFD
- am_Error_e createTimeFD(const itimerspec & timeouts, int & fd);
-#else
+#ifdef WITH_TIMERFD
+ am_Error_e createTimeFD(const itimerspec &timeouts, int &fd);
+
+#else
void timerUp();
void timerCorrection();
/**
- * compares countdown values
- * @param a
- * @param b
- * @return true if b greater a
- */
- inline static bool compareCountdown(const sh_timer_s& a, const sh_timer_s& b)
+ * compares countdown values
+ * @param a
+ * @param b
+ * @return true if b greater a
+ */
+ inline static bool compareCountdown(const sh_timer_s &a, const sh_timer_s &b)
{
return ((a.countdown.tv_sec == b.countdown.tv_sec) ? (a.countdown.tv_nsec < b.countdown.tv_nsec) : (a.countdown.tv_sec < b.countdown.tv_sec));
}
/**
- * Subtracts b from a
- * @param a
- * @param b
- * @return subtracted value
- */
- inline static timespec timespecSub(const timespec& a, const timespec& b)
+ * Subtracts b from a
+ * @param a
+ * @param b
+ * @return subtracted value
+ */
+ inline static timespec timespecSub(const timespec &a, const timespec &b)
{
timespec result;
@@ -360,136 +391,149 @@ private:
result.tv_nsec = a.tv_nsec - b.tv_nsec;
}
}
+
return (result);
}
/**
- * adds timespec values
- * @param a
- * @param b
- * @return the added values
- */
- inline timespec timespecAdd(const timespec& a, const timespec& b)
+ * adds timespec values
+ * @param a
+ * @param b
+ * @return the added values
+ */
+ inline timespec timespecAdd(const timespec &a, const timespec &b)
{
timespec result;
- result.tv_sec = a.tv_sec + b.tv_sec;
+ result.tv_sec = a.tv_sec + b.tv_sec;
result.tv_nsec = a.tv_nsec + b.tv_nsec;
if (result.tv_nsec >= MAX_NS)
{
result.tv_sec++;
result.tv_nsec = result.tv_nsec - MAX_NS;
}
+
return (result);
}
/**
- * comapares timespec values
- * @param a
- * @param b
- * @return
- */
- inline int timespecCompare(const timespec& a, const timespec& b)
+ * comapares timespec values
+ * @param a
+ * @param b
+ * @return
+ */
+ inline int timespecCompare(const timespec &a, const timespec &b)
{
- //less
+ // less
if (a.tv_sec < b.tv_sec)
- return (-1);
- //greater
+ {
+ return (-1);
+ }
+ // greater
else if (a.tv_sec > b.tv_sec)
- return (1);
- //less
+ {
+ return (1);
+ }
+ // less
else if (a.tv_nsec < b.tv_nsec)
- return (-1);
- //greater
+ {
+ return (-1);
+ }
+ // greater
else if (a.tv_nsec > b.tv_nsec)
- return (1);
- //equal
+ {
+ return (1);
+ }
+
+ // equal
return (0);
}
-#endif
+#endif // ifdef WITH_TIMERFD
/**
- * functor to prepare all fire events
- * @param a
- * @return
- */
- inline static void prepare(sh_poll_s& row);
+ * functor to prepare all fire events
+ * @param a
+ * @return
+ */
+ inline static void prepare(sh_poll_s &row);
/**
- * functor to return all fired events
- * @param a
- * @return
- */
- inline static void fire(const sh_poll_s& a);
+ * functor to return all fired events
+ * @param a
+ * @return
+ */
+ inline static void fire(const sh_poll_s &a);
/**
- * functor to help find the items that do not need dispatching
- * @param a
- * @return
- */
- inline static bool noDispatching(const sh_poll_s* a);
+ * functor to help find the items that do not need dispatching
+ * @param a
+ * @return
+ */
+ inline static bool noDispatching(const sh_poll_s *a);
/**
- * checks if dispatching is already finished
- * @param a
- * @return
- */
- inline static bool dispatchingFinished(const sh_poll_s* a);
+ * checks if dispatching is already finished
+ * @param a
+ * @return
+ */
+ inline static bool dispatchingFinished(const sh_poll_s *a);
/**
- * timer fire callback
- * @param a
- * @return
- */
- inline static void callTimer(sh_timer_s& a);
+ * timer fire callback
+ * @param a
+ * @return
+ */
+ inline static void callTimer(sh_timer_s &a);
/**
- * next handle id
- * @param std::set handles
- * @return handle
- */
- bool nextHandle(sh_identifier_s & handle);
+ * next handle id
+ * @param std::set handles
+ * @return handle
+ */
+ bool nextHandle(sh_identifier_s &handle);
public:
CAmSocketHandler();
~CAmSocketHandler();
-
- /**
+
+ /**
* install the signal fd
*/
- am_Error_e listenToSignals(const std::vector<uint8_t> & listSignals);
-
- am_Error_e addFDPoll(const int fd, const short event, std::function<void(const sh_pollHandle_t handle, void* userData)> prepare, std::function<void(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)> fired,
- std::function<bool(const sh_pollHandle_t handle, void* userData)> check, std::function<bool(const sh_pollHandle_t handle, void* userData)> dispatch, void* userData, sh_pollHandle_t& handle);
+ am_Error_e listenToSignals(const std::vector<uint8_t> &listSignals);
+
+ am_Error_e addFDPoll(const int fd, const short event, std::function<void(const sh_pollHandle_t handle, void *userData)> prepare, std::function<void(const pollfd pollfd, const sh_pollHandle_t handle, void *userData)> fired,
+ std::function<bool(const sh_pollHandle_t handle, void *userData)> check, std::function<bool(const sh_pollHandle_t handle, void *userData)> dispatch, void *userData, sh_pollHandle_t &handle);
- am_Error_e addFDPoll(const int fd, const short event, IAmShPollPrepare *prepare, IAmShPollFired *fired, IAmShPollCheck *check, IAmShPollDispatch *dispatch, void* userData, sh_pollHandle_t& handle);
+ am_Error_e addFDPoll(const int fd, const short event, IAmShPollPrepare *prepare, IAmShPollFired *fired, IAmShPollCheck *check, IAmShPollDispatch *dispatch, void *userData, sh_pollHandle_t &handle);
am_Error_e removeFDPoll(const sh_pollHandle_t handle);
am_Error_e updateEventFlags(const sh_pollHandle_t handle, const short events);
- am_Error_e addSignalHandler(std::function<void(const sh_pollHandle_t handle, const signalfd_siginfo & info, void* userData)> callback, sh_pollHandle_t& handle, void * userData);
+ am_Error_e addSignalHandler(std::function<void(const sh_pollHandle_t handle, const signalfd_siginfo &info, void *userData)> callback, sh_pollHandle_t &handle, void *userData);
am_Error_e removeSignalHandler(const sh_pollHandle_t handle);
- am_Error_e addTimer(const timespec & timeouts, IAmShTimerCallBack* callback, sh_timerHandle_t& handle, void * userData,
+
+ am_Error_e addTimer(const timespec &timeouts, IAmShTimerCallBack *callback, sh_timerHandle_t & handle, void *userData,
#ifndef WITH_TIMERFD
- const bool __attribute__((__unused__)) repeats = false
+ const bool __attribute__((__unused__)) repeats = false
#else
- const bool repeats = false
+ const bool repeats = false
#endif
- );
- am_Error_e addTimer(const timespec & timeouts, std::function<void(const sh_timerHandle_t handle, void* userData)> callback, sh_timerHandle_t& handle, void* userData,
+ );
+ am_Error_e addTimer(const timespec &timeouts, std::function<void(const sh_timerHandle_t handle, void *userData)> callback, sh_timerHandle_t & handle, void *userData,
#ifndef WITH_TIMERFD
- const bool __attribute__((__unused__)) repeats = false
+ const bool __attribute__((__unused__)) repeats = false
#else
- const bool repeats = false
+ const bool repeats = false
#endif
- );
+ );
am_Error_e removeTimer(const sh_timerHandle_t handle);
am_Error_e restartTimer(const sh_timerHandle_t handle);
- am_Error_e updateTimer(const sh_timerHandle_t handle, const timespec & timeouts);
+ am_Error_e updateTimer(const sh_timerHandle_t handle, const timespec &timeouts);
am_Error_e stopTimer(const sh_timerHandle_t handle);
void start_listenting();
void stop_listening();
void exit_mainloop();
-
+
bool fatalErrorOccurred();
+
};
} /* namespace am */