1 // 2 // Copyright (c) ZeroC, Inc. All rights reserved. 3 // 4 5 namespace IceInternal 6 { 7 8 using System.Collections.Generic; 9 10 public sealed class ValueFactoryManagerI : Ice.ValueFactoryManager 11 { add(Ice.ValueFactory factory, string id)12 public void add(Ice.ValueFactory factory, string id) 13 { 14 lock(this) 15 { 16 if(_factoryMap.ContainsKey(id)) 17 { 18 Ice.AlreadyRegisteredException ex = new Ice.AlreadyRegisteredException(); 19 ex.id = id; 20 ex.kindOfObject = "value factory"; 21 throw ex; 22 } 23 _factoryMap[id] = factory; 24 } 25 } 26 find(string id)27 public Ice.ValueFactory find(string id) 28 { 29 lock(this) 30 { 31 Ice.ValueFactory factory = null; 32 _factoryMap.TryGetValue(id, out factory); 33 return factory; 34 } 35 } 36 37 private Dictionary<string, Ice.ValueFactory> _factoryMap = new Dictionary<string, Ice.ValueFactory>(); 38 } 39 40 } 41