コード例 #1
0
        static void Main()
        {
            log4net.Config.XmlConfigurator.Configure();

            OrbServices.CreateAndRegisterIiopChannel(0);

            String              componentModel       = Resources.ComponentDesc;
            TextReader          file                 = new StringReader(componentModel);
            XmlTextReader       componentInformation = new XmlTextReader(file);
            XmlComponentBuilder builder              = new XmlComponentBuilder(componentInformation);
            ComponentContext    pingContext          = builder.build();

            //Escrevendo a IOR do IComponent no arquivo.
            IComponent  pingComponent = pingContext.GetIComponent();
            OrbServices orb           = OrbServices.GetSingleton();
            String      ior           = orb.object_to_string(pingComponent);

            String       iorPath = Resources.IorFilename;
            StreamWriter stream  = new StreamWriter(iorPath);

            try {
                stream.Write(ior);
            }
            finally {
                stream.Close();
            }

            Console.WriteLine("Componente ping está no ar.");
            Console.ReadLine();
        }
コード例 #2
0
        static void Main()
        {
            Console.WriteLine("Pressione 'enter' quando o componente Hello estiver no ar.");
            Console.ReadLine();

            OrbServices.CreateAndRegisterIiopChannel();
            String       helloIorPath = Resources.IorFilename;
            StreamReader stream       = new StreamReader(helloIorPath);
            String       helloIor;

            try {
                helloIor = stream.ReadToEnd();
            }
            finally {
                stream.Close();
            }

            OrbServices orb        = OrbServices.GetSingleton();
            IComponent  icomponent = orb.string_to_object(helloIor) as IComponent;
            Hello       hello      = icomponent.getFacetByName("Hello") as Hello;

            hello.sayHello();

            Console.ReadLine();
        }
コード例 #3
0
 /// <summary>
 /// Inicializa o ORB, transformando-o em um ORB preparado para o OpenBus.
 /// </summary>
 /// <param name="properties">Conjunto opcional de propriedades a ser passada para o canal IIOP do servidor.</param>
 /// <returns>O ORB.</returns>
 public static OrbServices InitORB(IDictionary properties = null)
 {
     lock (Lock) {
         if (!_initialized)
         {
             // Adiciona interceptadores
             InterceptorsInitializer initializer = new InterceptorsInitializer();
             ORB.RegisterPortableInterceptorInitalizer(initializer);
             ORB.CompleteInterceptorRegistration();
             if (properties != null)
             {
                 OrbServices.CreateAndRegisterIiopChannel(properties);
             }
             else
             {
                 OrbServices.CreateAndRegisterIiopChannel(0);
             }
             Context      = initializer.Context;
             _initialized = true;
         }
     }
     return(ORB);
 }
コード例 #4
0
        static void Main()
        {
            log4net.Config.XmlConfigurator.Configure();

            Console.WriteLine("Pressione 'enter' quando o componente Ping estiver no ar.");
            Console.ReadLine();

            OrbServices.CreateAndRegisterIiopChannel(0);

            ComponentId      pongComponentId = new ComponentId("PingPong", 1, 0, 0, "");
            ComponentContext pongContext     = new DefaultComponentContext(pongComponentId);

            MarshalByRefObject pongServant   = new PongServant(pongContext);
            string             pingpongRepID = Repository.GetRepositoryID(typeof(PingPongServer));

            //Criando o component Pong.
            pongContext.AddFacet("Pong", pingpongRepID, pongServant);
            pongContext.AddReceptacle("PingRec", pingpongRepID, false);

            String       pingIorPath = Pong.Properties.Resources.IorFilename;
            StreamReader stream      = new StreamReader(pingIorPath);
            String       pingIor;

            try {
                pingIor = stream.ReadToEnd();
            }
            finally {
                stream.Close();
            }

            //Recuperar a faceta Ping.
            OrbServices        orb           = OrbServices.GetSingleton();
            IComponent         pingComponent = orb.string_to_object(pingIor) as IComponent;
            MarshalByRefObject pingObj       = pingComponent.getFacetByName("Ping");

            //Recuperar a faceta Pong.
            IComponent         pongComponent = pongContext.GetIComponent();
            MarshalByRefObject pongObj       = pongComponent.getFacetByName("Pong");

            //Conectar o Ping em Pong.
            IReceptacles pingIReceptacles = pingComponent.getFacetByName("IReceptacles") as IReceptacles;

            pingIReceptacles.connect("PongRec", pongObj);

            //Conectar o Pong em Ping.
            IReceptacles pongIReceptacles = pongComponent.getFacetByName("IReceptacles") as IReceptacles;

            pongIReceptacles.connect("PingRec", pingObj);

            Console.WriteLine("Executando ping e pong no Componente Ping");
            PingPongServer pingServer = pingComponent.getFacet(pingpongRepID) as PingPongServer;

            pingServer.ping();
            pingServer.pong();
            Console.WriteLine("--\n");

            Console.WriteLine("Executando ping e pong no Componente Pong");
            PingPongServer pongServer = pongComponent.getFacet(pingpongRepID) as PingPongServer;

            pongServer.ping();
            pongServer.pong();
            Console.WriteLine("--\n");

            MarshalByRefObject pingMetaInterfaceObj = pingComponent.getFacetByName("IMetaInterface");
            IMetaInterface     pingMetaInterface    = pingMetaInterfaceObj as IMetaInterface;

            FacetDescription[] PingFacets = pingMetaInterface.getFacets();
            foreach (var facet in PingFacets)
            {
                Console.WriteLine(facet.name + " --- " + facet.interface_name);
            }

            Console.WriteLine("Fim");
            Console.ReadLine();
        }