Skip to content
Snippets Groups Projects
SkillManagerComponentPluginUser.h 7.25 KiB
Newer Older
#include <vector>
Moritz Gleissner's avatar
Moritz Gleissner committed

Firat Yusuf Duran's avatar
Firat Yusuf Duran committed
#include <Ice/Current.h>
Firat Yusuf Duran's avatar
Firat Yusuf Duran committed
#include <RobotAPI/interface/aron/Aron.h>
#include <RobotAPI/interface/skills/SkillManagerInterface.h>
#include <RobotAPI/libraries/skills/core/aron/FluxioSkill.aron.generated.h>
Julian Tusch's avatar
Julian Tusch committed
#include "SkillManagerComponentPlugin.h"

namespace armarx::plugins
{
    class SkillManagerComponentPlugin; // forward declaration
}

namespace armarx
{
    class SkillManagerComponentPluginUser :
        virtual public ManagedIceObject,
        virtual public skills::manager::dti::SkillManagerInterface
    {
    public:
        SkillManagerComponentPluginUser();

        void addProvider(const skills::manager::dto::ProviderInfo& providerInfo,
                         const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed

        void removeProvider(const skills::manager::dto::ProviderID& provider,
                            const Ice::Current& current) override;

        skills::manager::dto::SkillStatusUpdate
        executeSkill(const skills::manager::dto::SkillExecutionRequest& info,
                     const Ice::Current& current) override;

        skills::manager::dto::SkillExecutionID
        executeSkillAsync(const skills::manager::dto::SkillExecutionRequest& skillExecutionRequest,
                          const Ice::Current& current) override;

        skills::provider::dto::ParameterUpdateResult
        updateSkillParameters(const skills::manager::dto::SkillExecutionID& executionId,
                              const aron::data::dto::DictPtr& params,
                              const Ice::Current& current) override;

        void updateStatusForSkill(const skills::provider::dto::SkillStatusUpdate& update,
                                  const skills::callback::dto::ProviderID& id,
                                  const Ice::Current& current) override;

        skills::provider::dto::AbortSkillResult
        abortSkill(const skills::manager::dto::SkillExecutionID& id,
                   const Ice::Current& current) override;

        skills::provider::dto::AbortSkillResult
        abortSkillAsync(const skills::manager::dto::SkillExecutionID& id,
                        const Ice::Current& current) override;


        skills::manager::dto::SkillDescriptionMap
        getSkillDescriptions(const Ice::Current& current) override;

        IceUtil::Optional<skills::manager::dto::SkillDescription>
        getSkillDescription(const skills::manager::dto::SkillID& id,
                            const Ice::Current& current) override;

        IceUtil::Optional<skills::manager::dto::SkillStatusUpdate>
        getSkillExecutionStatus(const skills::manager::dto::SkillExecutionID& executionId,
                                const Ice::Current& current) override;

        skills::manager::dto::SkillStatusUpdateMap
        getSkillExecutionStatuses(const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        //****************************//
        //** Fluxio related methods **//
        //****************************//
        aron::type::dto::AronObjectPtr getTypes(const Ice::Current& current) override;
Firat Yusuf Duran's avatar
Firat Yusuf Duran committed

Moritz Gleissner's avatar
Moritz Gleissner committed
        aron::data::dto::DictPtr getTestData(const Ice::Current& current) override;

        IceUtil::Optional<std::string> executeFluxioSkill(const std::string& skillId,
                                                          const std::string& profileId,
                                                          const Ice::Current& current) override;
        void abortFluxioSkill(const std::string& executionId, const Ice::Current& current) override;
        IceUtil::Optional<skills::manager::dto::FluxioSkillStatusUpdateList>
        getFluxioSkillExecutionStatus(const std::string& executionId,
                                      const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed

Julian Tusch's avatar
Julian Tusch committed
        skills::manager::dto::FluxioSkillList getSkillList(const Ice::Current& current) override;
        IceUtil::Optional<skills::manager::dto::FluxioSkill>
Julian Tusch's avatar
Julian Tusch committed
        getSkill(const std::string& id, const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        bool updateSkill(const std::string& userId,
                         const skills::manager::dto::FluxioSkill& skill,
                         const Ice::Current& current) override;

        bool updateSkillParameterValues(const std::string& userId,
                                        const std::string& skillId,
                                        const std::string& parameterId,
                                        const skills::manager::dto::FluxioValueList& values,
                                        const Ice::Current& current) override;

        IceUtil::Optional<skills::manager::dto::FluxioIdentificatorList>
Julian Tusch's avatar
Julian Tusch committed
        deleteSkill(const std::string& skillId,
                    const std::string& userId,
                    bool dryRun,
                    const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        bool getSkillMutex(const std::string& skillId,
                           const std::string& userId,
                           const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        void deleteSkillMutex(const std::string& skillId,
                              const std::string& userId,
                              const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        void removeSkillParameter(const std::string& userId,
                                  const std::string& skillId,
                                  const std::string& parameterId,
                                  const Ice::Current& current) override;

        skills::manager::dto::FluxioProfileList
        getProfileList(const Ice::Current& current) override;

Julian Tusch's avatar
Julian Tusch committed
        IceUtil::Optional<skills::manager::dto::FluxioProfile>
        getProfile(const std::string& id, const Ice::Current& current) override;

        skills::manager::dto::FluxioProfile
Julian Tusch's avatar
Julian Tusch committed
        createProfile(const skills::manager::dto::FluxioProfile& profile,
                      const Ice::Current& current) override;
Julian Tusch's avatar
Julian Tusch committed
        void updateProfile(const skills::manager::dto::FluxioProfile& profile,
                           const Ice::Current& current) override;

        skills::manager::dto::FluxioProviderList
        getProviderList(const Ice::Current& current) override;

        IceUtil::Optional<skills::manager::dto::FluxioProvider>
Julian Tusch's avatar
Julian Tusch committed
        getProvider(const std::string& id, const Ice::Current& current) override;
        IceUtil::Optional<skills::manager::dto::FluxioSkillList>
Julian Tusch's avatar
Julian Tusch committed
        getSkillsOfProvider(const std::string& id, const Ice::Current& current) override;
        IceUtil::Optional<skills::manager::dto::FluxioSkill>
Julian Tusch's avatar
Julian Tusch committed
        addSkillToProvider(const std::string& userId,
                           const std::string& providerId,
                           const skills::manager::dto::FluxioSkill& skill,
                           const Ice::Current& current) override;
        virtual void saveSkill(const skills::manager::arondto::FluxioSkill& skill);
        virtual std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkills();
        virtual std::optional<std::vector<skills::manager::arondto::FluxioSkill>> loadCompositeSkillsOfProvider(const std::string& providerId);
        virtual void addProfile(const skills::manager::arondto::FluxioProfile& profile);
        virtual std::optional<std::vector<skills::manager::arondto::FluxioProfile>> loadProfiles();
    private:
        armarx::plugins::SkillManagerComponentPlugin* plugin = nullptr;
    };
} // namespace armarx