MCPcopy Create free account
hub / github.com/CesiumGS/cesium-native / createExtensionHandler

Method createExtensionHandler

CesiumJsonReader/src/JsonReaderOptions.cpp:53–80  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

51}
52
53std::unique_ptr<IExtensionJsonHandler>
54JsonReaderOptions::createExtensionHandler(
55 const std::string_view& extensionName,
56 const std::string& extendedObjectType) const {
57
58 std::string extensionNameString{extensionName};
59
60 auto stateIt = this->_extensionStates.find(extensionNameString);
61 if (stateIt != this->_extensionStates.end()) {
62 if (stateIt->second == ExtensionState::Disabled) {
63 return nullptr;
64 } else if (stateIt->second == ExtensionState::JsonOnly) {
65 return std::make_unique<AnyExtensionJsonHandler>();
66 }
67 }
68
69 auto extensionNameIt = this->_extensions.find(extensionNameString);
70 if (extensionNameIt == this->_extensions.end()) {
71 return std::make_unique<AnyExtensionJsonHandler>();
72 }
73
74 auto objectTypeIt = extensionNameIt->second.find(extendedObjectType);
75 if (objectTypeIt == extensionNameIt->second.end()) {
76 return std::make_unique<AnyExtensionJsonHandler>();
77 }
78
79 return objectTypeIt->second(*this);
80}
81} // namespace CesiumJsonReader

Callers 1

readObjectKeyMethod · 0.45

Calls 1

endMethod · 0.45

Tested by

no test coverage detected