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;
            }
        }
Example #2
0
 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 ?? "");
         }
     }
 }