in dbus-java/src/main/java/org/freedesktop/dbus/messages/DBusSignal.java [63:123]
public DBusSignal(String source, String path, String iface, String member, String sig, Object... args)
throws DBusException {
super(DBusConnection.getEndianness(), Message.MessageType.SIGNAL, (byte) 0);
if (null == path || null == member || null == iface) {
throw new MessageFormatException("Must specify object path, interface and signal name to Signals.");
}
getHeaders().put(Message.HeaderField.PATH, path);
getHeaders().put(Message.HeaderField.MEMBER, member);
getHeaders().put(Message.HeaderField.INTERFACE, iface);
List<Object> hargs = new ArrayList<>();
hargs.add(new Object[] {
Message.HeaderField.PATH, new Object[] {
ArgumentType.OBJECT_PATH_STRING, path
}
});
hargs.add(new Object[] {
Message.HeaderField.INTERFACE, new Object[] {
ArgumentType.STRING_STRING, iface
}
});
hargs.add(new Object[] {
Message.HeaderField.MEMBER, new Object[] {
ArgumentType.STRING_STRING, member
}
});
if (null != source) {
getHeaders().put(Message.HeaderField.SENDER, source);
hargs.add(new Object[] {
Message.HeaderField.SENDER, new Object[] {
ArgumentType.STRING_STRING, source
}
});
}
if (null != sig) {
hargs.add(new Object[] {
Message.HeaderField.SIGNATURE, new Object[] {
ArgumentType.SIGNATURE_STRING, sig
}
});
getHeaders().put(Message.HeaderField.SIGNATURE, sig);
setArgs(args);
}
blen = new byte[4];
appendBytes(blen);
long newSerial = getSerial() + 1;
setSerial(newSerial);
append("ua(yv)", newSerial, hargs.toArray());
pad((byte) 8);
long counter = getByteCounter();
if (null != sig) {
append(sig, args);
}
marshallint(getByteCounter() - counter, blen, 0, 4);
bodydone = true;
}