//public int Hello(out string name, Udbus.Core.IUdbusSerialNumberManager serialManager, Udbus.Core.DbusMessageReceiverPool receiverPool) //{ // name = default(string); // uint serial = serialManager.GetNext(); // Udbus.Serialization.UdbusMessageBuilder builder = new Udbus.Serialization.UdbusMessageBuilder(); // Udbus.Core.NMessageHandle.UdbusMessageHandle msgHandleSend = null; // int result = -1; // Udbus.Serialization.DbusConnectionParameters connectionParametersDbus = defaultConnectionParametersDbus; // try // { // result = builder.UdbusMethodMessage(serial, connectionParametersDbus, "Hello").Result; // if ((result == 0)) // { // msgHandleSend = builder.Message; // result = this.Send(msgHandleSend); // if ((result != 0)) // { // throw Udbus.Core.Exceptions.UdbusMethodSendException.Create("Hello", result, connectionParametersDbus); // } // } // } // finally // { // if ((msgHandleSend != null)) // { // msgHandleSend.Dispose(); // } // } // if ((result == 0)) // { // Udbus.Core.UdbusMessagePair msgResp = default(Udbus.Core.UdbusMessagePair); // try // { // msgResp = receiverPool.ReceiveMessageData(this, serial, out result); // if (((result == 0) // && (msgResp.QuEmpty == false))) // { // if ((msgResp.Data.typefield.type == Udbus.Core.dbus_msg_type.DBUS_TYPE_ERROR)) // { // throw Udbus.Core.Exceptions.UdbusMessageMethodErrorException.Create("Hello", connectionParametersDbus, msgResp.Data); // } // else // { // Udbus.Serialization.UdbusMessageReader reader = new Udbus.Serialization.UdbusMessageReader(msgResp.Handle); // if ((result == 0)) // { // string nameResult; // result = Udbus.Serialization.UdbusMessageReader.ReadString(reader, out nameResult); // if ((result == 0)) // { // name = nameResult; // } // else // { // throw Udbus.Core.Exceptions.UdbusMessageMethodArgumentOutException.Create(1, "name", typeof(string), result, "Hello", connectionParametersDbus, msgResp.Data); // } // } // else // { // throw Udbus.Core.Exceptions.UdbusMessageMethodArgumentOutException.Create(0, "UnknownParameters", typeof(Udbus.Core.Exceptions.UdbusMessageMethodArgumentException.UnknownParameters), result, "Hello", connectionParametersDbus, msgResp.Data); // } // } // } // else // { // throw Udbus.Core.Exceptions.UdbusMethodReceiveException.Create("Hello", result, connectionParametersDbus); // } // } // finally // { // if ((msgResp.QuEmpty == false)) // { // msgResp.Dispose(); // } // } // } // return result; //} /// Udbus send/receive public int Send(NMessage.UdbusMessageHandle msg) { int result = NMessageFunctions.dbus_msg_send(ref this.dbio, msg); return result; }
/// <summary> /// Whichever namespace we're using as NMessage, receive one of those. /// </summary> /// <param name="recv">Received message or initialiser value on failure.</param> /// <returns>Zero if successful, otherwise non-zero.</returns> public int Receive(out NMessage.UdbusMessageHandle recv) { int result = -1; recv = NMessage.UdbusMessageHandle.Initialiser; if (this.transport.WaitForRead(XHT_DEFAULT_TIMEOUT) == WaitForReadResult.Succeeded) { result = NMessageFunctions.dbus_msg_recv(ref this.dbio, out recv); } return result; }