1 //******************************************************************
3 // Copyright 2014 Intel Corporation.
5 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
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
11 // http://www.apache.org/licenses/LICENSE-2.0
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.
19 //-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
23 IoTObserver::IoTObserver(IoTObserverCb Cb) :
24 m_callback(Cb), m_destroy(false), m_started(false)
26 m_observerThread[0] = thread(&IoTObserver::observerThread, this);
29 IoTObserver::~IoTObserver()
34 void IoTObserver::start()
39 lock_guard<mutex> lock(m_mutex);
46 void IoTObserver::stop()
51 void IoTObserver::terminate()
56 m_observerThread[0].join();
59 void IoTObserver::observerThread()
63 unique_lock<mutex> lock(m_mutex);