Package org.freedesktop.dbus
Class Message
java.lang.Object
org.freedesktop.dbus.Message
- Direct Known Subclasses:
DBusSignal
,Error
,MethodCall
,MethodReturn
Superclass of all messages which are sent over the Bus.
This class deals with all the marshalling to/from the wire format.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interface
Defines constants for each argument type.static interface
Defines constants representing the endianness of the message.static interface
Defines constants representing the flags which can be set on a message.static interface
Defines constants for each valid header field type.static interface
Defines constants for each message type. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected long
protected byte
protected static long
static final byte
The current protocol major version.protected byte
protected long
protected byte
protected byte[][]
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionint
align
(int current, byte type) Align a counter to the given type.void
Append a series of values to the message.protected void
appendByte
(byte b) Appends a byte to the buffer list.protected void
appendBytes
(byte[] buf) Appends a buffer to the buffer list.void
appendint
(long l, int width) Marshalls an integer of a given width and appends it to the message.static long
demarshallint
(byte[] buf, int ofs, byte endian, int width) Demarshalls an integer of a given width from a buffer.long
demarshallint
(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer.static long
demarshallintBig
(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer using big-endian format.static long
demarshallintLittle
(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer using little-endian format.Object[]
Demarshall values from a buffer.Object[]
Demarshall values from a buffer.static int
getAlignment
(byte type) Return the alignment for a given type.Returns the destination of the message.int
getFlags()
Returns the message flags.getHeader
(byte type) Returns the value of the header field of a given field.static String
getHeaderFieldName
(byte field) Returns the name of the given header field.Returns the interface of the message.getName()
Returns the member name or error name this message represents.Object[]
Parses and returns the parameters to this message as an Object array.getPath()
Returns the object path of the message.long
If this is a reply to a message, this returns its serial.long
Returns the message serial ID (unique for this connection)getSig()
Returns the dbus signature of the parameters.Returns the Bus ID that sent the message.byte[][]
void
marshallint
(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer.static void
marshallintBig
(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer using big-endian format.static void
marshallintLittle
(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer using little-endian format.void
pad
(byte type) Pad the message to the proper alignment for the given type.protected void
void
Warning, do not use this method unless you really know what you are doing.toString()
Formats the message in a human-readable format.
-
Field Details
-
PROTOCOL
public static final byte PROTOCOLThe current protocol major version.- See Also:
-
wiredata
protected byte[][] wiredata -
bytecounter
protected long bytecounter -
headers
-
globalserial
protected static long globalserial -
serial
protected long serial -
type
protected byte type -
flags
protected byte flags -
protover
protected byte protover
-
-
Constructor Details
-
Message
Create a message; only to be called by sub-classes.- Parameters:
endian
- The endianness to create the message.type
- The message type.flags
- Any message flags.- Throws:
DBusException
-
Message
protected Message()Create a blank message. Only to be used when calling populate.
-
-
Method Details
-
getHeaderFieldName
Returns the name of the given header field. -
appendBytes
protected void appendBytes(byte[] buf) Appends a buffer to the buffer list. -
appendByte
protected void appendByte(byte b) Appends a byte to the buffer list. -
demarshallint
public long demarshallint(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer. Endianness is determined from the format of the message.- Parameters:
buf
- The buffer to demarshall from.ofs
- The offset to demarshall from.width
- The byte-width of the int.
-
demarshallint
public static long demarshallint(byte[] buf, int ofs, byte endian, int width) Demarshalls an integer of a given width from a buffer.- Parameters:
buf
- The buffer to demarshall from.ofs
- The offset to demarshall from.endian
- The endianness to use in demarshalling.width
- The byte-width of the int.
-
demarshallintBig
public static long demarshallintBig(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer using big-endian format.- Parameters:
buf
- The buffer to demarshall from.ofs
- The offset to demarshall from.width
- The byte-width of the int.
-
demarshallintLittle
public static long demarshallintLittle(byte[] buf, int ofs, int width) Demarshalls an integer of a given width from a buffer using little-endian format.- Parameters:
buf
- The buffer to demarshall from.ofs
- The offset to demarshall from.width
- The byte-width of the int.
-
appendint
public void appendint(long l, int width) Marshalls an integer of a given width and appends it to the message. Endianness is determined from the message.- Parameters:
l
- The integer to marshall.width
- The byte-width of the int.
-
marshallint
public void marshallint(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer. Endianness is determined from the message.- Parameters:
l
- The integer to marshall.buf
- The buffer to marshall to.ofs
- The offset to marshall to.width
- The byte-width of the int.
-
marshallintBig
public static void marshallintBig(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer using big-endian format.- Parameters:
l
- The integer to marshall.buf
- The buffer to marshall to.ofs
- The offset to marshall to.width
- The byte-width of the int.
-
marshallintLittle
public static void marshallintLittle(long l, byte[] buf, int ofs, int width) Marshalls an integer of a given width into a buffer using little-endian format.- Parameters:
l
- The integer to marshall.buf
- The buffer to demarshall to.ofs
- The offset to demarshall to.width
- The byte-width of the int.
-
getWireData
public byte[][] getWireData() -
toString
Formats the message in a human-readable format. -
getHeader
Returns the value of the header field of a given field.- Parameters:
type
- The field to return.- Returns:
- The value of the field or null if unset.
-
pad
public void pad(byte type) Pad the message to the proper alignment for the given type. -
getAlignment
public static int getAlignment(byte type) Return the alignment for a given type. -
append
Append a series of values to the message.- Parameters:
sig
- The signature(s) of the value(s).data
- The value(s).- Throws:
DBusException
-
align
public int align(int current, byte type) Align a counter to the given type.- Parameters:
current
- The current counter.type
- The type to align to.- Returns:
- The new, aligned, counter.
-
extract
Demarshall values from a buffer.- Parameters:
sig
- The D-Bus signature(s) of the value(s).buf
- The buffer to demarshall from.ofs
- The offset into the data buffer to start.- Returns:
- The demarshalled value(s).
- Throws:
DBusException
-
extract
Demarshall values from a buffer.- Parameters:
sig
- The D-Bus signature(s) of the value(s).buf
- The buffer to demarshall from.ofs
- An array of two ints, the offset into the signature and the offset into the data buffer. These values will be updated to the start of the next value ofter demarshalling.- Returns:
- The demarshalled value(s).
- Throws:
DBusException
-
getSource
Returns the Bus ID that sent the message. -
getDestination
Returns the destination of the message. -
getInterface
Returns the interface of the message. -
getPath
Returns the object path of the message. -
getName
Returns the member name or error name this message represents. -
getSig
Returns the dbus signature of the parameters. -
getFlags
public int getFlags()Returns the message flags. -
getSerial
public long getSerial()Returns the message serial ID (unique for this connection)- Returns:
- the message serial.
-
getReplySerial
public long getReplySerial()If this is a reply to a message, this returns its serial.- Returns:
- The reply serial, or 0 if it is not a reply.
-
getParameters
Parses and returns the parameters to this message as an Object array.- Throws:
DBusException
-
setArgs
-
setSource
Warning, do not use this method unless you really know what you are doing.- Throws:
DBusException
-