void BuildEntryDictionaries(IMacVendorInfoProvider ouiEntryProvider) { foreach (var entry in ouiEntryProvider.GetEntries()) { Dictionary <long, MacVendorInfo> entryDict; if (!_dicts.TryGetValue(entry.MaskLength, out entryDict)) { entryDict = new Dictionary <long, MacVendorInfo>(); _dicts.Add(entry.MaskLength, entryDict); } entryDict[entry.Identifier] = entry; } }
public void Write(Stream stream) { using (var writer = new BinaryWriter(stream, Encoding.UTF8, leaveOpen: true)) { foreach (var info in _vendorInfoProvider.GetEntries()) { writer.Write(info.MaskLength); var identBytesContainerSize = info.MaskLength / 8 + Math.Min(1, info.MaskLength % 8); var identBytes = BitConverter.GetBytes(info.Identifier); writer.Write(identBytes, identBytes.Length - identBytesContainerSize, identBytesContainerSize); writer.Write(info.Organization ?? ""); } } }