diff options
author | Christian Linke <Christian.Linke@bmw.de> | 2016-05-18 10:05:17 -0700 |
---|---|---|
committer | Christian Linke <Christian.Linke@bmw.de> | 2016-05-18 10:05:31 -0700 |
commit | b2dcab534e50d687f0ec905ba859e60fe519a3c5 (patch) | |
tree | 766cee90b6dee637a0d84ae0861aebb611e43bbd /AudioManagerUtilities/src/CAmSocketHandler.cpp | |
parent | fc74b4862d1bf5f0ae2292c49df6f9bd85952edb (diff) | |
download | audiomanager-b2dcab534e50d687f0ec905ba859e60fe519a3c5.tar.gz |
try catch for sockethandler callbacks
small improvements of sockethandler.
Signed-off-by: Christian Linke <Christian.Linke@bmw.de>
Diffstat (limited to 'AudioManagerUtilities/src/CAmSocketHandler.cpp')
-rw-r--r-- | AudioManagerUtilities/src/CAmSocketHandler.cpp | 66 |
1 files changed, 64 insertions, 2 deletions
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); +} + + } |