Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class FastComparer : IEqualityComparer<Object>
- {
- bool IEqualityComparer<object>.Equals(object x, object y)
- {
- return ReferenceEquals(x, y);
- }
- int IEqualityComparer<object>.GetHashCode(object obj)
- {
- return obj.GetHashCode();
- }
- }
- public class ObjectIDGeneratorXPlatform
- {
- private Dictionary<object, long> mObjects;
- private long mCounter = 1;
- public ObjectIDGeneratorXPlatform()
- {
- mObjects = new Dictionary<object, long>(4096, new FastComparer());
- }
- public long GetId(Object obj, out bool firstTime)
- {
- long id;
- if (mObjects.TryGetValue(obj, out id))
- {
- firstTime = false;
- return id;
- }
- else
- {
- firstTime = true;
- id = mCounter;
- ++mCounter;
- mObjects.Add(obj, id);
- return id;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement