SMACC2
Loading...
Searching...
No Matches
smacc2
include
smacc2
callback_counter_semaphore.hpp
Go to the documentation of this file.
1
// Copyright 2021 RobosoftAI Inc.
2
//
3
// Licensed under the Apache License, Version 2.0 (the "License");
4
// you may not use this file except in compliance with the License.
5
// You may obtain a copy of the License at
6
//
7
// http://www.apache.org/licenses/LICENSE-2.0
8
//
9
// Unless required by applicable law or agreed to in writing, software
10
// distributed under the License is distributed on an "AS IS" BASIS,
11
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
// See the License for the specific language governing permissions and
13
// limitations under the License.
14
15
/*****************************************************************************************************************
16
*
17
* Authors: Pablo Inigo Blasco, Brett Aldrich
18
*
19
******************************************************************************************************************/
20
21
#pragma once
22
#include <boost/signals2.hpp>
23
#include <condition_variable>
24
#include <iostream>
25
#include <mutex>
26
#include <rclcpp/rclcpp.hpp>
27
#include <thread>
28
29
namespace
smacc2
30
{
31
class
CallbackCounterSemaphore
32
{
33
public
:
34
CallbackCounterSemaphore
(std::string name,
int
count = 0);
35
bool
acquire
();
36
37
void
release
();
38
39
void
finalize
();
40
41
void
addConnection
(boost::signals2::connection conn);
42
43
private
:
44
int
count_
;
45
std::mutex
mutex_
;
46
std::condition_variable
cv_
;
47
std::vector<boost::signals2::connection>
connections_
;
48
bool
finalized
=
false
;
49
std::string
name_
;
50
};
51
}
// namespace smacc2
smacc2::CallbackCounterSemaphore
Definition
callback_counter_semaphore.hpp:32
smacc2::CallbackCounterSemaphore::name_
std::string name_
Definition
callback_counter_semaphore.hpp:49
smacc2::CallbackCounterSemaphore::cv_
std::condition_variable cv_
Definition
callback_counter_semaphore.hpp:46
smacc2::CallbackCounterSemaphore::release
void release()
Definition
callback_counter_semaphore.cpp:59
smacc2::CallbackCounterSemaphore::addConnection
void addConnection(boost::signals2::connection conn)
Definition
callback_counter_semaphore.cpp:91
smacc2::CallbackCounterSemaphore::mutex_
std::mutex mutex_
Definition
callback_counter_semaphore.hpp:45
smacc2::CallbackCounterSemaphore::acquire
bool acquire()
Definition
callback_counter_semaphore.cpp:35
smacc2::CallbackCounterSemaphore::finalized
bool finalized
Definition
callback_counter_semaphore.hpp:48
smacc2::CallbackCounterSemaphore::connections_
std::vector< boost::signals2::connection > connections_
Definition
callback_counter_semaphore.hpp:47
smacc2::CallbackCounterSemaphore::count_
int count_
Definition
callback_counter_semaphore.hpp:44
smacc2::CallbackCounterSemaphore::finalize
void finalize()
Definition
callback_counter_semaphore.cpp:70
smacc2
Definition
callback_counter_semaphore.hpp:30
Generated by
1.9.8