Add destroy function into primitive service timer
[platform/upstream/iotivity.git] / service / resource-manipulation / modules / common / expiryTimer / src / ExpiryTimer.cpp
1 //******************************************************************
2 //
3 // Copyright 2015 Samsung Electronics All Rights Reserved.
4 //
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
6 //
7 // Licensed under the Apache License, Version 2.0 (the "License");
8 // you may not use this file except in compliance with the License.
9 // You may obtain a copy of the License at
10 //
11 //      http://www.apache.org/licenses/LICENSE-2.0
12 //
13 // Unless required by applicable law or agreed to in writing, software
14 // distributed under the License is distributed on an "AS IS" BASIS,
15 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 // See the License for the specific language governing permissions and
17 // limitations under the License.
18 //
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
20
21 #include "ExpiryTimer.h"
22 #include "ExpiryTimer_Impl.h"
23
24 ExpiryTimer_Impl* timerPtr;
25
26 ExpiryTimer::ExpiryTimer()
27 {
28     timerPtr = ExpiryTimer_Impl::getInstance();
29 }
30
31 ExpiryTimer::~ExpiryTimer()
32 {
33     for(auto it : mTimerIDList)
34     {
35         timerPtr->cancelTimer(it);
36     }
37     timerPtr->destroy();
38     mTimerIDList.clear();
39 }
40
41 ExpiryTimer::TimerID ExpiryTimer::postTimer(DelayMilliSec sec, TimerCB cb)
42 {
43     TimerID retID = 0;
44
45     retID = timerPtr->postTimer(sec, cb);
46     mTimerIDList.push_back(retID);
47
48     return retID;
49 }
50
51 bool ExpiryTimer::cancelTimer(TimerID timerID)
52 {
53     bool ret = false;
54
55     ret = timerPtr->cancelTimer(timerID);
56     mTimerIDList.remove(timerID);
57
58     return ret;
59 }