11 #ifndef smtk_attribute_UpdateManager_h
12 #define smtk_attribute_UpdateManager_h
14 #include "smtk/attribute/update/AttributeUpdateFactory.h"
15 #include "smtk/attribute/update/ItemUpdateFactory.h"
16 #include "smtk/attribute/update/ResourceUpdateFactory.h"
18 #include "smtk/string/Token.h"
41 const update::ResourceUpdateFactory& resourceUpdaters()
const {
return m_resourceUpdaters; }
52 return m_attributeUpdaters[resourceTemplate];
54 const update::AttributeUpdateFactory& attributeUpdaters(
58 static thread_local update::AttributeUpdateFactory blank;
59 auto it = m_attributeUpdaters.find(resourceTemplate);
60 if (it == m_attributeUpdaters.end())
77 auto key = std::make_pair(resourceTemplate, attributeType);
78 return m_itemUpdaters[key];
80 const update::ItemUpdateFactory& itemUpdaters(
84 auto key = std::make_pair(resourceTemplate, attributeType);
86 static thread_local update::ItemUpdateFactory blank;
87 auto it = m_itemUpdaters.find(key);
88 if (it == m_itemUpdaters.end())
97 using ItemUpdateKey = std::pair<smtk::string::Token, smtk::string::Token>;
98 UpdateManager() =
default;
100 update::ResourceUpdateFactory m_resourceUpdaters;
101 std::map<AttributeUpdateKey, update::AttributeUpdateFactory> m_attributeUpdaters;
102 std::map<ItemUpdateKey, update::ItemUpdateFactory> m_itemUpdaters;
108 #endif // smtk_attribute_UpdateManager_h