public bool AddEncoding(NodeId dataTypeId, ExpandedNodeId encodingId)
{
NodeId localId = ExpandedNodeId.ToNodeId(encodingId, m_namespaceUris);
if (localId == null)
{
return false;
}
lock (m_lock)
{
TypeInfo typeInfo = null;
if (!m_nodes.TryGetValue(dataTypeId, out typeInfo))
{
return false;
}
if (typeInfo.Encodings == null)
{
typeInfo.Encodings = new NodeId[] { localId };
}
else
{
NodeId[] encodings = new NodeId[typeInfo.Encodings.Length + 1];
System.Array.Copy(typeInfo.Encodings, encodings, typeInfo.Encodings.Length);
encodings[encodings.Length - 1] = localId;
typeInfo.Encodings = encodings;
}
m_encodings[localId] = typeInfo;
return true;
}
}