adsd3500_interrupt_notifier.h
Go to the documentation of this file.
1 /*
2  * BSD 3-Clause License
3  *
4  * Copyright (c) 2019, Analog Devices, Inc.
5  * All rights reserved.
6  *
7  * Redistribution and use in source and binary forms, with or without
8  * modification, are permitted provided that the following conditions are met:
9  *
10  * 1. Redistributions of source code must retain the above copyright notice, this
11  * list of conditions and the following disclaimer.
12  *
13  * 2. Redistributions in binary form must reproduce the above copyright notice,
14  * this list of conditions and the following disclaimer in the documentation
15  * and/or other materials provided with the distribution.
16  *
17  * 3. Neither the name of the copyright holder nor the names of its
18  * contributors may be used to endorse or promote products derived from
19  * this software without specific prior written permission.
20  *
21  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
24  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
25  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
27  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28  * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
29  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
34 #include <memory>
35 #include <signal.h>
36 #include <vector>
37 
38 class Adsd3500Sensor;
39 
41  private:
42  Adsd3500InterruptNotifier() = default;
43 
44  public:
46  ~Adsd3500InterruptNotifier() = default;
47  void operator=(const Adsd3500InterruptNotifier &) = delete;
50  operator=(Adsd3500InterruptNotifier &&) noexcept = default;
51 
52  public:
56  bool interruptsAvailable();
57  void subscribeSensor(std::weak_ptr<Adsd3500Sensor> sensor);
58  void unsubscribeSensor(std::weak_ptr<Adsd3500Sensor> sensor);
59 
60  private:
61  static void signalEventHandler(int n, siginfo_t *info, void *unused);
62 
63  private:
64  static std::vector<std::weak_ptr<Adsd3500Sensor>> m_sensors;
66 };
Adsd3500InterruptNotifier::getInstance
static Adsd3500InterruptNotifier & getInstance()
Definition: adsd3500_interrupt_notifier.cpp:24
Adsd3500InterruptNotifier::~Adsd3500InterruptNotifier
~Adsd3500InterruptNotifier()=default
Adsd3500InterruptNotifier::interruptsAvailable
bool interruptsAvailable()
Definition: adsd3500_interrupt_notifier.cpp:77
Adsd3500InterruptNotifier::m_sensors
static std::vector< std::weak_ptr< Adsd3500Sensor > > m_sensors
Definition: adsd3500_interrupt_notifier.h:64
Adsd3500InterruptNotifier::disableInterrupts
aditof::Status disableInterrupts()
Definition: adsd3500_interrupt_notifier.cpp:73
Adsd3500InterruptNotifier::signalEventHandler
static void signalEventHandler(int n, siginfo_t *info, void *unused)
Definition: adsd3500_interrupt_notifier.cpp:29
n
GLdouble n
Definition: glcorearb.h:4153
Adsd3500InterruptNotifier::m_interruptsAvailable
bool m_interruptsAvailable
Definition: adsd3500_interrupt_notifier.h:65
aditof::Status
Status
Status of any operation that the TOF sdk performs.
Definition: status_definitions.h:48
Adsd3500InterruptNotifier::operator=
void operator=(const Adsd3500InterruptNotifier &)=delete
Adsd3500InterruptNotifier
Definition: adsd3500_interrupt_notifier.h:40
Adsd3500InterruptNotifier::subscribeSensor
void subscribeSensor(std::weak_ptr< Adsd3500Sensor > sensor)
Definition: adsd3500_interrupt_notifier.cpp:81
Adsd3500InterruptNotifier::enableInterrupts
aditof::Status enableInterrupts()
Definition: adsd3500_interrupt_notifier.cpp:43
Adsd3500InterruptNotifier::unsubscribeSensor
void unsubscribeSensor(std::weak_ptr< Adsd3500Sensor > sensor)
Definition: adsd3500_interrupt_notifier.cpp:86
status_definitions.h
Adsd3500Sensor
Definition: adsd3500_sensor.h:86
Adsd3500InterruptNotifier::Adsd3500InterruptNotifier
Adsd3500InterruptNotifier()=default


libaditof
Author(s):
autogenerated on Wed May 21 2025 02:06:47