Intel® RealSense™ Cross Platform API
Intel Realsense Cross-platform API
tm-context.h
Go to the documentation of this file.
1 // License: Apache 2.0. See LICENSE file in root directory.
2 // Copyright(c) 2017 Intel Corporation. All Rights Reserved.
3 #pragma once
4 
5 #include <memory>
6 #include <vector>
7 #include <thread>
8 #include <atomic>
9 #include "TrackingManager.h"
10 
11 namespace librealsense
12 {
13  class tm2_info;
14 
15  class tm2_context : public perc::TrackingManager::Listener
16  {
17  public:
18  tm2_context(context* ctx);
19  ~tm2_context();
20  std::shared_ptr<perc::TrackingManager> get_manager() const;
21  std::vector<perc::TrackingDevice*> query_devices() const;
23  // TrackingManager::Listener
24  void onStateChanged(perc::TrackingManager::EventType state, perc::TrackingDevice*) override;
25  void onError(perc::TrackingManager::Error error, perc::TrackingDevice*) override;
26  private:
27  void thread_proc();
29  std::shared_ptr<perc::TrackingManager::Listener> _listener;
30  std::shared_ptr<perc::TrackingManager> _manager;
31  std::vector<perc::TrackingDevice*> _devices;
32  context* _ctx;
33 
34  //_is_disposed is used in _t, keep this order:
35  std::atomic_bool _is_disposed;
36  std::thread _t;
37 
38  };
39 }
Definition: context.h:109
void onStateChanged(perc::TrackingManager::EventType state, perc::TrackingDevice *) override
Definition: types.h:1414
Definition: algo.h:16
Definition: tm-context.h:15
std::vector< perc::TrackingDevice * > query_devices() const
signal< tm2_context, std::shared_ptr< tm2_info >, std::shared_ptr< tm2_info > > on_device_changed
Definition: tm-context.h:22
std::shared_ptr< perc::TrackingManager > get_manager() const
void onError(perc::TrackingManager::Error error, perc::TrackingDevice *) override
friend class connect_disconnect_listener
Definition: tm-context.h:28