public static void Main(string[] args) { Console.WriteLine("AllJoyn Library version: " + AllJoyn.GetVersion()); Console.WriteLine("AllJoyn Library buildInfo: " + AllJoyn.GetBuildInfo()); // Enable callbacks on main thread only AllJoyn.SetMainThreadOnlyCallbacks(true); BasicServer basicServer = new BasicServer(); BasicClient basicClient = new BasicClient(); basicClient.Connect(); while (!basicClient.Connected) { AllJoyn.TriggerCallbacks(); // Pump messages System.Threading.Thread.Sleep(1); } Console.WriteLine("BasicClient.CallRemoteMethod returned '{0}'", basicClient.CallRemoteMethod()); while (basicServer.KeepRunning) { AllJoyn.TriggerCallbacks(); // Pump messages System.Threading.Thread.Sleep(1); } }
public static void Main(string[] args) { Console.WriteLine("AllJoyn Library version: " + AllJoyn.GetVersion()); Console.WriteLine("AllJoyn Library buildInfo: " + AllJoyn.GetBuildInfo()); // Enable callbacks on main thread only AllJoyn.SetMainThreadOnlyCallbacks(true); // Create message bus sMsgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.InterfaceDescription testIntf; AllJoyn.QStatus status = sMsgBus.CreateInterface(INTERFACE_NAME, false, out testIntf); if (status) { Console.WriteLine("Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { Console.WriteLine("Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Start the msg bus if (status) { status = sMsgBus.Start(); if (status) { Console.WriteLine("BusAttachment started."); } else { Console.WriteLine("BusAttachment.Start failed."); } } // Connect to the bus if (status) { status = sMsgBus.Connect(connectArgs); if (status) { Console.WriteLine("BusAttchement connected to " + connectArgs); } else { Console.WriteLine("BusAttachment::Connect(" + connectArgs + ") failed."); } } // Create a bus listener sBusListener = new MyBusListener(); if (status) { sMsgBus.RegisterBusListener(sBusListener); Console.WriteLine("BusListener Registered."); } // Begin discovery on the well-known name of the service to be called if (status) { status = sMsgBus.FindAdvertisedName(SERVICE_NAME); if (!status) { Console.WriteLine("org.alljoyn.Bus.FindAdvertisedName failed."); } } // Wait for join session to complete while (sJoinComplete == false) { AllJoyn.TriggerCallbacks(); // Pump messages System.Threading.Thread.Sleep(1); } if (status) { using (AllJoyn.ProxyBusObject remoteObj = new AllJoyn.ProxyBusObject(sMsgBus, SERVICE_NAME, SERVICE_PATH, sSessionId)) { AllJoyn.InterfaceDescription alljoynTestIntf = sMsgBus.GetInterface(INTERFACE_NAME); if (alljoynTestIntf == null) { throw new Exception("Failed to get test interface."); } remoteObj.AddInterface(alljoynTestIntf); AllJoyn.Message reply = new AllJoyn.Message(sMsgBus); AllJoyn.MsgArgs inputs = new AllJoyn.MsgArgs(2); inputs[0] = "Hello "; inputs[1] = "World!"; status = remoteObj.MethodCallSynch(SERVICE_NAME, "cat", inputs, reply, 5000, 0); if (status) { Console.WriteLine("{0}.{1} (path={2}) returned \"{3}\"", SERVICE_NAME, "cat", SERVICE_PATH, (string)reply[0]); } else { Console.WriteLine("MethodCall on {0}.{1} failed", SERVICE_NAME, "cat"); } } } Console.WriteLine("basic client exiting with status {0} ({1})\n", status, status.ToString()); }
public static void Main(string[] args) { Console.WriteLine("AllJoyn Library version: " + AllJoyn.GetVersion()); Console.WriteLine("AllJoyn Library buildInfo: " + AllJoyn.GetBuildInfo()); // Enable callbacks on main thread only AllJoyn.SetMainThreadOnlyCallbacks(true); // Create message bus sMsgBus = new AllJoyn.BusAttachment("myApp", true); // Add org.alljoyn.Bus.method_sample interface AllJoyn.InterfaceDescription testIntf; AllJoyn.QStatus status = sMsgBus.CreateInterface(INTERFACE_NAME, false, out testIntf); if (status) { Console.WriteLine("Interface Created."); testIntf.AddMember(AllJoyn.Message.Type.MethodCall, "cat", "ss", "s", "inStr1,inStr2,outStr"); testIntf.Activate(); } else { Console.WriteLine("Failed to create interface 'org.alljoyn.Bus.method_sample'"); } // Create a bus listener sBusListener = new MyBusListener(); if (status) { sMsgBus.RegisterBusListener(sBusListener); Console.WriteLine("BusListener Registered."); } // Set up bus object TestBusObject testObj = new TestBusObject(sMsgBus, SERVICE_PATH); // Start the msg bus if (status) { status = sMsgBus.Start(); if (status) { Console.WriteLine("BusAttachment started."); sMsgBus.RegisterBusObject(testObj); status = sMsgBus.Connect(connectArgs); if (status) { Console.WriteLine("BusAttchement connected to " + connectArgs); } else { Console.WriteLine("BusAttachment::Connect(" + connectArgs + ") failed."); } } else { Console.WriteLine("BusAttachment.Start failed."); } } // Request name if (status) { status = sMsgBus.RequestName(SERVICE_NAME, AllJoyn.DBus.NameFlags.ReplaceExisting | AllJoyn.DBus.NameFlags.DoNotQueue); if (!status) { Console.WriteLine("RequestName({0}) failed (status={1})", SERVICE_NAME, status); } } // Create session AllJoyn.SessionOpts opts = new AllJoyn.SessionOpts(AllJoyn.SessionOpts.TrafficType.Messages, false, AllJoyn.SessionOpts.ProximityType.Any, AllJoyn.TransportMask.Any); if (status) { ushort sessionPort = SERVICE_PORT; sSessionPortListener = new MySessionPortListener(); status = sMsgBus.BindSessionPort(ref sessionPort, opts, sSessionPortListener); if (!status) { Console.WriteLine("BindSessionPort failed ({0})", status); } } // Advertise name if (status) { status = sMsgBus.AdvertiseName(SERVICE_NAME, opts.Transports); if (!status) { Console.WriteLine("Failed to advertise name {0} ({1})", SERVICE_NAME, status); } } if (status) { while (true) { AllJoyn.TriggerCallbacks(); // Pump messages System.Threading.Thread.Sleep(1); } } // Dispose of objects now sMsgBus.Dispose(); sBusListener.Dispose(); Console.WriteLine("basic server exiting with status {0} ({1})", status, status.ToString()); }