private static void ConnectToOpenBus() { // Define propriedades para a oferta de serviço a ser registrada no barramento IComponent ic = _component.GetIComponent(); ServiceProperty[] properties = { new ServiceProperty("offer.domain", "Demo Independent Clock") }; // Cria conexão e a define como conexão padrão tanto para entrada como saída. OpenBusContext context = ORBInitializer.Context; _conn = context.ConnectByAddress(_host, _port); context.SetDefaultConnection(_conn); // Cria registrador e adiciona a callback de login inválido _registerer = new Registerer(ic, properties, _interval); _conn.OnInvalidLogin = InvalidLogin; // Faz o login e registra no barramento try { _conn.OnInvalidLogin(_conn, new LoginInfo()); } catch (Exception e) { Console.WriteLine(e); } finally { if (!_conn.Login.HasValue || Offer == null) { Exit(1); } } }
private static void Main(String[] args) { // Registra handler para o caso do processo ser finalizado AppDomain.CurrentDomain.ProcessExit += CurrentDomainProcessExit; // Obtém dados através dos argumentos string host = args[0]; ushort port = Convert.ToUInt16(args[1]); _entity = args[2]; _privateKey = Crypto.ReadKeyFile(args[3]); _interval = Convert.ToInt32(args.Length > 4 ? args[4] : "1"); // Cria o componente que conterá as facetas do servidor ORBInitializer.InitORB(); ComponentContext component = new DefaultComponentContext(new ComponentId("dedicatedclock", 1, 0, 0, ".net")); // Cria a faceta Clock para o componente component.AddFacet("Clock", Repository.GetRepositoryID(typeof(Clock)), new ClockImpl()); // Define propriedades para a oferta de serviço a ser registrada no barramento IComponent ic = component.GetIComponent(); ServiceProperty[] properties = { new ServiceProperty("offer.domain", "Demo Dedicated Clock") }; // Cria conexão e a define como conexão padrão tanto para entrada como saída. OpenBusContext context = ORBInitializer.Context; _conn = context.ConnectByAddress(host, port); context.SetDefaultConnection(_conn); // Cria registrador e adiciona a callback de login inválido _registerer = new Registerer(ic, properties, _interval); _conn.OnInvalidLogin = InvalidLogin; // Faz o login e registra no barramento try { _conn.OnInvalidLogin(_conn, new LoginInfo()); } catch (Exception e) { Console.WriteLine(e); } finally { if (!_conn.Login.HasValue || Offer == null) { Exit(1); } } // Mantém a thread ativa para aguardar requisições Console.WriteLine(Resources.ServerOK); Thread.Sleep(Timeout.Infinite); }