Uncrustified
This commit is contained in:
parent
41cc5324f4
commit
0557b115bc
4 changed files with 44 additions and 61 deletions
|
@ -120,15 +120,13 @@ public:
|
||||||
void
|
void
|
||||||
set_memory_strategy(memory_strategy::MemoryStrategySharedPtr memory_strategy)
|
set_memory_strategy(memory_strategy::MemoryStrategySharedPtr memory_strategy)
|
||||||
{
|
{
|
||||||
if (memory_strategy == nullptr)
|
if (memory_strategy == nullptr) {
|
||||||
{
|
|
||||||
throw std::runtime_error("Received NULL memory strategy in executor.");
|
throw std::runtime_error("Received NULL memory strategy in executor.");
|
||||||
}
|
}
|
||||||
_memory_strategy = memory_strategy;
|
_memory_strategy = memory_strategy;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
void
|
void
|
||||||
execute_any_executable(AnyExecutableSharedPtr & any_exec)
|
execute_any_executable(AnyExecutableSharedPtr & any_exec)
|
||||||
{
|
{
|
||||||
|
|
|
@ -25,7 +25,7 @@ enum class HandleType{subscriber_handle, service_handle, client_handle, guard_co
|
||||||
namespace executor
|
namespace executor
|
||||||
{
|
{
|
||||||
class Executor;
|
class Executor;
|
||||||
};
|
}
|
||||||
|
|
||||||
namespace memory_strategy
|
namespace memory_strategy
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,6 @@ class MemoryStrategy
|
||||||
friend class executor::Executor;
|
friend class executor::Executor;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
virtual void ** borrow_handles(HandleType type, size_t number_of_handles)
|
virtual void ** borrow_handles(HandleType type, size_t number_of_handles)
|
||||||
{
|
{
|
||||||
return static_cast<void **>(rcl_malloc(sizeof(void *) * number_of_handles));
|
return static_cast<void **>(rcl_malloc(sizeof(void *) * number_of_handles));
|
||||||
|
@ -63,9 +62,7 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
typedef std::shared_ptr<MemoryStrategy> MemoryStrategySharedPtr;
|
typedef std::shared_ptr<MemoryStrategy> MemoryStrategySharedPtr;
|
||||||
|
|
|
@ -1,4 +1,3 @@
|
||||||
|
|
||||||
// Copyright 2015 Open Source Robotics Foundation, Inc.
|
// Copyright 2015 Open Source Robotics Foundation, Inc.
|
||||||
//
|
//
|
||||||
// Licensed under the Apache License, Version 2.0 (the "License");
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
@ -31,7 +30,6 @@ class StaticMemoryStrategy : public memory_strategy::MemoryStrategy
|
||||||
{
|
{
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
StaticMemoryStrategy()
|
StaticMemoryStrategy()
|
||||||
{
|
{
|
||||||
memset(_memory_pool, 0, _pool_size);
|
memset(_memory_pool, 0, _pool_size);
|
||||||
|
@ -42,21 +40,18 @@ public:
|
||||||
_pool_seq = 0;
|
_pool_seq = 0;
|
||||||
_exec_seq = 0;
|
_exec_seq = 0;
|
||||||
|
|
||||||
for (size_t i = 0; i < _pool_size; ++i)
|
for (size_t i = 0; i < _pool_size; ++i) {
|
||||||
{
|
|
||||||
_memory_map[_memory_pool[i]] = 0;
|
_memory_map[_memory_pool[i]] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (size_t i = 0; i < _max_executables; ++i)
|
for (size_t i = 0; i < _max_executables; ++i) {
|
||||||
{
|
|
||||||
_executable_pool[i] = std::make_shared<executor::AnyExecutable>(executor::AnyExecutable());
|
_executable_pool[i] = std::make_shared<executor::AnyExecutable>(executor::AnyExecutable());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void ** borrow_handles(HandleType type, size_t number_of_handles)
|
void ** borrow_handles(HandleType type, size_t number_of_handles)
|
||||||
{
|
{
|
||||||
switch(type)
|
switch (type) {
|
||||||
{
|
|
||||||
case HandleType::subscriber_handle:
|
case HandleType::subscriber_handle:
|
||||||
return _subscriber_pool;
|
return _subscriber_pool;
|
||||||
case HandleType::service_handle:
|
case HandleType::service_handle:
|
||||||
|
@ -73,8 +68,7 @@ public:
|
||||||
|
|
||||||
void return_handles(HandleType type, void ** handles)
|
void return_handles(HandleType type, void ** handles)
|
||||||
{
|
{
|
||||||
switch(type)
|
switch (type) {
|
||||||
{
|
|
||||||
case HandleType::subscriber_handle:
|
case HandleType::subscriber_handle:
|
||||||
memset(_subscriber_pool, 0, _max_subscribers);
|
memset(_subscriber_pool, 0, _max_subscribers);
|
||||||
break;
|
break;
|
||||||
|
@ -95,8 +89,7 @@ public:
|
||||||
|
|
||||||
executor::AnyExecutableSharedPtr instantiate_next_executable()
|
executor::AnyExecutableSharedPtr instantiate_next_executable()
|
||||||
{
|
{
|
||||||
if (_exec_seq >= _max_executables)
|
if (_exec_seq >= _max_executables) {
|
||||||
{
|
|
||||||
// wrap around
|
// wrap around
|
||||||
_exec_seq = 0;
|
_exec_seq = 0;
|
||||||
}
|
}
|
||||||
|
@ -110,14 +103,12 @@ public:
|
||||||
{
|
{
|
||||||
// Extremely naive static allocation strategy
|
// Extremely naive static allocation strategy
|
||||||
// Keep track of block size at a given pointer
|
// Keep track of block size at a given pointer
|
||||||
if (_pool_seq + size > _pool_size)
|
if (_pool_seq + size > _pool_size) {
|
||||||
{
|
|
||||||
// Start at 0
|
// Start at 0
|
||||||
_pool_seq = 0;
|
_pool_seq = 0;
|
||||||
}
|
}
|
||||||
void * ptr = _memory_pool[_pool_seq];
|
void * ptr = _memory_pool[_pool_seq];
|
||||||
if (_memory_map.count(ptr) == 0)
|
if (_memory_map.count(ptr) == 0) {
|
||||||
{
|
|
||||||
// We expect to have the state for all blocks pre-mapped into _memory_map
|
// We expect to have the state for all blocks pre-mapped into _memory_map
|
||||||
throw std::runtime_error("Unexpected pointer in rcl_malloc.");
|
throw std::runtime_error("Unexpected pointer in rcl_malloc.");
|
||||||
}
|
}
|
||||||
|
@ -129,8 +120,7 @@ public:
|
||||||
|
|
||||||
void rcl_free(void * ptr)
|
void rcl_free(void * ptr)
|
||||||
{
|
{
|
||||||
if (_memory_map.count(ptr) == 0)
|
if (_memory_map.count(ptr) == 0) {
|
||||||
{
|
|
||||||
// We expect to have the state for all blocks pre-mapped into _memory_map
|
// We expect to have the state for all blocks pre-mapped into _memory_map
|
||||||
throw std::runtime_error("Unexpected pointer in rcl_free.");
|
throw std::runtime_error("Unexpected pointer in rcl_free.");
|
||||||
}
|
}
|
||||||
|
@ -139,8 +129,6 @@ public:
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const size_t _pool_size = 1024;
|
static const size_t _pool_size = 1024;
|
||||||
static const size_t _max_subscribers = 10;
|
static const size_t _max_subscribers = 10;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue