DUNE: Uniform Navigational Environment  2016.05.0
DUNE::Tasks::SourceFilter Class Reference

Detailed Description

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)
 

Constructor & Destructor Documentation

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.

Parameters
[in]taskfilter parent task.
[in]sourcedesired 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.

Parameters
[in]taskfilter parent task.
[in]only_systemsflag that selects filtering by systems or entities
[in]sourcedesired 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.

Parameters
[in]taskfilter parent task.
[in]sourcedesired sources system and entity names.
[in]msg_namefiltered 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.

Parameters
[in]taskfilter parent task.
[in]only_systemsflag that selects filtering by systems or entities
[in]sourcedesired sources system and entity names.
[in]msg_namefiltered message name.

References defineEntityFilter(), and defineSystemFilter().

DUNE::Tasks::SourceFilter::~SourceFilter ( void  )
inline

Destructor.

Member Function Documentation

void DUNE::Tasks::SourceFilter::defineEntityFilter ( const std::vector< std::string > &  source)

Define filter by entities.

Parameters
[in]sourcedesired sources system and entity names.

References DUNE::Utils::String::split().

Referenced by defineMessageEntityFilter(), defineMessageSystemEntityFilter(), defineSystemEntityFilter(), and SourceFilter().

void DUNE::Tasks::SourceFilter::defineMessageEntityFilter ( const std::vector< std::string > &  source)

Define the desired source systems and entities for several messages.

Parameters
[in]sourcedesired sources system and entity names.

References defineEntityFilter(), and DUNE::Utils::String::split().

Referenced by SourceFilter().

void DUNE::Tasks::SourceFilter::defineMessageSystemEntityFilter ( const std::vector< std::string > &  source)

Define the desired source systems and entities for several messages.

Parameters
[in]sourcedesired sources system and entity names.

References defineEntityFilter(), defineSystemFilter(), and DUNE::Utils::String::split().

Referenced by SourceFilter().

void DUNE::Tasks::SourceFilter::defineMessageSystemFilter ( const std::vector< std::string > &  source)

Define the desired source systems and entities for several messages.

Parameters
[in]sourcedesired sources system and entity names.

References defineSystemFilter(), and DUNE::Utils::String::split().

Referenced by SourceFilter().

void DUNE::Tasks::SourceFilter::defineSystemEntityFilter ( const std::vector< std::string > &  source)

Define the desired message source systems and entities.

Parameters
[in]sourcedesired sources system and entity names.

References defineEntityFilter(), defineSystemFilter(), and DUNE::Utils::String::split().

Referenced by SourceFilter().

void DUNE::Tasks::SourceFilter::defineSystemFilter ( const std::vector< std::string > &  source)

Define filter by systems.

Parameters
[in]sourcedesired sources system and entity names.

References DUNE::Utils::String::split().

Referenced by defineMessageSystemEntityFilter(), defineMessageSystemFilter(), defineSystemEntityFilter(), and SourceFilter().

bool DUNE::Tasks::SourceFilter::match ( const IMC::Message msg)

Verification of the message source system and entity.

Parameters
[in]msginput message.
Returns
true if the message is allowed to pass.

Referenced by Simulators::UAV::Task::commandFilter(), Simulators::UAVAutopilot::Task::consume(), Control::Path::Height::Task::consume(), and DUNE::Control::ProxyPathController::sourceFilter().

Collaboration diagram for DUNE::Tasks::SourceFilter:
Collaboration graph