summaryrefslogtreecommitdiff
path: root/node/Node.hpp
diff options
context:
space:
mode:
authorGrant Limberg <glimberg@gmail.com>2015-06-26 17:44:09 -0700
committerGrant Limberg <glimberg@gmail.com>2015-06-26 17:44:09 -0700
commit9c26d10ea645dc1727813ea72a63f526cf0757d0 (patch)
tree25ae8e785f07f93f187a34abe204c423613a009b /node/Node.hpp
parentbfb152f53f528934583ee76437453a005610a7ea (diff)
parent3f71afd0fbb2d87a2c9288166299600da51470dc (diff)
downloadinfinitytier-9c26d10ea645dc1727813ea72a63f526cf0757d0.tar.gz
infinitytier-9c26d10ea645dc1727813ea72a63f526cf0757d0.zip
Merge branch 'adamierymenko-dev' into android-jni
Diffstat (limited to 'node/Node.hpp')
-rw-r--r--node/Node.hpp24
1 files changed, 17 insertions, 7 deletions
diff --git a/node/Node.hpp b/node/Node.hpp
index 1d9372e4..2d2898b5 100644
--- a/node/Node.hpp
+++ b/node/Node.hpp
@@ -155,19 +155,19 @@ public:
len);
}
- inline SharedPtr<Network> network(uint64_t nwid)
+ inline SharedPtr<Network> network(uint64_t nwid) const
{
Mutex::Lock _l(_networks_m);
- std::map< uint64_t,SharedPtr<Network> >::iterator nw(_networks.find(nwid));
- return ((nw == _networks.end()) ? SharedPtr<Network>() : nw->second);
+ return _network(nwid);
}
inline std::vector< SharedPtr<Network> > allNetworks() const
{
- Mutex::Lock _l(_networks_m);
std::vector< SharedPtr<Network> > nw;
- for(std::map< uint64_t,SharedPtr<Network> >::const_iterator n(_networks.begin());n!=_networks.end();++n)
- nw.push_back(n->second);
+ Mutex::Lock _l(_networks_m);
+ nw.reserve(_networks.size());
+ for(std::vector< std::pair< uint64_t, SharedPtr<Network> > >::const_iterator i=_networks.begin();i!=_networks.end();++i)
+ nw.push_back(i->second);
return nw;
}
@@ -208,6 +208,16 @@ public:
#endif
private:
+ inline SharedPtr<Network> _network(uint64_t nwid) const
+ {
+ // assumes _networks_m is locked
+ for(std::vector< std::pair< uint64_t, SharedPtr<Network> > >::const_iterator i=_networks.begin();i!=_networks.end();++i) {
+ if (i->first == nwid)
+ return i->second;
+ }
+ return SharedPtr<Network>();
+ }
+
RuntimeEnvironment _RR;
RuntimeEnvironment *RR;
@@ -223,7 +233,7 @@ private:
//Dictionary _localConfig; // persisted as local.conf
//Mutex _localConfig_m;
- std::map< uint64_t,SharedPtr<Network> > _networks;
+ std::vector< std::pair< uint64_t, SharedPtr<Network> > > _networks;
Mutex _networks_m;
Mutex _backgroundTasksLock;