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