remove object ID

This commit is contained in:
Robin Müller 2022-08-15 15:02:05 +02:00
parent 96f092ef75
commit ca2efb6021
No known key found for this signature in database
GPG Key ID: 71B58F8A3CDFA9AC
3 changed files with 0 additions and 84 deletions

View File

@ -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

View File

@ -1,4 +1,3 @@
target_sources(${FSFW_TEST_TGT} PRIVATE target_sources(${FSFW_TEST_TGT} PRIVATE
testUnsignedByteField.cpp testUnsignedByteField.cpp
testObjectId.cpp
) )

View File

@ -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);
}
}