public static void Main() { Gdk.Threads.Init(); Gtk.Application.Init(); System.Threading.Thread.CurrentThread.Name = "gui-thread"; new Gnome.Program("SteticBackend", "0.0", Gnome.Modules.UI, new string[0]); // Read the remoting channel to use string channel = Console.In.ReadLine(); IServerChannelSinkProvider formatterSink = new BinaryServerFormatterSinkProvider(); formatterSink.Next = new GuiDispatchServerSinkProvider(); string unixPath = null; if (channel == "unix") { unixPath = System.IO.Path.GetTempFileName(); Hashtable props = new Hashtable(); props ["path"] = unixPath; props ["name"] = "__internal_unix"; ChannelServices.RegisterChannel(new UnixChannel(props, null, formatterSink)); } else { Hashtable props = new Hashtable(); props ["port"] = 0; props ["name"] = "__internal_tcp"; ChannelServices.RegisterChannel(new TcpChannel(props, null, formatterSink)); } // Read the reference to the application string sref = Console.In.ReadLine(); byte[] data = Convert.FromBase64String(sref); MemoryStream ms = new MemoryStream(data); BinaryFormatter bf = new BinaryFormatter(); controller = (ApplicationBackendController)bf.Deserialize(ms); ApplicationBackend backend = new ApplicationBackend(controller.Application); controller.Connect(backend); Gdk.Threads.Enter(); Gtk.Application.Run(); Gdk.Threads.Leave(); controller.Disconnect(backend); }
public static void Main () { Gdk.Threads.Init (); Gtk.Application.Init (); System.Threading.Thread.CurrentThread.Name = "gui-thread"; // Read the remoting channel to use string channel = Console.In.ReadLine (); IServerChannelSinkProvider formatterSink = new BinaryServerFormatterSinkProvider (); formatterSink.Next = new GuiDispatchServerSinkProvider (); string unixPath = null; if (channel == "unix") { unixPath = System.IO.Path.GetTempFileName (); Hashtable props = new Hashtable (); props ["path"] = unixPath; props ["name"] = "__internal_unix"; ChannelServices.RegisterChannel (new UnixChannel (props, null, formatterSink), false); } else { Hashtable props = new Hashtable (); props ["port"] = 0; props ["name"] = "__internal_tcp"; ChannelServices.RegisterChannel (new TcpChannel (props, null, formatterSink), false); } // Read the reference to the application string sref = Console.In.ReadLine (); byte[] data = Convert.FromBase64String (sref); MemoryStream ms = new MemoryStream (data); BinaryFormatter bf = new BinaryFormatter (); controller = (ApplicationBackendController) bf.Deserialize (ms); ApplicationBackend backend = new ApplicationBackend (controller.Application); controller.Connect (backend); Gdk.Threads.Enter (); Gtk.Application.Run (); Gdk.Threads.Leave (); controller.Disconnect (backend); }