Mercurial > hg > piper-cpp
comparison bits/CountingPluginHandleMapper.h @ 52:e90fd30990eb
Error handling, and pass plugin handles through
| author | Chris Cannam <c.cannam@qmul.ac.uk> |
|---|---|
| date | Fri, 16 Sep 2016 16:20:05 +0100 |
| parents | f4244a2d55ac |
| children | 7aec704705c7 |
comparison
equal
deleted
inserted
replaced
| 51:f4244a2d55ac | 52:e90fd30990eb |
|---|---|
| 65 } | 65 } |
| 66 } | 66 } |
| 67 | 67 |
| 68 void removePlugin(Handle h) { | 68 void removePlugin(Handle h) { |
| 69 if (m_plugins.find(h) == m_plugins.end()) { | 69 if (m_plugins.find(h) == m_plugins.end()) { |
| 70 std::cerr << "remove: no handle " << h << std::endl; | |
| 70 throw NotFound(); | 71 throw NotFound(); |
| 71 } | 72 } |
| 72 Vamp::Plugin *p = m_plugins[h]; | 73 Vamp::Plugin *p = m_plugins[h]; |
| 73 delete m_outputMappers.at(h); | 74 delete m_outputMappers.at(h); |
| 74 m_outputMappers.erase(h); | 75 m_outputMappers.erase(h); |
| 80 m_rplugins.erase(p); | 81 m_rplugins.erase(p); |
| 81 } | 82 } |
| 82 | 83 |
| 83 Handle pluginToHandle(Vamp::Plugin *p) const { | 84 Handle pluginToHandle(Vamp::Plugin *p) const { |
| 84 if (m_rplugins.find(p) == m_rplugins.end()) { | 85 if (m_rplugins.find(p) == m_rplugins.end()) { |
| 86 std::cerr << "pluginToHandle: no plugin " << p << std::endl; | |
| 85 throw NotFound(); | 87 throw NotFound(); |
| 86 } | 88 } |
| 87 return m_rplugins.at(p); | 89 return m_rplugins.at(p); |
| 88 } | 90 } |
| 89 | 91 |
| 90 Vamp::Plugin *handleToPlugin(Handle h) const { | 92 Vamp::Plugin *handleToPlugin(Handle h) const { |
| 91 if (m_plugins.find(h) == m_plugins.end()) { | 93 if (m_plugins.find(h) == m_plugins.end()) { |
| 94 std::cerr << "handleToPlugin: no handle " << h << std::endl; | |
| 92 throw NotFound(); | 95 throw NotFound(); |
| 93 } | 96 } |
| 94 return m_plugins.at(h); | 97 return m_plugins.at(h); |
| 95 } | 98 } |
| 96 | 99 |
| 97 //!!! iffy: mapper will move when another plugin is added. return by value? | 100 //!!! iffy: mapper will move when another plugin is added. return by value? |
| 98 const PluginOutputIdMapper &pluginToOutputIdMapper(Vamp::Plugin *p) const { | 101 const PluginOutputIdMapper &pluginToOutputIdMapper(Vamp::Plugin *p) const { |
| 99 // pluginToHandle checks the plugin has been registered with us | 102 // pluginToHandle checks the plugin has been registered with us |
| 103 std::cerr << "output id mapper requested for plugin with handle " << pluginToHandle(p) << std::endl; | |
| 100 return *m_outputMappers.at(pluginToHandle(p)); | 104 return *m_outputMappers.at(pluginToHandle(p)); |
| 101 } | 105 } |
| 102 | 106 |
| 103 //!!! iffy: mapper will move when another plugin is added. return by value? | 107 //!!! iffy: mapper will move when another plugin is added. return by value? |
| 104 const PluginOutputIdMapper &handleToOutputIdMapper(Handle h) const { | 108 const PluginOutputIdMapper &handleToOutputIdMapper(Handle h) const { |
| 109 std::cerr << "output id mapper requested for handle " << h << std::endl; | |
| 105 if (m_plugins.find(h) == m_plugins.end()) { | 110 if (m_plugins.find(h) == m_plugins.end()) { |
| 106 throw NotFound(); | 111 throw NotFound(); |
| 107 } | 112 } |
| 108 return *m_outputMappers.at(h); | 113 return *m_outputMappers.at(h); |
| 109 } | 114 } |
