#pragma once #include #include #include #include #include class HousekeepingHelper; class GeneratesHousekeepingIF; using HousekeepingSetId_t = uint32_t; class HousekeepingSet : public HasTmTcParametersIF, public SerializeIF { friend class ParameterIF; public: #ifdef FSFW_INTROSPECTION HousekeepingSet(GeneratesHousekeepingIF* owner, const EnumIF &id); #else HousekeepingSet(GeneratesHousekeepingIF* owner, HousekeepingSetId_t id); #endif virtual ~HousekeepingSet(); HousekeepingSetId_t getId() const { return id; } virtual void report(const Action* action = nullptr); std::vector const* getParameters() const override; #ifdef FSFW_INTROSPECTION const char* getDescription() const; #endif ReturnValue_t serialize(uint8_t** buffer, size_t* size, size_t maxSize, Endianness streamEndianness) const override; size_t getSerializedSize() const override; ReturnValue_t deSerialize(const uint8_t** buffer, size_t* size, Endianness streamEndianness) override; protected: HousekeepingHelper* helper = nullptr; HousekeepingSetId_t id; #ifdef FSFW_INTROSPECTION const char* description; #endif std::vector parameterList; void registerParameter(ParameterIF* parameter) override; };