private void RegisterNodeManager(
INodeManager nodeManager,
List<INodeManager> registeredManagers,
Dictionary<int, List<INodeManager>> namespaceManagers)
{
m_nodeManagers.Add(nodeManager);
// ensure the NamespaceUris supported by the NodeManager are in the Server's NamespaceTable.
if (nodeManager.NamespaceUris != null)
{
foreach (string namespaceUri in nodeManager.NamespaceUris)
{
// look up the namespace uri.
int index = m_server.NamespaceUris.GetIndex(namespaceUri);
if (index == -1)
{
index = m_server.NamespaceUris.Append(namespaceUri);
}
// add manager to list for the namespace.
if (!namespaceManagers.TryGetValue(index, out registeredManagers))
{
namespaceManagers[index] = registeredManagers = new List<INodeManager>();
}
registeredManagers.Add(nodeManager);
}
}
}
#endregion