DUNE: Uniform Navigational Environment
2019.02.1
|
SourceFilter Filter to check if a message is allowed to pass according to its source system and/or entity.
Public Member Functions | |
SourceFilter (Tasks::Task &task, const std::vector< std::string > &source) | |
SourceFilter (Tasks::Task &task, const bool only_systems, const std::vector< std::string > &source) | |
SourceFilter (Tasks::Task &task, const std::vector< std::string > &source, const std::string &msg_name) | |
SourceFilter (Tasks::Task &task, const bool only_systems, const std::vector< std::string > &source, const std::string &msg_name) | |
~SourceFilter (void) | |
void | defineSystemFilter (const std::vector< std::string > &source) |
void | defineEntityFilter (const std::vector< std::string > &source) |
void | defineSystemEntityFilter (const std::vector< std::string > &source) |
void | defineMessageSystemFilter (const std::vector< std::string > &source) |
void | defineMessageEntityFilter (const std::vector< std::string > &source) |
void | defineMessageSystemEntityFilter (const std::vector< std::string > &source) |
bool | match (const IMC::Message *msg) |
DUNE::Tasks::SourceFilter::SourceFilter | ( | Tasks::Task & | task, |
const std::vector< std::string > & | source | ||
) |
Construct a task command input filter by systems and entities for specific messages.
[in] | task | filter parent task. |
[in] | source | desired command sources system and entity names. |
References defineMessageSystemEntityFilter().
DUNE::Tasks::SourceFilter::SourceFilter | ( | Tasks::Task & | task, |
const bool | only_systems, | ||
const std::vector< std::string > & | source | ||
) |
Construct a task input filter by systems or entities for specific messages.
[in] | task | filter parent task. |
[in] | only_systems | flag that selects filtering by systems or entities |
[in] | source | desired sources system and entity names. |
References defineMessageEntityFilter(), and defineMessageSystemFilter().
DUNE::Tasks::SourceFilter::SourceFilter | ( | Tasks::Task & | task, |
const std::vector< std::string > & | source, | ||
const std::string & | msg_name | ||
) |
Construct a task input filter by systems and entities for a general message.
[in] | task | filter parent task. |
[in] | source | desired sources system and entity names. |
[in] | msg_name | filtered message name. |
References defineSystemEntityFilter().
DUNE::Tasks::SourceFilter::SourceFilter | ( | Tasks::Task & | task, |
const bool | only_systems, | ||
const std::vector< std::string > & | source, | ||
const std::string & | msg_name | ||
) |
Construct a task input filter by systems or entities for a general message.
[in] | task | filter parent task. |
[in] | only_systems | flag that selects filtering by systems or entities |
[in] | source | desired sources system and entity names. |
[in] | msg_name | filtered message name. |
References defineEntityFilter(), and defineSystemFilter().
|
inline |
Destructor.
References defineEntityFilter(), defineMessageEntityFilter(), defineMessageSystemEntityFilter(), defineMessageSystemFilter(), defineSystemEntityFilter(), defineSystemFilter(), and match().
void DUNE::Tasks::SourceFilter::defineEntityFilter | ( | const std::vector< std::string > & | source | ) |
Define filter by entities.
[in] | source | desired sources system and entity names. |
References DUNE::Utils::String::split().
Referenced by defineMessageEntityFilter(), defineMessageSystemEntityFilter(), defineSystemEntityFilter(), SourceFilter(), and ~SourceFilter().
void DUNE::Tasks::SourceFilter::defineMessageEntityFilter | ( | const std::vector< std::string > & | source | ) |
Define the desired source systems and entities for several messages.
[in] | source | desired sources system and entity names. |
References defineEntityFilter(), and DUNE::Utils::String::split().
Referenced by SourceFilter(), and ~SourceFilter().
void DUNE::Tasks::SourceFilter::defineMessageSystemEntityFilter | ( | const std::vector< std::string > & | source | ) |
Define the desired source systems and entities for several messages.
[in] | source | desired sources system and entity names. |
References defineEntityFilter(), defineSystemFilter(), DUNE::IMC::Factory::getAbbrevFromId(), DUNE::IMC::Message::getId(), DUNE::IMC::Message::getName(), DUNE::IMC::Message::getSource(), DUNE::IMC::Message::getSourceEntity(), DUNE::Tasks::Task::resolveEntity(), DUNE::Tasks::Task::resolveSystemId(), DUNE::Tasks::Task::spew(), DUNE::Utils::String::split(), DUNE::Tasks::Task::trace(), and DUNE::Tasks::Task::war().
Referenced by SourceFilter(), and ~SourceFilter().
void DUNE::Tasks::SourceFilter::defineMessageSystemFilter | ( | const std::vector< std::string > & | source | ) |
Define the desired source systems and entities for several messages.
[in] | source | desired sources system and entity names. |
References defineSystemFilter(), and DUNE::Utils::String::split().
Referenced by SourceFilter(), and ~SourceFilter().
void DUNE::Tasks::SourceFilter::defineSystemEntityFilter | ( | const std::vector< std::string > & | source | ) |
Define the desired message source systems and entities.
[in] | source | desired sources system and entity names. |
References defineEntityFilter(), defineSystemFilter(), and DUNE::Utils::String::split().
Referenced by SourceFilter(), and ~SourceFilter().
void DUNE::Tasks::SourceFilter::defineSystemFilter | ( | const std::vector< std::string > & | source | ) |
Define filter by systems.
[in] | source | desired sources system and entity names. |
References DUNE::Utils::String::split().
Referenced by defineMessageSystemEntityFilter(), defineMessageSystemFilter(), defineSystemEntityFilter(), SourceFilter(), and ~SourceFilter().
bool DUNE::Tasks::SourceFilter::match | ( | const IMC::Message * | msg | ) |
Verification of the message source system and entity.
[in] | msg | input message. |
References DUNE::IMC::Factory::getIdFromAbbrev(), DUNE::Tasks::Task::getSystemId(), DUNE::Tasks::Task::resolveEntity(), and DUNE::Tasks::Task::resolveSystemName().
Referenced by Simulators::UAV::Task::commandFilter(), Simulators::UAVAutopilot::Task::consume(), Control::Path::Height::Task::consume(), DUNE::Control::ProxyPathController::sourceFilter(), and ~SourceFilter().