private void FillKNMP(KNMPackage knmp, IDictionary<ulong, string> map) { GenCLIP gc; ulong h, ch; string s, cs; foreach (KeyValuePair<ulong, string> nm in map) { h = nm.Key; s = nm.Value; if (FNVHash.HashString64(s) == h || FNVHash.HashString32(s) == h) { knmp.Names[h] = s; } else if (FNVCLIP.HashString(s) == h) { cs = FNVCLIP.GetGenericValue(s); ch = FNVHash.HashString64(cs) & 0x7FFFFFFFFFFFFFFF; knmp.Generics[ch] = cs; if (!this.mGenCLIPs.TryGetValue(ch, out gc)) { gc = new GenCLIP(cs); this.mGenCLIPs.Add(ch, gc); } gc.CLIPNames[h] = new CLIP(s, knmp.Path); } else { knmp.Labels[h] = s; } } if (knmp.Names.Count > 0) { List<KeyValuePair<ulong, string>> names = new List<KeyValuePair<ulong, string>>(knmp.Names); foreach (KeyValuePair<ulong, string> name in names) { s = name.Value; if (name.Key < 0x100000000) { h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } else { h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } } } if (knmp.Generics.Count > 0) { foreach (KeyValuePair<ulong, string> gen in knmp.Generics) { s = gen.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } if (knmp.Labels.Count > 0) { foreach (KeyValuePair<ulong, string> label in knmp.Labels) { s = label.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } }
private void FillKNMP(KNMPackage knmp, IDictionary <ulong, string> map) { GenCLIP gc; ulong h, ch; string s, cs; foreach (KeyValuePair <ulong, string> nm in map) { h = nm.Key; s = nm.Value; if (FNVHash.HashString64(s) == h || FNVHash.HashString32(s) == h) { knmp.Names[h] = s; } else if (FNVCLIP.HashString(s) == h) { cs = FNVCLIP.GetGenericValue(s); ch = FNVHash.HashString64(cs) & 0x7FFFFFFFFFFFFFFF; knmp.Generics[ch] = cs; if (!this.mGenCLIPs.TryGetValue(ch, out gc)) { gc = new GenCLIP(cs); this.mGenCLIPs.Add(ch, gc); } gc.CLIPNames[h] = new CLIP(s, knmp.Path); } else { knmp.Labels[h] = s; } } if (knmp.Names.Count > 0) { List <KeyValuePair <ulong, string> > names = new List <KeyValuePair <ulong, string> >(knmp.Names); foreach (KeyValuePair <ulong, string> name in names) { s = name.Value; if (name.Key < 0x100000000) { h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } else { h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } } } if (knmp.Generics.Count > 0) { foreach (KeyValuePair <ulong, string> gen in knmp.Generics) { s = gen.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } if (knmp.Labels.Count > 0) { foreach (KeyValuePair <ulong, string> label in knmp.Labels) { s = label.Value; h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } cs = FNVCLIP.GetGenericValue(s); if (!string.Equals(s, cs, StringComparison.OrdinalIgnoreCase)) { h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } cs = string.Concat(cs, ".ma"); h = FNVHash.HashString32(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } h = FNVHash.HashString64(cs); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = cs; } } s = string.Concat(s, ".ma"); h = FNVHash.HashString32(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } h = FNVHash.HashString64(s); if (!knmp.Names.ContainsKey(h)) { knmp.Names[h] = s; } } } }