comparison Framework/HttpQueries/DetectTransferPlugin.cpp @ 4:1ed03945c057

showing unavailable peers
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 17 Sep 2018 14:42:57 +0200
parents 95226b754d9e
children 5e6de82bb10f
comparison
equal deleted inserted replaced
3:9bcd6eadcff5 4:1ed03945c057
27 #include <json/reader.h> 27 #include <json/reader.h>
28 28
29 29
30 namespace OrthancPlugins 30 namespace OrthancPlugins
31 { 31 {
32 DetectTransferPlugin::DetectTransferPlugin(std::set<std::string>& target, 32 DetectTransferPlugin::DetectTransferPlugin(Peers& target,
33 const std::string& peer) : 33 const std::string& peer) :
34 target_(target), 34 target_(target),
35 peer_(peer), 35 peer_(peer),
36 uri_(URI_PLUGINS) 36 uri_(URI_PLUGINS)
37 { 37 {
38 target_[peer_] = PeerCapabilities_Disabled;
38 } 39 }
39 40
40 41
41 void DetectTransferPlugin::ReadBody(std::string& body) const 42 void DetectTransferPlugin::ReadBody(std::string& body) const
42 { 43 {
57 for (Json::Value::ArrayIndex i = 0; i < value.size(); i++) 58 for (Json::Value::ArrayIndex i = 0; i < value.size(); i++)
58 { 59 {
59 if (value[i].type() == Json::stringValue && 60 if (value[i].type() == Json::stringValue &&
60 value[i].asString() == PLUGIN_NAME) 61 value[i].asString() == PLUGIN_NAME)
61 { 62 {
62 target_.insert(peer_); 63 // The "Bidirectional" status is set in "Plugin.cpp", given
64 // the configuration file
65 target_[peer_] = PeerCapabilities_Installed;
63 } 66 }
64 } 67 }
65 } 68 }
66 } 69 }
67 70
68 71
69 void DetectTransferPlugin::Apply(std::set<std::string>& activePeers, 72 void DetectTransferPlugin::Apply(Peers& peers,
70 OrthancPluginContext* context, 73 OrthancPluginContext* context,
71 size_t threadsCount, 74 size_t threadsCount,
72 unsigned int timeout) 75 unsigned int timeout)
73 { 76 {
74 OrthancPlugins::HttpQueriesQueue queue(context); 77 OrthancPlugins::HttpQueriesQueue queue(context);
77 queue.Reserve(queue.GetOrthancPeers().GetPeersCount()); 80 queue.Reserve(queue.GetOrthancPeers().GetPeersCount());
78 81
79 for (size_t i = 0; i < queue.GetOrthancPeers().GetPeersCount(); i++) 82 for (size_t i = 0; i < queue.GetOrthancPeers().GetPeersCount(); i++)
80 { 83 {
81 queue.Enqueue(new OrthancPlugins::DetectTransferPlugin 84 queue.Enqueue(new OrthancPlugins::DetectTransferPlugin
82 (activePeers, queue.GetOrthancPeers().GetPeerName(i))); 85 (peers, queue.GetOrthancPeers().GetPeerName(i)));
83 } 86 }
84 87
85 { 88 {
86 OrthancPlugins::HttpQueriesRunner runner(queue, threadsCount); 89 OrthancPlugins::HttpQueriesRunner runner(queue, threadsCount);
87 queue.WaitComplete(); 90 queue.WaitComplete();