diff --git a/src/modules/uORB/ORBSet.h b/src/modules/uORB/ORBSet.hpp similarity index 100% rename from src/modules/uORB/ORBSet.h rename to src/modules/uORB/ORBSet.hpp diff --git a/src/modules/uORB/uORBDevices_nuttx.hpp b/src/modules/uORB/uORBDevices_nuttx.hpp index ef4bb3b672..012e7893dd 100644 --- a/src/modules/uORB/uORBDevices_nuttx.hpp +++ b/src/modules/uORB/uORBDevices_nuttx.hpp @@ -37,6 +37,7 @@ #include #include #include +#include "ORBMap.hpp" #include "uORBCommon.hpp" @@ -44,93 +45,8 @@ namespace uORB { class DeviceNode; class DeviceMaster; - class ORBMap; } -class uORB::ORBMap -{ -public: - struct Node { - struct Node *next; - const char * node_name; - uORB::DeviceNode *node; - }; - - ORBMap() : - _top(nullptr), - _end(nullptr) - { } - ~ORBMap() { - while (_top != nullptr) { - unlinkNext(_top); - if (_top->next == nullptr) { - free((void *)_top->node_name); - free(_top); - _top = nullptr; - _end = nullptr; - } - } - } - void insert(const char *node_name, uORB::DeviceNode*node) - { - Node **p; - if (_top == nullptr) - p = &_top; - else - p = &_end->next; - - *p = (Node *)malloc(sizeof(Node)); - if (_end) - _end = _end->next; - else { - _end = _top; - } - _end->next = nullptr; - _end->node_name = strdup(node_name); - _end->node = node; - } - - bool find(const char *node_name) - { - Node *p = _top; - while (p) { - if (strcmp(p->node_name, node_name) == 0) { - return true; - } - p = p->next; - } - return false; - } - - uORB::DeviceNode* get(const char *node_name) - { - Node *p = _top; - while (p) { - if (strcmp(p->node_name, node_name) == 0) { - return p->node; - } - } - return nullptr; - } - - void unlinkNext(Node *a) - { - Node *b = a->next; - if (b != nullptr) { - if (_end == b) { - _end = a; - } - a->next = b->next; - free((void *)b->node_name); - free(b); - } - } - -private: - Node *_top; - Node *_end; -}; - /** * Per-object device instance. */ diff --git a/src/modules/uORB/uORBManager.hpp b/src/modules/uORB/uORBManager.hpp index 60a0cc5541..a4fb49c82c 100644 --- a/src/modules/uORB/uORBManager.hpp +++ b/src/modules/uORB/uORBManager.hpp @@ -38,7 +38,7 @@ #include "uORBDevices.hpp" #include #ifdef __PX4_NUTTX -#include "ORBSet.h" +#include "ORBSet.hpp" #else #include #include