QueueMapManager #128

Closed
opened 2020-07-06 13:52:50 +02:00 by muellerr · 3 comments
Owner

During a meeting, me and @gaisser were talking about message queues
and the problem that the message queue ID actually breaks layering.

I implemented a QueueMapManager for the host OSAL which is interesting for the FSFW in general because it propably breaks this layering if it is used by the MessageQueue implementations.

THe map manager implements the mapping from MessageQueueId to a message queue pointer.

This could be used to break this layering. CUrrently, the queue map manager uses a std::unordered_map, which in turns uses a hashtable as the underlying data strcture. Therefore, the look-up time would be constant (O(1)) . It is implemented as a singleton. If this is interesting for the FSFW, I will propose a pull request soon.

During a meeting, me and @gaisser were talking about message queues and the problem that the message queue ID actually breaks layering. I implemented a QueueMapManager for the host OSAL which is interesting for the FSFW in general because it propably breaks this layering if it is used by the MessageQueue implementations. THe map manager implements the mapping from MessageQueueId to a message queue pointer. This could be used to break this layering. CUrrently, the queue map manager uses a std::unordered_map, which in turns uses a hashtable as the underlying data strcture. Therefore, the look-up time would be constant (O(1)) . It is implemented as a singleton. If this is interesting for the FSFW, I will propose a pull request soon.
muellerr added the
feature
label 2020-07-06 13:52:56 +02:00
Author
Owner

Actually, the key propably should be the objectId instead of the message queue ID,
if I read the todo text correctly.
However, that change should be trivial, so if youre are interested, I will implement the mapping like that: object_id_t -> MessageQueueIF* . Of course, an object might have multiple message queues..

Actually, the key propably should be the objectId instead of the message queue ID, if I read the todo text correctly. However, that change should be trivial, so if youre are interested, I will implement the mapping like that: `object_id_t -> MessageQueueIF*` . Of course, an object might have multiple message queues..
muellerr added the
question
label 2020-07-06 14:08:56 +02:00
Owner

Related or even duplicate of #205

Related or even duplicate of #205
Owner

Close as this is a duplicate of #205

Close as this is a duplicate of #205
gaisser added the
duplicate
label 2020-12-01 15:58:48 +01:00
Sign in to join this conversation.
No Milestone
No Assignees
2 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: fsfw/fsfw#128
No description provided.