Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
FORMUS3IC_LAS3
/
embb
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
db171626
authored
Apr 29, 2016
by
lucapegolotti
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
containers_cpp: fix cpplint warnings
parent
e59cccfc
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
97 additions
and
106 deletions
+97
-106
containers_cpp/include/embb/containers/blocking_map.h
+52
-53
containers_cpp/include/embb/containers/blocking_priority_queue.h
+14
-13
containers_cpp/include/embb/containers/blocking_queue.h
+4
-6
containers_cpp/include/embb/containers/blocking_set.h
+2
-3
containers_cpp/include/embb/containers/blocking_stack.h
+3
-5
containers_cpp/include/embb/containers/internal/blocking_map-inl.h
+6
-5
containers_cpp/include/embb/containers/internal/blocking_priority_queue-inl.h
+5
-5
containers_cpp/include/embb/containers/internal/blocking_push_and_pop_container.h
+5
-9
containers_cpp/include/embb/containers/internal/blocking_set-inl.h
+6
-7
No files found.
containers_cpp/include/embb/containers/blocking_map.h
View file @
db171626
...
...
@@ -45,72 +45,71 @@ class BlockingMap {
typedef
embb
::
base
::
LockGuard
<>
LockGuard
;
private
:
/**
* Internal map from the standard library.
*/
std
::
map
<
Key
,
Value
>
internalMap
;
/**
* Internal map from the standard library.
*/
std
::
map
<
Key
,
Value
>
internalMap
;
/**
* Mutex for synchronizing concurrent accesses to the structure.
*/
Mutex
mutex
;
/**
* Mutex for synchronizing concurrent accesses to the structure.
*/
Mutex
mutex
;
public
:
/**
* Creates an empty map.
*/
BlockingMap
();
/**
* Inserts a new element (key,value) in the map, if no elements
* with the same key already exists.
*
* \return \c true if the inserting succeeded,
* \c false otherwise.
*/
bool
Insert
(
const
Key
&
key
,
/**< [IN] Constant reference to key of the element to insert*/
const
Value
&
value
/**< [IN] Constant reference to value of the element to insert*/
);
/**
* Erases the element with the specified key, if such an element exists.
*
* \return \c true if erasing was successfull, \c false otherwise.
*/
bool
Erase
(
const
Key
&
key
/**< [IN] Constant reference to the key of the element to erase*/
);
/**
* Creates an empty map.
*/
BlockingMap
();
/**
* Inserts a new element (key,value) in the map, if no elements
* with the same key already exists.
*
* \return \c true if the inserting succeeded,
* \c false otherwise.
*/
bool
Insert
(
const
Key
&
key
,
/**< [IN] Constant reference to key of the element to insert*/
const
Value
&
value
/**< [IN] Constant reference to value of the element to insert*/
);
/**
* Erases the element with the specified key, if such an element exists.
*
* \return \c true if erasing was successfull, \c false otherwise.
*/
bool
Erase
(
const
Key
&
key
/**< [IN] Constant reference to the key of the element to erase*/
);
/*
* Checks if the map contains an element with the specified key.
*
* \return \c true if the the map contains the element, \c false
* otherwise
*/
bool
Contains
(
const
Key
&
key
/**< [IN] Constant reference to key of the element
to search for*/
);
/*
* Checks if the map contains an element with the specified key.
*
* \return \c true if the the map contains the element, \c false
* otherwise
*/
bool
Contains
(
const
Key
&
key
/**< [IN] Constant reference to key of the element
to search for*/
);
/**
/**
* Accesses the element with the specified key, if such an element exists.
* If it does not exists, creates an element with the specified key.
*
* \return Reference to the value with the specified key.
*/
Value
&
operator
[](
const
Key
&
key
/**< [IN] Constant reference to key of the element to access*/
);
Value
&
operator
[](
const
Key
&
key
/**< [IN] Constant reference to key of the element to access*/
);
};
}
}
}
// namespace containers
}
// namespace embb
#include <embb/containers/internal/blocking_map-inl.h>
#endif // EMBB_CONTAINERS_BLOCKING_MAP_H_
#endif
// EMBB_CONTAINERS_BLOCKING_MAP_H_
containers_cpp/include/embb/containers/blocking_priority_queue.h
View file @
db171626
...
...
@@ -23,16 +23,18 @@
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef EMBB_CONTAINERS_BLOCKING_PRIORITY_QUEUE_H_
#define EMBB_CONTAINERS_BLOCKING_PRIORITY_QUEUE_H_
#include <queue>
#include <embb/containers/internal/blocking_push_and_pop_container.h>
#include <functional>
#include <vector>
#include <queue>
namespace
embb
{
namespace
containers
{
/**
* Blocking priority queue.
*
...
...
@@ -48,15 +50,15 @@ namespace containers {
* which determines what element will be
* dequeued next.
*/
template
<
typename
Type
,
class
Container
=
std
::
vector
<
Type
>
,
template
<
typename
Type
,
class
Container
=
std
::
vector
<
Type
>
,
class
Compare
=
std
::
less
<
typename
Container
::
value_type
>>
class
BlockingPriorityQueue
:
public
BlockingPushAndPopContainer
<
Type
>
{
private
:
/**
* Internal priority_queue from the standard library.
*/
std
::
priority_queue
<
Type
,
Container
,
Compare
>
internalQueue
;
std
::
priority_queue
<
Type
,
Container
,
Compare
>
internalQueue
;
/**
* Wrapper for the push method in the standard priority_queue.
...
...
@@ -86,15 +88,15 @@ class BlockingPriorityQueue : public BlockingPushAndPopContainer<Type> {
void
Enqueue
(
const
Type
&
element
/**< [IN] Constant reference to element to enqueue*/
);
void
Dequeue
(
Type
&
element
/**< [IN] Reference to dequeued element*/
);
};
}
// namespace containers
}
// namespace containers
}
// namespace embb
#include <embb/containers/internal/blocking_priority_queue-inl.h>
#endif // EMBB_CONTAINERS_BLOCKING_PRIORITY_QUEUE
\ No newline at end of file
#endif // EMBB_CONTAINERS_BLOCKING_PRIORITY_QUEUE_H_
containers_cpp/include/embb/containers/blocking_queue.h
View file @
db171626
...
...
@@ -27,8 +27,8 @@
#ifndef EMBB_CONTAINERS_BLOCKING_QUEUE_H_
#define EMBB_CONTAINERS_BLOCKING_QUEUE_H_
#include <queue>
#include <embb/containers/internal/blocking_push_and_pop_container.h>
#include <queue>
namespace
embb
{
namespace
containers
{
...
...
@@ -58,7 +58,7 @@ class BlockingQueue : public BlockingPushAndPopContainer<Type> {
* in the super class.
*/
void
SpecializedPush
(
const
Type
&
element
);
/**
* Wrapper for pop_front method in the standard library queue.
* Implements the corresponding pure virtual method
...
...
@@ -90,12 +90,11 @@ class BlockingQueue : public BlockingPushAndPopContainer<Type> {
void
Dequeue
(
Type
&
element
/**< [IN, OUT] Reference to dequeued element*/
);
};
}
// namespace containers
}
// namespace embb
#include <embb/containers/internal/blocking_queue-inl.h>
#endif // EMBB_CONTAINERS_BLOCKING_QUEUE_H_
\ No newline at end of file
#endif // EMBB_CONTAINERS_BLOCKING_QUEUE_H_
containers_cpp/include/embb/containers/blocking_set.h
View file @
db171626
...
...
@@ -92,11 +92,10 @@ class BlockingSet {
bool
Contains
(
const
Type
&
element
/**< [IN] Reference to the element to search for. */
);
};
}
}
}
// namespace containers
}
// namespace embb
#include <embb/containers/internal/blocking_set-inl.h>
...
...
containers_cpp/include/embb/containers/blocking_stack.h
View file @
db171626
...
...
@@ -27,8 +27,8 @@
#ifndef EMBB_CONTAINERS_BLOCKING_STACK_H_
#define EMBB_CONTAINERS_BLOCKING_STACK_H_
#include <stack>
#include <embb/containers/internal/blocking_push_and_pop_container.h>
#include <stack>
namespace
embb
{
namespace
containers
{
...
...
@@ -86,12 +86,11 @@ class BlockingStack : public BlockingPushAndPopContainer<Type> {
void
Pop
(
Type
&
element
/**< [IN, OUT] Reference to popped element*/
);
};
}
// namespace containers
}
// namespace embb
#include <embb/containers/internal/blocking_stack-inl.h>
#endif // EMBB_CONTAINERS_BLOCKING_STACK_H_
\ No newline at end of file
#endif // EMBB_CONTAINERS_BLOCKING_STACK_H_
containers_cpp/include/embb/containers/internal/blocking_map-inl.h
View file @
db171626
...
...
@@ -25,7 +25,9 @@
*/
#ifndef EMBB_CONTAINERS_INTERNAL_BLOCKING_MAP_INL_H_
#define EMBB_CONTAINERS_INTERNAL_BLOCKING_SET_INL_H_
#define EMBB_CONTAINERS_INTERNAL_BLOCKING_MAP_INL_H_
#include <map>
namespace
embb
{
namespace
containers
{
...
...
@@ -58,7 +60,7 @@ V& BlockingMap<K, V>::operator[](const K& key) {
return
internalMap
[
key
];
}
}
}
}
// namespace containers
}
// namespace embb
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_MAP_INL_H_
\ No newline at end of file
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_MAP_INL_H_
containers_cpp/include/embb/containers/internal/blocking_priority_queue-inl.h
View file @
db171626
...
...
@@ -31,7 +31,8 @@ namespace embb {
namespace
containers
{
template
<
typename
T
,
class
Container
,
class
Compare
>
void
BlockingPriorityQueue
<
T
,
Container
,
Compare
>::
SpecializedPush
(
const
T
&
element
)
{
void
BlockingPriorityQueue
<
T
,
Container
,
Compare
>::
SpecializedPush
(
const
T
&
element
)
{
internalQueue
.
push
(
element
);
}
...
...
@@ -56,7 +57,7 @@ bool BlockingPriorityQueue<T, Container, Compare>::IsEmpty() {
return
internalQueue
.
empty
();
}
}
}
}
// namespace containers
}
// namespace embb
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_PRIORITY_QUEUE_INL_H_
\ No newline at end of file
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_PRIORITY_QUEUE_INL_H_
containers_cpp/include/embb/containers/internal/blocking_push_and_pop_container.h
View file @
db171626
...
...
@@ -33,15 +33,13 @@
namespace
embb
{
namespace
containers
{
// Abstract class, provides a synchronization mechanism for
// Abstract class, provides a synchronization mechanism for
// data structures that support push/pop-like methods (e.g. stacks, queues)
template
<
typename
Type
>
class
BlockingPushAndPopContainer
{
typedef
embb
::
base
::
Mutex
Mutex
;
protected
:
Mutex
mutex
;
embb
::
base
::
ConditionVariable
condition
;
...
...
@@ -60,7 +58,7 @@ class BlockingPushAndPopContainer {
condition
.
NotifyOne
();
}
void
BlockingPop
(
Type
&
element
)
{
void
BlockingPop
(
Type
&
element
)
{
embb
::
base
::
UniqueLock
<
Mutex
>
lock
(
mutex
);
while
(
IsEmpty
())
{
...
...
@@ -69,10 +67,9 @@ class BlockingPushAndPopContainer {
SpecializedPop
(
element
);
}
};
}
}
}
// namespace containers
}
// namespace embb
#endif // EMBB_CONTAINERS_BLOCKING_PUSH_AND_POP_CONTAINER_
\ No newline at end of file
#endif // EMBB_CONTAINERS_BLOCKING_PUSH_AND_POP_CONTAINER_H_
containers_cpp/include/embb/containers/internal/blocking_set-inl.h
View file @
db171626
...
...
@@ -35,24 +35,24 @@ BlockingSet<T>::BlockingSet() :
internalSet
()
{}
template
<
typename
T
>
bool
BlockingSet
<
T
>::
Insert
(
const
T
&
element
){
bool
BlockingSet
<
T
>::
Insert
(
const
T
&
element
)
{
LockGuard
lock
(
mutex
);
return
internalSet
.
insert
(
element
).
second
;
}
template
<
typename
T
>
bool
BlockingSet
<
T
>::
Erase
(
const
T
&
element
){
bool
BlockingSet
<
T
>::
Erase
(
const
T
&
element
)
{
LockGuard
lock
(
mutex
);
return
internalSet
.
erase
(
element
)
>
0
;
}
template
<
typename
T
>
bool
BlockingSet
<
T
>::
Contains
(
const
T
&
element
){
bool
BlockingSet
<
T
>::
Contains
(
const
T
&
element
)
{
LockGuard
lock
(
mutex
);
return
internalSet
.
find
(
element
)
!=
internalSet
.
end
();
}
}
}
}
// namespace containers
}
// namespace embb
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_SET_INL_H_
\ No newline at end of file
#endif // EMBB_CONTAINERS_INTERNAL_BLOCKING_SET_INL_H_
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment