10 #ifndef smtk_operation_Launcher_h
11 #define smtk_operation_Launcher_h
13 #include "smtk/CoreExports.h"
15 #include "smtk/operation/Operation.h"
19 #include <unordered_map>
26 typedef std::function<std::shared_future<Operation::Result>(
const Operation::Ptr&)> Launcher;
34 typedef std::unordered_map<std::string, Launcher> LauncherMap;
42 Launchers(
const LauncherMap::mapped_type&);
45 std::pair<Launchers::LauncherMap::iterator, bool> insert(
46 const Launchers::LauncherMap::value_type&);
49 std::pair<Launchers::LauncherMap::iterator, bool> emplace(Launchers::LauncherMap::value_type&&);
52 Launchers::LauncherMap::mapped_type& operator[](
const Launchers::LauncherMap::key_type&);
55 Launchers::LauncherMap::size_type erase(
const Launchers::LauncherMap::key_type&);
58 std::shared_future<Operation::Result> operator()(
const Operation::Ptr&);
61 std::shared_future<Operation::Result> operator()(
62 const Operation::Ptr&,
63 const Launchers::LauncherMap::key_type&);
66 LauncherMap m_launchers;
71 #endif // smtk_operation_Launcher_h