summaryrefslogtreecommitdiff
path: root/controller/DB.cpp
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2019-08-06 10:42:54 -0500
committerAdam Ierymenko <adam.ierymenko@gmail.com>2019-08-06 10:42:54 -0500
commit00fb9c475e7bd68a12d6d581539862c31aeb2e74 (patch)
tree2f8423fff1914998fd858e1b4214a0394437974c /controller/DB.cpp
parent3c776675b3824d4497d913386793efaece2ee7d1 (diff)
downloadinfinitytier-00fb9c475e7bd68a12d6d581539862c31aeb2e74.tar.gz
infinitytier-00fb9c475e7bd68a12d6d581539862c31aeb2e74.zip
More work on DB mirroring.
Diffstat (limited to 'controller/DB.cpp')
-rw-r--r--controller/DB.cpp44
1 files changed, 8 insertions, 36 deletions
diff --git a/controller/DB.cpp b/controller/DB.cpp
index 75adf53e..a4440f38 100644
--- a/controller/DB.cpp
+++ b/controller/DB.cpp
@@ -104,16 +104,7 @@ void DB::cleanMember(nlohmann::json &member)
member.erase("lastRequestMetaData");
}
-DB::DB(const Identity &myId,const char *path) :
- _myId(myId),
- _myAddress(myId.address()),
- _path((path) ? path : "")
-{
- char tmp[32];
- _myAddress.toString(tmp);
- _myAddressStr = tmp;
-}
-
+DB::DB() {}
DB::~DB() {}
bool DB::get(const uint64_t networkId,nlohmann::json &network)
@@ -199,34 +190,15 @@ bool DB::get(const uint64_t networkId,nlohmann::json &network,std::vector<nlohma
return true;
}
-bool DB::summary(const uint64_t networkId,NetworkSummaryInfo &info)
-{
- waitForReady();
- std::shared_ptr<_Network> nw;
- {
- std::lock_guard<std::mutex> l(_networks_l);
- auto nwi = _networks.find(networkId);
- if (nwi == _networks.end())
- return false;
- nw = nwi->second;
- }
- {
- std::lock_guard<std::mutex> l2(nw->lock);
- _fillSummaryInfo(nw,info);
- }
- return true;
-}
-
-void DB::networks(std::vector<uint64_t> &networks)
+void DB::networks(std::set<uint64_t> &networks)
{
waitForReady();
std::lock_guard<std::mutex> l(_networks_l);
- networks.reserve(_networks.size() + 1);
for(auto n=_networks.begin();n!=_networks.end();++n)
- networks.push_back(n->first);
+ networks.insert(n->first);
}
-void DB::_memberChanged(nlohmann::json &old,nlohmann::json &memberConfig,bool initialized)
+void DB::_memberChanged(nlohmann::json &old,nlohmann::json &memberConfig,bool notifyListeners)
{
uint64_t memberId = 0;
uint64_t networkId = 0;
@@ -310,7 +282,7 @@ void DB::_memberChanged(nlohmann::json &old,nlohmann::json &memberConfig,bool in
}
}
- if (initialized) {
+ if (notifyListeners) {
std::lock_guard<std::mutex> ll(_changeListeners_l);
for(auto i=_changeListeners.begin();i!=_changeListeners.end();++i) {
(*i)->onNetworkMemberUpdate(this,networkId,memberId,memberConfig);
@@ -333,7 +305,7 @@ void DB::_memberChanged(nlohmann::json &old,nlohmann::json &memberConfig,bool in
}
}
- if ((initialized)&&((wasAuth)&&(!isAuth)&&(networkId)&&(memberId))) {
+ if ((notifyListeners)&&((wasAuth)&&(!isAuth)&&(networkId)&&(memberId))) {
std::lock_guard<std::mutex> ll(_changeListeners_l);
for(auto i=_changeListeners.begin();i!=_changeListeners.end();++i) {
(*i)->onNetworkMemberDeauthorize(this,networkId,memberId);
@@ -341,7 +313,7 @@ void DB::_memberChanged(nlohmann::json &old,nlohmann::json &memberConfig,bool in
}
}
-void DB::_networkChanged(nlohmann::json &old,nlohmann::json &networkConfig,bool initialized)
+void DB::_networkChanged(nlohmann::json &old,nlohmann::json &networkConfig,bool notifyListeners)
{
if (networkConfig.is_object()) {
const std::string ids = networkConfig["id"];
@@ -359,7 +331,7 @@ void DB::_networkChanged(nlohmann::json &old,nlohmann::json &networkConfig,bool
std::lock_guard<std::mutex> l2(nw->lock);
nw->config = networkConfig;
}
- if (initialized) {
+ if (notifyListeners) {
std::lock_guard<std::mutex> ll(_changeListeners_l);
for(auto i=_changeListeners.begin();i!=_changeListeners.end();++i) {
(*i)->onNetworkUpdate(this,networkId,networkConfig);