summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Linke <Christian.Linke@bmw.de>2016-05-18 10:05:17 -0700
committerChristian Linke <Christian.Linke@bmw.de>2016-05-18 10:05:31 -0700
commitb2dcab534e50d687f0ec905ba859e60fe519a3c5 (patch)
tree766cee90b6dee637a0d84ae0861aebb611e43bbd
parentfc74b4862d1bf5f0ae2292c49df6f9bd85952edb (diff)
downloadaudiomanager-b2dcab534e50d687f0ec905ba859e60fe519a3c5.tar.gz
try catch for sockethandler callbacks
small improvements of sockethandler. Signed-off-by: Christian Linke <Christian.Linke@bmw.de>
-rw-r--r--AudioManagerUtilities/include/CAmSocketHandler.h128
-rw-r--r--AudioManagerUtilities/src/CAmSocketHandler.cpp66
2 files changed, 93 insertions, 101 deletions
diff --git a/AudioManagerUtilities/include/CAmSocketHandler.h b/AudioManagerUtilities/include/CAmSocketHandler.h
index edf19fd..5c3c5ba 100644
--- a/AudioManagerUtilities/include/CAmSocketHandler.h
+++ b/AudioManagerUtilities/include/CAmSocketHandler.h
@@ -26,7 +26,6 @@
#include <set>
#include <signal.h>
-#include <iostream> //todo: remove me
namespace am
{
@@ -43,11 +42,8 @@ typedef uint16_t sh_pollHandle_t; //!<this is a handle for a filedescriptor to b
class IAmShPollPrepare
{
public:
- virtual void Call(const sh_pollHandle_t handle, void* userData)=0;
- virtual ~IAmShPollPrepare()
- {
- }
- ;
+ virtual void Call(const sh_pollHandle_t handle, void* userData) = 0;
+ virtual ~IAmShPollPrepare() {};
};
/**
@@ -56,11 +52,8 @@ public:
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() {};
};
/**
@@ -69,11 +62,8 @@ public:
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() {};
};
/**
@@ -82,11 +72,8 @@ public:
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() {};
};
/**
@@ -95,11 +82,8 @@ public:
class IAmShTimerCallBack
{
public:
- virtual void Call(const sh_timerHandle_t handle, void* userData)=0;
- virtual ~IAmShTimerCallBack()
- {
- }
- ;
+ virtual void Call(const sh_timerHandle_t handle, void* userData) = 0;
+ virtual ~IAmShTimerCallBack() {};
};
/**
@@ -289,8 +273,7 @@ private:
else if (a.tv_nsec > b.tv_nsec)
return (1);
//equal
- else
- return (0);
+ return (0);
}
/**
@@ -334,56 +317,29 @@ private:
private:
mListPollfd_t& mArray;
public:
- CAmShCopyPollfd(mListPollfd_t& dest) :
- mArray(dest)
- {
- }
- void operator()(const sh_poll_s& row)
- {
- pollfd temp = row.pollfdValue;
- temp.revents = 0;
- mArray.push_back(temp);
- }
+ CAmShCopyPollfd(mListPollfd_t& dest) : mArray(dest) {}
+ void operator()(const sh_poll_s& row);
};
class CAmShCallFire //!< functor to call the firecallbacks
{
public:
- CAmShCallFire()
- {
- }
- ;
- void operator()(sh_poll_s& row)
- {
- row.firedCB->Call(row.pollfdValue, row.handle, row.userData);
- }
+ CAmShCallFire() {};
+ void operator()(sh_poll_s& row);
};
class CAmShCallPrep //!< functor to call the preparation callbacks
{
public:
- CAmShCallPrep()
- {
- }
- ;
- void operator()(sh_poll_s& row)
- {
- if (row.prepareCB)
- row.prepareCB->Call(row.handle, row.userData);
- }
+ CAmShCallPrep() {};
+ void operator()(sh_poll_s& row);
};
class CAmShCallTimer //!<functor to call a timer
{
public:
- CAmShCallTimer()
- {
- }
- ;
- void operator()(sh_timer_s& row)
- {
- row.callback->Call(row.handle, row.userData);
- }
+ CAmShCallTimer() {};
+ void operator()(sh_timer_s& row);
};
class CAmShCountdownUp //!<functor that checks if a timer is up
@@ -391,33 +347,15 @@ private:
private:
timespec mDiffTime;
public:
- CAmShCountdownUp(const timespec& differenceTime) :
- mDiffTime(differenceTime)
- {
- }
- ;
- bool operator()(const sh_timer_s& row)
- {
- timespec sub = timespecSub(row.countdown, mDiffTime);
- if (sub.tv_nsec == 0 && sub.tv_sec == 0)
- return (true);
- return (false);
- }
+ CAmShCountdownUp(const timespec& differenceTime) : mDiffTime(differenceTime) {};
+ bool operator()(const sh_timer_s& row);
};
class CAmShCountdownZero //!<functor that checks if a timer is zero
{
public:
- CAmShCountdownZero()
- {
- }
- ;
- bool operator()(const sh_timer_s& row)
- {
- if (row.countdown.tv_nsec == 0 && row.countdown.tv_sec == 0)
- return (true);
- return (false);
- }
+ CAmShCountdownZero() {};
+ bool operator()(const sh_timer_s& row);
};
class CAmShSubstractTime //!<functor to easy substract from each countdown value
@@ -425,10 +363,7 @@ private:
private:
timespec param;
public:
- CAmShSubstractTime(timespec param) :
- param(param)
- {
- }
+ CAmShSubstractTime(timespec param) : param(param) {}
inline void operator()(sh_timer_s& t)
{
t.countdown = timespecSub(t.countdown, param);
@@ -460,8 +395,7 @@ private:
public:
TAmShTimerCallBack(TClass* instance, void (TClass::*function)(sh_timerHandle_t handle, void* userData)) :
mInstance(instance), //
- mFunction(function)
- {};
+ mFunction(function) {};
virtual void Call(sh_timerHandle_t handle, void* userData)
{
@@ -481,8 +415,7 @@ private:
public:
TAmShPollPrepare(TClass* instance, void (TClass::*function)(const sh_timerHandle_t handle, void* userData)) :
mInstance(instance), //
- mFunction(function)
- {};
+ mFunction(function) {};
virtual void Call(const sh_timerHandle_t handle, void* userData)
{
@@ -502,8 +435,7 @@ private:
public:
TAmShPollFired(TClass* instance, void (TClass::*function)(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)) :
mInstance(instance), //
- mFunction(function)
- {};
+ mFunction(function) {};
virtual void Call(const pollfd pollfd, const sh_pollHandle_t handle, void* userData)
{
@@ -523,8 +455,7 @@ private:
public:
TAmShPollCheck(TClass* instance, bool (TClass::*function)(const sh_pollHandle_t handle, void* userData)) :
mInstance(instance), //
- mFunction(function)
- {};
+ mFunction(function) {};
virtual bool Call(const sh_pollHandle_t handle, void* userData)
{
@@ -544,8 +475,7 @@ private:
public:
TAmShPollDispatch(TClass* instance, bool (TClass::*function)(const sh_pollHandle_t handle, void* userData)) :
mInstance(instance), //
- mFunction(function)
- {};
+ mFunction(function) {};
virtual bool Call(const sh_pollHandle_t handle, void* userData)
{
diff --git a/AudioManagerUtilities/src/CAmSocketHandler.cpp b/AudioManagerUtilities/src/CAmSocketHandler.cpp
index 3f4534a..1092198 100644
--- a/AudioManagerUtilities/src/CAmSocketHandler.cpp
+++ b/AudioManagerUtilities/src/CAmSocketHandler.cpp
@@ -208,7 +208,7 @@ am_Error_e CAmSocketHandler::addFDPoll(const int fd, const short event, IAmShPol
}
if (mLastInsertedPollHandle==lastHandle)
{
- logError(__PRETTY_FUNCTION__,"Could not create new polls, too many open!");
+ logError(__func__,"Could not create new polls, too many open!");
return (am_Error_e::E_NOT_POSSIBLE);
}
@@ -287,7 +287,7 @@ am_Error_e CAmSocketHandler::addTimer(const timespec timeouts, IAmShTimerCallBac
}
if (lastTimerHandle==mLastInsertedHandle)
{
- logError(__PRETTY_FUNCTION__,"Could not create new timers, too many open!");
+ logError(__func__,"Could not create new timers, too many open!");
return (am_Error_e::E_NOT_POSSIBLE);
}
@@ -583,5 +583,67 @@ inline timespec* CAmSocketHandler::insertTime(timespec& buffertime)
}
}
+void CAmSocketHandler::CAmShCallFire::operator()(sh_poll_s& row)
+{
+ try
+ {
+ row.firedCB->Call(row.pollfdValue, row.handle, row.userData);
+ }
+ catch (std::exception& e)
+ {
+ logError("Sockethandler: Exception in FireCallback,caught",e.what());
+ }
+}
+
+void CAmSocketHandler::CAmShCallPrep::operator()(sh_poll_s& row)
+{
+ if (row.prepareCB)
+ {
+ try
+ {
+ row.prepareCB->Call(row.handle, row.userData);
+ }
+ catch (std::exception& e)
+ {
+ logError("Sockethandler: Exception in Preparecallback,caught",e.what());
+ }
+ }
+}
+
+void CAmSocketHandler::CAmShCallTimer::operator()(sh_timer_s& row)
+{
+ try
+ {
+ row.callback->Call(row.handle, row.userData);
+ }
+ catch (std::exception& e)
+ {
+ logError("Sockethandler: Exception in Timercallback,caught",e.what());
+ }
+}
+
+void CAmSocketHandler::CAmShCopyPollfd::operator()(const sh_poll_s& row)
+{
+ pollfd temp = row.pollfdValue;
+ temp.revents = 0;
+ mArray.push_back(temp);
+}
+
+bool CAmSocketHandler::CAmShCountdownUp::operator()(const sh_timer_s& row)
+{
+ timespec sub = timespecSub(row.countdown, mDiffTime);
+ if (sub.tv_nsec == 0 && sub.tv_sec == 0)
+ return (true);
+ return (false);
+}
+
+bool CAmSocketHandler::CAmShCountdownZero::operator()(const sh_timer_s& row)
+{
+ if (row.countdown.tv_nsec == 0 && row.countdown.tv_sec == 0)
+ return (true);
+ return (false);
+}
+
+
}