Mercurial > hg > orthanc-transfers
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(); |