internal int CreateEphemeralId(Guid guid, EphemeralIdTable.NamingContext namingContext) { int count; if (!this.guidToEphemeralId.TryGetValue(guid, out count)) { count = this.ephemeralIdToEntry.Count; this.ephemeralIdToEntry.Add(new EphemeralIdTable.Entry(guid, namingContext)); this.guidToEphemeralId.Add(guid, count); } return(-(count + 16)); }
internal void ConvertIdsToGuids(int[] ids, out Guid[] guids, out EphemeralIdTable.NamingContext[] contexts) { guids = new Guid[ids.Length]; contexts = new EphemeralIdTable.NamingContext[ids.Length]; for (int i = 0; i < ids.Length; i++) { Guid guid; EphemeralIdTable.NamingContext namingContext; this.GetGuid(ids[i], out guid, out namingContext); guids[i] = guid; contexts[i] = namingContext; } }
internal bool GetGuid(int id, out Guid guid, out EphemeralIdTable.NamingContext namingContext) { if (!this.IsAddressBookEphemeralId(id)) { guid = EphemeralIdTable.InvalidGuid; namingContext = EphemeralIdTable.NamingContext.Invalid; return(false); } id = -id; EphemeralIdTable.Entry entry = this.ephemeralIdToEntry[id - 16]; guid = entry.Guid; namingContext = entry.NamingContext; return(true); }
internal Entry(Guid guid, EphemeralIdTable.NamingContext namingContext) { this.Guid = guid; this.NamingContext = namingContext; }