// Copyright 2004-present Facebook. All Rights Reserved. #pragma once #include #include namespace facebook { namespace react { class ComponentDescriptorRegistry; using SharedComponentDescriptorRegistry = std::shared_ptr; /* * Registry of particular `ComponentDescriptor`s. */ class ComponentDescriptorRegistry { public: void registerComponentDescriptor(SharedComponentDescriptor componentDescriptor); const SharedComponentDescriptor operator[](const SharedShadowNode &shadowNode) const; const SharedComponentDescriptor operator[](const ComponentName &componentName) const; private: std::unordered_map _registryByHandle; std::unordered_map _registryByName; }; } // namespace react } // namespace facebook