Beispiel #1
0
 void configure_facet_address(IBindingKind unit_slice, string[] ip_address_facets, int[] port_facets)
 {
     foreach (KeyValuePair <int, int[]> facet in unit_slice.FacetIndexes)
     {
         foreach (int i in facet.Value)
         {
             FacetAccess facet_access = new FacetAccess(ip_address_facets [i], port_facets [i]);
             unit_slice.addFacetAccessInfo(i, facet_access);
             Console.WriteLine("ADDING FACET TO UNIT SLICE - fact=" + i + ", address = " + ip_address_facets [i] + ", port = " + port_facets [i]);
         }
     }
 }
Beispiel #2
0
        public ComponentID createInstance(string instanceName, string class_name, TypeMap properties)
        {
            Console.WriteLine("CREATE INSTANCE");
            Connector.openConnection();

            ComponentID cid = new WorkerComponentIDImpl(instanceName);

            try {
                Console.WriteLine("createInstanceBaseForAllKinds - 1 " + instanceName);
                unitProperties.Add(cid, properties);

                Console.WriteLine("createInstanceBaseForAllKinds - 2");
                string   id_unit          = properties.getString(Constants.UNIT_KEY, "");
                string   library_path     = properties.getString(Constants.COMPONENT_KEY, "");
                string   assembly_string  = properties.getString(Constants.ASSEMBLY_STRING_KEY, "");
                string[] portNames        = properties.getStringArray(Constants.PORT_NAMES_KEY, new string[0]);
                int      kind             = Constants.kindMapping[properties.getString(Constants.KIND_KEY, "")];
                string   unit_mapping_xml = properties.getString(Constants.NODES_KEY, "");
                Instantiator.UnitMappingType[] unit_mapping = LoaderApp.deserialize <Instantiator.UnitMappingType[]>(unit_mapping_xml);

                Console.WriteLine("createInstanceBaseForAllKinds - 3 ; assembly_string = " + assembly_string + "; class name = " + class_name);

                ObjectHandle    obj        = Activator.CreateInstance(assembly_string, class_name);
                hpe.basic.IUnit unit_slice = (hpe.basic.IUnit)obj.Unwrap();
                unit_slice.Id_unit   = id_unit;
                unit_slice.PortNames = portNames;
                unit_slice.Kind      = kind;
                unit_slice.ClassName = class_name;
                unit_slice.QualifiedComponentTypeName = library_path;

                unit_registry.Add(instanceName, unit_slice);

                Console.WriteLine("createInstanceBaseForAllKinds - 4");

                Services services = new WorkerServicesImpl(this, cid, unit_slice);
                unit_slice.setServices(services);

                Console.WriteLine("createInstanceBaseForAllKinds - 6");

                if (properties.hasKey(Constants.KEY_KEY))
                {
                    int[] facet_topology      = properties.getIntArray(Constants.FACET_TOPOLOGY, new int[0]);
                    int   this_facet_instance = properties.getInt(Constants.FACET_INSTANCE, 0);
                    int   this_facet          = properties.getInt(Constants.FACET, 0);
                    unit_slice.ThisFacetInstance = this_facet_instance;
                    unit_slice.ThisFacet         = facet_topology[this_facet_instance];

                    Console.WriteLine("createInstanceBaseForAllKinds - 7 - PASSOU DIRETO");

                    unit_slice.configure_facet_topology(facet_topology, unit_mapping);

                    if (kind == Constants.KIND_BINDING)
                    {
                        Console.WriteLine("createInstanceBaseForAllKinds - 8");

                        IBindingKind unit_slice_binding_root = (IBindingKind)unit_slice;
                        string[]     ip_address_facets       = properties.getStringArray(Constants.FACET_IP_ADDRESS, new string[0]);
                        int[]        port_facets             = properties.getIntArray(Constants.FACET_PORT, new int[0]);
                        Console.WriteLine("createInstanceBaseForAllKinds - 9" + ip_address_facets.Length + "," + port_facets.Length);
                        configure_facet_address(unit_slice_binding_root, ip_address_facets, port_facets);
                        Console.WriteLine("createInstanceBaseForAllKinds - 10");

                        Console.WriteLine("createInstanceBaseForAllKinds - 11 ");
                    }
                }
                else
                {
                    Console.WriteLine("createInstanceBaseForAllKinds - NO SPLIT");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("createInstanceBaseForAllKinds - EXCEPTION");
                Console.WriteLine("EXCEPTION MESSAGE -" + e.Message);
                Console.WriteLine("INNER EXCEPTION MESSAGE -" + e.InnerException.Message);
                throw e;
            }

            Connector.closeConnection();

            return(cid);
        }