You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@mesos.apache.org by "Alexander Rukletsov (JIRA)" <ji...@apache.org> on 2015/12/03 22:32:11 UTC
[jira] [Updated] (MESOS-4063) Add a filter abstraction to stout
[ https://issues.apache.org/jira/browse/MESOS-4063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Alexander Rukletsov updated MESOS-4063:
---------------------------------------
Summary: Add a filter abstraction to stout (was: Add a filter abstraction to stour)
> Add a filter abstraction to stout
> ---------------------------------
>
> Key: MESOS-4063
> URL: https://issues.apache.org/jira/browse/MESOS-4063
> Project: Mesos
> Issue Type: Wish
> Components: stout
> Reporter: Alexander Rukletsov
> Priority: Minor
> Labels: mesosphere
>
> Consider a simple snippet which filters agents that satisfy a certain condition:
> {code}
> foreach (const SlaveID& slaveId, slaveIds_) {
> if (isWhitelisted(slaveId) && slaves[slaveId].activated) {
> slaveIds.push_back(slaveId);
> }
> }
> {code}
> or using modern C++:
> {code}
> std::copy_if(
> slaveIds_.begin(),
> slaveIds_.end(),
> std::back_inserter(slaveIds),
> [this](const SlaveID& slaveId) {
> return (isWhitelisted(slaveId) && slaves[slaveId].activated);
> });
> {code}
> Both approaches are not concise and do not clearly explain what the intention is. It would be great to write something like this instead:
> {code}
> std::vector<SlaveID> slaveIDs = stout::filter(
> slaveIDs_,
> [this](const SlaveID& slaveId) {
> return (isWhitelisted(slaveId) && slaves[slaveId].activated);
> });
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)