/// <summary> /// Creates a <see cref="Definition"/> instance. /// </summary> /// <param name="parent"></param> /// <param name="entity"></param> internal Definition(IEntity entity, Definition parent) { if (entity == null) { throw new ArgumentNullException("entity"); } if (parent == null) { throw new ArgumentNullException("parent"); } _parentNode = parent; uint[] id = string.IsNullOrEmpty(parent.Name) ? null : parent._id; // null for root node (use _id rather than GetNumericalForm to avoid the Clone) _id = ObjectIdentifier.AppendTo(id, entity.Value); _parent = parent.Name; _name = entity.Name; _module = entity.ModuleName; _value = entity.Value; _parentNode.Append(this); Type = DetermineType(entity.GetType().ToString(), _name, _parentNode); Entity = entity; }
/// <summary> /// Creates an <see cref="ObjectTree"/> instance. /// </summary> public ObjectTree() { _root = Definition.RootDefinition; var ccitt = new Definition(new ObjectIdentifierType("SNMPv2-SMI", "ccitt", null, 0), _root); var iso = new Definition(new ObjectIdentifierType("SNMPv2-SMI", "iso", null, 1), _root); var jointIsoCcitt = new Definition(new ObjectIdentifierType("SNMPv2-SMI", "joint-iso-ccitt", null, 2), _root); _nameTable = new Dictionary<string, Definition> { { iso.TextualForm, iso }, { ccitt.TextualForm, ccitt }, { jointIsoCcitt.TextualForm, jointIsoCcitt } }; }
public void TestGetAlternativeTextualForm() { Definition root = Definition.RootDefinition; Definition iso = new Definition(new OidValueAssignment("SNMPV2-SMI", "iso", null, 1), root); Definition org = new Definition(new OidValueAssignment("SNMPV2-SMI", "org", "iso", 3), iso); Definition dod = new Definition(new OidValueAssignment("SNMPV2-SMI", "dod", "org", 6), org); Definition internet = new Definition(new OidValueAssignment("SNMPV2-SMI", "internet", "dod", 1), dod); Definition mgmt = new Definition(new OidValueAssignment("SNMPV2-SMI", "mgmt", "internet", 2), internet); Definition mib2 = new Definition(new OidValueAssignment("SNMPV2-SMI", "mib-2", "mgmt", 1), mgmt); Definition system = new Definition(new OidValueAssignment("SNMPV2-SMI", "system", "mib-2", 1), mib2); Assert.AreEqual("iso.org.dod.internet.mgmt.mib-2.system", new SearchResult(system, new uint[0]).AlternativeText); }
/// <summary> /// Creates an <see cref="ObjectTree"/> instance. /// </summary> public ObjectTree() { _root = Definition.RootDefinition; Definition ccitt = new Definition(new OidValueAssignment("SNMPV2-SMI", "ccitt", null, 0), _root); Definition iso = new Definition(new OidValueAssignment("SNMPV2-SMI", "iso", null, 1), _root); Definition jointIsoCcitt = new Definition(new OidValueAssignment("SNMPV2-SMI", "joint-iso-ccitt", null, 2), _root); _nameTable = new Dictionary<string, Definition> { { iso.TextualForm, iso }, { ccitt.TextualForm, ccitt }, { jointIsoCcitt.TextualForm, jointIsoCcitt } }; }
private void AddToTable(Definition result) { if (result != null && !_nameTable.ContainsKey(result.TextualForm)) { _nameTable.Add(result.TextualForm, result); } }