Skip to content
Snippets Groups Projects
ProfileLibrarySegment.h 1.23 KiB
Newer Older
#pragma once

// Base Class
#include <RobotAPI/libraries/armem/server/segment/SpecializedSegment.h>

// ArmarX
#include <ArmarXCore/core/application/properties/PropertyDefinitionContainer.h>
#include <ArmarXCore/interface/core/Profiler.h>
#include <ArmarXCore/observers/ObserverObjectFactories.h>

#include <RobotAPI/interface/skills/SkillManagerInterface.h>
#include <RobotAPI/interface/skills/SkillProviderInterface.h>
#include <RobotAPI/libraries/armem_skills/aron/Skill.aron.generated.h>
#include <RobotAPI/libraries/skills/core/ProviderInfo.h>
#include <RobotAPI/libraries/skills/core/aron/FluxioProfile.aron.generated.h>

namespace armarx::skills::segment
{
    class ProfileLibraryCoreSegment : public armem::server::segment::SpecializedCoreSegment
    {
        using Base = armem::server::segment::SpecializedCoreSegment;

    public:
        static constexpr const char* CoreSegmentName = "Profile";

        ProfileLibraryCoreSegment(armem::server::MemoryToIceAdapter& iceMemory);

        void defineProperties(PropertyDefinitionsPtr defs, const std::string& prefix);
        void init();

        void addProfile(const skills::manager::arondto::FluxioProfile& profile);

        size_t size() const;
};
} // namespace armarx::skills::segment