remove object ID
This commit is contained in:
parent
96f092ef75
commit
ca2efb6021
@ -1,57 +0,0 @@
|
|||||||
#ifndef FSFW_UTIL_OBJECTID_H
|
|
||||||
#define FSFW_UTIL_OBJECTID_H
|
|
||||||
|
|
||||||
#include "fsfw/objectmanager.h"
|
|
||||||
#include "UnsignedByteField.h"
|
|
||||||
|
|
||||||
#include <functional>
|
|
||||||
|
|
||||||
class ObjectId: public UnsignedByteField<object_id_t> {
|
|
||||||
public:
|
|
||||||
ObjectId(object_id_t id, const char* name): UnsignedByteField<object_id_t>(id), name_(name) {}
|
|
||||||
|
|
||||||
[[nodiscard]] const char* name() const {
|
|
||||||
return name_;
|
|
||||||
}
|
|
||||||
|
|
||||||
[[nodiscard]] object_id_t id() const {
|
|
||||||
return getValue();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator==(const ObjectId& other) const {
|
|
||||||
return id() == other.id();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator!=(const ObjectId& other) const {
|
|
||||||
return id() != other.id();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator<(const ObjectId& other) const {
|
|
||||||
return id() < other.id();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator>(const ObjectId& other) const {
|
|
||||||
return id() > other.id();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator>=(const ObjectId& other) const {
|
|
||||||
return id() >= other.id();
|
|
||||||
}
|
|
||||||
|
|
||||||
bool operator<=(const ObjectId& other) const {
|
|
||||||
return id() <= other.id();
|
|
||||||
}
|
|
||||||
private:
|
|
||||||
const char* name_;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<>
|
|
||||||
struct std::hash<ObjectId>
|
|
||||||
{
|
|
||||||
std::size_t operator()(ObjectId const& s) const noexcept
|
|
||||||
{
|
|
||||||
return std::hash<object_id_t>{}(s.id());
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // FSFW_UTIL_OBJECTID_H
|
|
@ -1,4 +1,3 @@
|
|||||||
target_sources(${FSFW_TEST_TGT} PRIVATE
|
target_sources(${FSFW_TEST_TGT} PRIVATE
|
||||||
testUnsignedByteField.cpp
|
testUnsignedByteField.cpp
|
||||||
testObjectId.cpp
|
|
||||||
)
|
)
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
#include <catch2/catch_test_macros.hpp>
|
|
||||||
|
|
||||||
#include "fsfw/util/ObjectId.h"
|
|
||||||
#include <array>
|
|
||||||
|
|
||||||
TEST_CASE("Object Id", "[object-id]") {
|
|
||||||
auto objectId = ObjectId(10, "TEST_ID");
|
|
||||||
std::map<ObjectId, int> testMap;
|
|
||||||
|
|
||||||
SECTION("State") {
|
|
||||||
CHECK(objectId.id() == 10);
|
|
||||||
CHECK(std::strcmp(objectId.name(), "TEST_ID") == 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
SECTION("ID as map key") {
|
|
||||||
auto insertPair = testMap.emplace(objectId, 10);
|
|
||||||
CHECK(insertPair.second);
|
|
||||||
auto iter = testMap.find(objectId);
|
|
||||||
CHECK(iter != testMap.end());
|
|
||||||
CHECK(std::strcmp(iter->first.name(), "TEST_ID") == 0);
|
|
||||||
CHECK(iter->second == 10);
|
|
||||||
auto otherIdSameName = ObjectId(12, "TEST_ID");
|
|
||||||
insertPair = testMap.emplace(otherIdSameName, 10);
|
|
||||||
CHECK(insertPair.second);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user