SensESP
3.4.1-alpha
Universal Signal K sensor toolkit ESP32
Loading...
Searching...
No Matches
signalk_put_request_listener.cpp
Go to the documentation of this file.
1
#include "
signalk_put_request_listener.h
"
2
3
#include <algorithm>
4
5
#include "
signalk_listener.h
"
6
7
namespace
sensesp
{
8
9
std::vector<SKPutListener*> SKPutListener::listeners_;
10
11
SKPutListener::SKPutListener
(
const
String& sk_path) : sk_path{sk_path} {
12
listeners_.push_back(
this
);
13
}
14
15
SKPutListener::~SKPutListener
() {
16
// The WS client iterates this registry while holding the SKListener
17
// semaphore, so mutate it under the same lock.
18
SKListener::take_semaphore
();
19
listeners_.erase(std::remove(listeners_.begin(), listeners_.end(),
this
),
20
listeners_.end());
21
SKListener::release_semaphore
();
22
}
23
24
void
SKPutListener::clear_registry
() {
25
SKListener::take_semaphore
();
26
listeners_.clear();
27
SKListener::release_semaphore
();
28
}
29
30
}
// namespace sensesp
sensesp::SKListener::take_semaphore
static bool take_semaphore(uint64_t timeout_ms=0)
Definition
signalk_listener.cpp:37
sensesp::SKListener::release_semaphore
static void release_semaphore()
Definition
signalk_listener.cpp:45
sensesp::SKPutListener::SKPutListener
SKPutListener(const String &sk_path)
Definition
signalk_put_request_listener.cpp:11
sensesp::SKPutListener::clear_registry
static void clear_registry()
Definition
signalk_put_request_listener.cpp:24
sensesp::SKPutListener::~SKPutListener
virtual ~SKPutListener()
Definition
signalk_put_request_listener.cpp:15
sensesp
Definition
sensesp.cpp:7
signalk_listener.h
signalk_put_request_listener.h
src
sensesp
signalk
signalk_put_request_listener.cpp
Generated by
1.9.8