Skip to content
Snippets Groups Projects
SkillProviderExample.cpp 2.77 KiB
Newer Older
namespace armarx::skills::provider
    SkillProviderExample::SkillProviderExample() : SkillProviderComponentPluginUser()
    {
    }
    armarx::PropertyDefinitionsPtr
    SkillProviderExample::createPropertyDefinitions()
        armarx::PropertyDefinitionsPtr defs =
            new ComponentPropertyDefinitions(getConfigIdentifier());
    std::string
    SkillProviderExample::getDefaultName() const
    void
    SkillProviderExample::onInitComponent()
        // Add example skill
        ARMARX_INFO << "Adding skill HelloWorldSkill";
        addSkillFactory<HelloWorldSkill>();

        // Add another lambda example skill
        {
            skills::SkillDescription fooDesc{.skillId = SkillID{.skillName = "Foo"},
                                             .description = "This skill does exactly nothing.",
                                             .timeout =
                                                 armarx::core::time::Duration::MilliSeconds(1000)};
            addSkillFactory(fooDesc,
                            []()
                            {
                                std::cout << "Hello from Foo." << std::endl;
                                return TerminatedSkillStatus::Succeeded;
                            });
        ARMARX_INFO << "Adding skill CallbackSkill";
        addSkillFactory<CallbackSkill>();
        ARMARX_INFO << "Adding skill TimeoutSkill";
        addSkillFactory<TimeoutSkill>();
Fabian Tërnava's avatar
Fabian Tërnava committed

        // chaining
        ARMARX_INFO << "Adding skill ChainingSkill";
        addSkillFactory<ChainingSkill>();

        // chainingAsync
        ARMARX_INFO << "Adding skill ChainingAsyncSkill";
        addSkillFactory<ChainingAsyncSkill>();

        // incomplete and prepare
        ARMARX_INFO << "Adding skill IncompleteSkill";
        addSkillFactory<IncompleteSkill>();
        // segfault
Peter Albrecht's avatar
Peter Albrecht committed
        ARMARX_INFO << "Adding skill SegfaultSkill";
        addSkillFactory<SegfaultSkill>();
        ARMARX_INFO << "Adding skill RandomChainingSkill";
        addSkillFactory<RandomChainingSkill>();

        // insta kill
        ARMARX_INFO << "Adding skill InstaKill";
        addSkillFactory<InstantKillSkill>();

        ARMARX_INFO << "Adding skill BusyWaiting";
        addSkillFactory<BusyWaitingSkill>();

        ARMARX_INFO << "Adding skill Recursive";
        addSkillFactory<RecursiveSkill>();
    void
    SkillProviderExample::onConnectComponent()
    void
    SkillProviderExample::onDisconnectComponent()
    void
    SkillProviderExample::onExitComponent()
} // namespace armarx::skills::provider