]> granicus.if.org Git - icinga2/commitdiff
Use Boost.Range instead of tie().
authorGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Jul 2012 08:29:30 +0000 (10:29 +0200)
committerGunnar Beutner <gunnar.beutner@netways.de>
Tue, 17 Jul 2012 08:29:30 +0000 (10:29 +0200)
base/application.cpp
base/i2-base.h
base/process.cpp
cib/host.cpp
cib/service.cpp
components/compat/compatcomponent.cpp
components/convenience/conveniencecomponent.cpp
components/delegation/delegationcomponent.cpp
components/discovery/discoverycomponent.cpp
icinga/endpointmanager.cpp

index fe17a1ddaa3557b8fb4f94b6baef87eec08424eb..6ee53623ee66b9843acc08ad28dae3b3ecc2ae0a 100644 (file)
@@ -61,8 +61,7 @@ Application::~Application(void)
        m_ShuttingDown = true;
 
        /* stop all components */
-       Component::Ptr component;
-       BOOST_FOREACH(tie(tuples::ignore, component), m_Components) {
+       BOOST_FOREACH(const Component::Ptr& component, m_Components | map_values) {
                component->Stop();
        }
 
index 94db9f57ad6274767840cbf1772a4aec9b55bfdf..8483754429da9ce32e30dd3015e83c246b1a6a49 100644 (file)
@@ -124,6 +124,8 @@ using std::type_info;
 #include <boost/lexical_cast.hpp>
 #include <boost/foreach.hpp>
 #include <boost/tuple/tuple.hpp>
+#include <boost/range.hpp>
+#include <boost/range/adaptor/map.hpp>
 
 using boost::shared_ptr;
 using boost::weak_ptr;
@@ -137,8 +139,8 @@ using boost::mutex;
 using boost::condition_variable;
 using boost::system_time;
 using boost::tie;
-
-namespace tuples = boost::tuples;
+using boost::adaptors::map_keys;
+using boost::adaptors::map_values;
 
 #if defined(__APPLE__) && defined(__MACH__)
 #      pragma GCC diagnostic ignored "-Wdeprecated-declarations" 
index 38990a89fd849b5f8f4dd26538e5d7ea445ea74d..2000ed0f3c944a943ed8a8388d7c200bb382c0ad 100644 (file)
@@ -66,8 +66,7 @@ void Process::WorkerThreadProc(void)
                        
                        FD_ZERO(&readfds);
 
-                       int fd;
-                       BOOST_FOREACH(tie(fd, tuples::ignore), tasks) {
+                       BOOST_FOREACH(int fd, tasks | map_keys) {
                                if (fd > nfds)
                                        nfds = fd;
 
index 90cfdcb39f7c6382c211666e68b611214f8b0bff..d0614d04a6d00cc1283f0a051996da1df6a3cbae 100644 (file)
@@ -69,8 +69,7 @@ set<string> Host::GetParents(void) const
        if (GetProperty("dependencies", &dependencies)) {
                dependencies = Service::ResolveDependencies(*this, dependencies);
 
-               Variant dependency;
-               BOOST_FOREACH(tie(tuples::ignore, dependency), dependencies) {
+               BOOST_FOREACH(const Variant& dependency, dependencies | map_values) {
                        Service service = Service::GetByName(dependency);
 
                        string parent = service.GetHost().GetName();
@@ -99,8 +98,7 @@ bool Host::IsReachable(void) const
        if (GetProperty("dependencies", &dependencies)) {
                dependencies = Service::ResolveDependencies(*this, dependencies);
 
-               Variant dependency;
-               BOOST_FOREACH(tie(tuples::ignore, dependency), dependencies) {
+               BOOST_FOREACH(const Variant& dependency, dependencies | map_values) {
                        Service service = Service::GetByName(dependency);
 
                        if (!service.IsReachable() ||
@@ -119,8 +117,7 @@ bool Host::IsUp(void) const
        if (GetProperty("hostchecks", &hostchecks)) {
                hostchecks = Service::ResolveDependencies(*this, hostchecks);
 
-               Variant hostcheck;
-               BOOST_FOREACH(tie(tuples::ignore, hostcheck), hostchecks) {
+               BOOST_FOREACH(const Variant& hostcheck, hostchecks | map_values) {
                        Service service = Service::GetByName(hostcheck);
 
                        if (service.GetState() != StateOK && service.GetState() != StateWarning) {
index 6e1ec9bd63998e9ba0bfadc4b9c5c054736f742e..6a4d4bc16282864cbed5939399821f2eaa33d216 100644 (file)
@@ -117,8 +117,7 @@ void Service::GetDependenciesRecursive(const Dictionary::Ptr& result) const {
        if (!dependencies)
                return;
 
-       Variant dependency;
-       BOOST_FOREACH(tie(tuples::ignore, dependency), dependencies) {
+       BOOST_FOREACH(const Variant& dependency, dependencies | map_values) {
                if (result->Contains(dependency))
                        continue;
 
@@ -148,8 +147,7 @@ bool Service::IsReachable(void) const
        Dictionary::Ptr dependencies = boost::make_shared<Dictionary>();
        GetDependenciesRecursive(dependencies);
 
-       Variant dependency;
-       BOOST_FOREACH(tie(tuples::ignore, dependency), dependencies) {
+       BOOST_FOREACH(const Variant& dependency, dependencies | map_values) {
                Service service = Service::GetByName(dependency);
 
                /* ignore ourselves */
@@ -379,8 +377,7 @@ bool Service::IsAllowedChecker(const string& checker) const
        if (!checkers)
                return true;
 
-       Variant pattern;
-       BOOST_FOREACH(tie(tuples::ignore, pattern), checkers) {
+       BOOST_FOREACH(const Variant& pattern, checkers | map_values) {
                if (Utility::Match(pattern, checker))
                        return true;
        }
@@ -395,8 +392,7 @@ Dictionary::Ptr Service::ResolveDependencies(Host host, const Dictionary::Ptr& d
 
        Dictionary::Ptr result = boost::make_shared<Dictionary>();
 
-       Variant dependency;
-       BOOST_FOREACH(tie(tuples::ignore, dependency), dependencies) {
+       BOOST_FOREACH(const Variant& dependency, dependencies | map_values) {
                string name;
 
                if (services && services->Contains(dependency))
index 8e7403205256fda5da46adf9efedffb5aded6bb0..0895dcf0279cdefb6a0783e66e9062f959b0666d 100644 (file)
@@ -233,16 +233,14 @@ void CompatComponent::StatusTimerHandler(void)
        ConfigObject::TMap::Range range;
        range = ConfigObject::GetObjects("host");
 
-       ConfigObject::Ptr object;
-       BOOST_FOREACH(tie(tuples::ignore, object), range) {
+       BOOST_FOREACH(const ConfigObject::Ptr& object, range | map_values) {
                Host host = object;
 
                Dictionary::Ptr dict;
                dict = host.GetGroups();
 
                if (dict) {
-                       Variant hostgroup;
-                       BOOST_FOREACH(tie(tuples::ignore, hostgroup), dict) {
+                       BOOST_FOREACH(const Variant& hostgroup, dict | map_values) {
                                hostgroups[hostgroup].push_back(host.GetName());
                        }
                }
@@ -278,7 +276,7 @@ void CompatComponent::StatusTimerHandler(void)
 
        map<string, vector<Service> > servicegroups;
 
-       BOOST_FOREACH(tie(tuples::ignore, object), range) {
+       BOOST_FOREACH(const ConfigObject::Ptr& object, range | map_values) {
                Service service = object;
 
                Dictionary::Ptr dict;
@@ -286,8 +284,7 @@ void CompatComponent::StatusTimerHandler(void)
                dict = service.GetGroups();
 
                if (dict) {
-                       Variant servicegroup;
-                       BOOST_FOREACH(tie(tuples::ignore, servicegroup), dict) {
+                       BOOST_FOREACH(const Variant& servicegroup, dict | map_values) {
                                servicegroups[servicegroup].push_back(service);
                        }
                }
index afcfcea925827b309b7873ac2ff30a86820ef716..cb56b1205014c81cbf24537388f5ab2871071912 100644 (file)
@@ -150,8 +150,7 @@ void ConvenienceComponent::HostCommittedHandler(const ConfigItem::Ptr& item)
        }
 
        if (oldServices) {
-               ConfigItem::Ptr service;
-               BOOST_FOREACH(tie(tuples::ignore, service), oldServices) {
+               BOOST_FOREACH(const ConfigItem::Ptr& service, oldServices | map_values) {
                        if (!newServices->Contains(service->GetName()))
                                service->Unregister();
                }
@@ -176,8 +175,7 @@ void ConvenienceComponent::HostRemovedHandler(const ConfigItem::Ptr& item)
        if (!services)
                return;
 
-       ConfigItem::Ptr service;
-       BOOST_FOREACH(tie(tuples::ignore, service), services) {
+       BOOST_FOREACH(const ConfigItem::Ptr& service, services | map_values) {
                service->Unregister();
        }
 }
index d061e07598c15ad1a133e021babc445abff626ce..a8ea618e00f961bd00b7eabf25465aae8f4c48e9 100644 (file)
@@ -275,13 +275,12 @@ void DelegationComponent::DelegationTimerHandler(void)
 
        if (delegated > 0) {
                if (need_clear) {
-                       Endpoint::Ptr endpoint;
-                       BOOST_FOREACH(tie(endpoint, tuples::ignore), histogram) {
+                       BOOST_FOREACH(const Endpoint::Ptr& endpoint, histogram | map_keys) {
                                ClearServices(endpoint);
                        }
                }
 
-               BOOST_FOREACH(Service& service, services) {
+               BOOST_FOREACH(const Service& service, services) {
                        string checker = service.GetChecker();
                        Endpoint::Ptr endpoint = EndpointManager::GetInstance()->GetEndpointByIdentity(checker);
 
index 3e2adc0f3eeef235ada9a76cd4765d47580e48df..a975b2843f2b21887b45e1b9630439bf2f7d842d 100644 (file)
@@ -168,11 +168,11 @@ void DiscoveryComponent::NewEndpointHandler(const Endpoint::Ptr& endpoint)
 
        // register published/subscribed topics for this endpoint
        ComponentDiscoveryInfo::Ptr info = ic->second;
-       BOOST_FOREACH(string publication, info->Publications) {
+       BOOST_FOREACH(const string& publication, info->Publications) {
                endpoint->RegisterPublication(publication);
        }
 
-       BOOST_FOREACH(string subscription, info->Subscriptions) {
+       BOOST_FOREACH(const string& subscription, info->Subscriptions) {
                endpoint->RegisterSubscription(subscription);
        }
 
@@ -301,14 +301,14 @@ void DiscoveryComponent::SendDiscoveryMessage(const string& method, const string
 
        set<string>::iterator i;
        Dictionary::Ptr subscriptions = boost::make_shared<Dictionary>();
-       BOOST_FOREACH(string subscription, info->Subscriptions) {
+       BOOST_FOREACH(const string &subscription, info->Subscriptions) {
                subscriptions->Add(subscription);
        }
 
        params.SetSubscriptions(subscriptions);
 
        Dictionary::Ptr publications = boost::make_shared<Dictionary>();
-       BOOST_FOREACH(string publication, info->Publications) {
+       BOOST_FOREACH(const string& publication, info->Publications) {
                publications->Add(publication);
        }
 
@@ -327,14 +327,12 @@ bool DiscoveryComponent::HasMessagePermission(const Dictionary::Ptr& roles, cons
 
        ConfigObject::TMap::Range range = ConfigObject::GetObjects("role");
 
-       ConfigObject::Ptr role;
-       BOOST_FOREACH(tie(tuples::ignore, role), range) {
+       BOOST_FOREACH(const ConfigObject::Ptr& role, range | map_values) {
                Dictionary::Ptr permissions;
                if (!role->GetProperty(messageType, &permissions))
                        continue;
 
-               Variant permission;
-               BOOST_FOREACH(tie(tuples::ignore, permission), permissions) {
+               BOOST_FOREACH(const Variant& permission, permissions | map_values) {
                        if (Utility::Match(permission, message))
                                return true;
                }
@@ -378,8 +376,7 @@ void DiscoveryComponent::ProcessDiscoveryMessage(const string& identity, const D
 
        Dictionary::Ptr publications;
        if (message.GetPublications(&publications)) {
-               Variant publication;
-               BOOST_FOREACH(tie(tuples::ignore, publication), publications) {
+               BOOST_FOREACH(const Variant& publication, publications | map_values) {
                        if (trusted || HasMessagePermission(roles, "publications", publication)) {
                                info->Publications.insert(publication);
                                if (endpoint)
@@ -390,8 +387,7 @@ void DiscoveryComponent::ProcessDiscoveryMessage(const string& identity, const D
 
        Dictionary::Ptr subscriptions;
        if (message.GetSubscriptions(&subscriptions)) {
-               Variant subscription;
-               BOOST_FOREACH(tie(tuples::ignore, subscription), subscriptions) {
+               BOOST_FOREACH(const Variant& subscription, subscriptions | map_values) {
                        if (trusted || HasMessagePermission(roles, "subscriptions", subscription)) {
                                info->Subscriptions.insert(subscription);
                                if (endpoint)
@@ -459,8 +455,7 @@ void DiscoveryComponent::DiscoveryTimerHandler(void)
        /* check whether we have to reconnect to one of our upstream endpoints */
        ConfigObject::TMap::Range range = ConfigObject::GetObjects("endpoint");
 
-       ConfigObject::Ptr object;
-       BOOST_FOREACH(tie(tuples::ignore, object), range) {
+       BOOST_FOREACH(const ConfigObject::Ptr& object, range | map_values) {
                /* Check if we're already connected to this endpoint. */
                if (endpointManager->GetEndpointByIdentity(object->GetName()))
                        continue;
index 272819e3535dd7962445e270cc699bf82a1bdb22..0d56ca466d3ca9906c977c3ed9d64ebd63f5f103 100644 (file)
@@ -240,8 +240,7 @@ void EndpointManager::SendAnycastMessage(Endpoint::Ptr sender,
                throw invalid_argument("Message is missing the 'method' property.");
 
        vector<Endpoint::Ptr> candidates;
-       Endpoint::Ptr endpoint;
-       BOOST_FOREACH(tie(tuples::ignore, endpoint), m_Endpoints) {
+       BOOST_FOREACH(const Endpoint::Ptr& endpoint, m_Endpoints | map_values) {
                /* don't forward messages between non-local endpoints */
                if (!sender->IsLocal() && !endpoint->IsLocal())
                        continue;
@@ -275,8 +274,7 @@ void EndpointManager::SendMulticastMessage(Endpoint::Ptr sender,
        if (!message.GetMethod(&method))
                throw invalid_argument("Message is missing the 'method' property.");
 
-       Endpoint::Ptr recipient;
-       BOOST_FOREACH(tie(tuples::ignore, recipient), m_Endpoints) {
+       BOOST_FOREACH(const Endpoint::Ptr& recipient, m_Endpoints | map_values) {
                /* don't forward messages back to the sender */
                if (sender == recipient)
                        continue;