static public NMessageHandle.UdbusMessageHandle StructureToHandle(NMessageStruct.UdbusMessageHandle msgStruct) { UdbusMessageBuilder builder = new UdbusMessageBuilder(); builder.UdbusMessage(msgStruct.serial); string path = msgStruct.path; string destination = msgStruct.destination; string interface_ = msgStruct.interface_; string error_name = msgStruct.error_name; string method = msgStruct.method; string sender = msgStruct.sender; msgStruct.path = msgStruct.destination = msgStruct.interface_ = msgStruct.error_name = msgStruct.method = msgStruct.sender = null; Marshal.StructureToPtr(msgStruct, builder.Message.handle, false); builder .SetPath(path) .SetDestination(destination) .SetInterface(interface_) .SetErrorName(error_name) .SetMethod(method) .SetSender(sender) ; return(builder.Message); }
public override int MockIORead(IntPtr priv, byte[] buf, System.UInt32 count) { int nRead = base.MockIORead(priv, buf, count); if (nRead == count) // If read it all back { MockStoreUdbusTransport tempTransport = new MockStoreUdbusTransport(); tempTransport.Stream = new System.IO.MemoryStream(buf); tempTransport.Stream.Seek(0, System.IO.SeekOrigin.Begin ManagedDbusIo dbus_io = new ManagedDbusIo(); tempTransport.PopulateDbio(ref dbus_io); NMessageHandle.UdbusMessageHandle msg; UdbusMsgHandleFunctions.dbus_msg_recv(ref dbus_io, out msg); if (msg.HandleToStructure().reply_serial == this.lastSerial) { UdbusMessageBuilder builder = new UdbusMessageBuilder(); // No can do since no accessors. // Also, how would we then turn this back into binary format ?? builder.SetReplySerial(this.lastSerial); } } // Ends if read it all back return nRead; }
static void WriteSnippets() { //string structSig = "(bs)"; dbus_type[] terminator = new dbus_type[] { dbus_type.DBUS_INVALID }; dbus_type[] structSig = new dbus_type[] { dbus_type.DBUS_STRUCT_BEGIN, dbus_type.DBUS_BOOLEAN, dbus_type.DBUS_STRING, dbus_type.DBUS_STRUCT_END }; dbus_type[] structTypes = structSig.Concat(terminator).ToArray(); //object[] astruct = new object[] { dbus_union.CreateStruct(new object[] { true, "One" }, structTypes), // dbus_union.CreateStruct(new object[] { false, "Two" }, structTypes) //}; object[] astruct = new object[] { new object[] { true, "One" }, new object[] { false, "Two" } }; object[] adict = new object[] { new object[] { 1, new object[] { true, "One" } }, new object[] { 2, new object[] { false, "Two" } } }; dbus_type[] dictTypes = new dbus_type[] { dbus_type.DBUS_ARRAY, dbus_type.DBUS_DICT_BEGIN, dbus_type.DBUS_INT32 } .Concat(structSig) .Concat(new dbus_type[] { dbus_type.DBUS_DICT_END }) .Concat(terminator) .ToArray(); dbus_union s = dbus_union.CreateStruct(astruct, structTypes); dbus_union d = dbus_union.Create(adict, dictTypes); UdbusMessageBuilder builder = new UdbusMessageBuilder(); //MarshalWriteObjectDelegate del = UdbusMessageBuilder.BodyAdd_String; }
public static NMessageHandle.UdbusMessageHandle StructureToHandle(NMessageStruct.UdbusMessageHandle msgStruct) { UdbusMessageBuilder builder = new UdbusMessageBuilder(); builder.UdbusMessage(msgStruct.serial); string path = msgStruct.path; string destination = msgStruct.destination; string interface_ = msgStruct.interface_; string error_name = msgStruct.error_name; string method = msgStruct.method; string sender = msgStruct.sender; msgStruct.path = msgStruct.destination = msgStruct.interface_ = msgStruct.error_name = msgStruct.method = msgStruct.sender = null; Marshal.StructureToPtr(msgStruct, builder.Message.handle, false); builder .SetPath(path) .SetDestination(destination) .SetInterface(interface_) .SetErrorName(error_name) .SetMethod(method) .SetSender(sender) ; return builder.Message; }
public static int BodyAdd_PrimitiveDouble(UdbusMessageBuilder builder, Udbus.Containers.dbus_primitive value) { return(builder.BodyAdd_PrimitiveDouble(value)); }
public static int BodyAdd_VariantVariant(UdbusMessageBuilder builder, Udbus.Containers.dbus_union value) { return(builder.BodyAdd_VariantVariant(value)); }
public static int BodyAdd_PrimitiveDouble(UdbusMessageBuilder builder, Udbus.Containers.dbus_primitive value) { return builder.BodyAdd_PrimitiveDouble(value); }
public static int BodyAdd_VariantVariant(UdbusMessageBuilder builder, Udbus.Containers.dbus_union value) { return builder.BodyAdd_VariantVariant(value); }