50 }
catch (SocketTimeoutException STe) {
53 if (-1 == rv)
throw new EOFException(getString(
"transportReturnedEOF"));
56 if (
len[0] == 0)
return null;
58 if (Debug.debug) Debug.print(Debug.DEBUG,
"Only got " +
len[0] +
" of 12 bytes of header");
65 byte protover =
buf[3];
66 if (protover > Message.PROTOCOL) {
68 throw new MessageProtocolVersionException(MessageFormat.format(getString(
"protocolVersionUnsupported"),
new Object[]{protover}));
79 }
catch (SocketTimeoutException STe) {
82 if (-1 == rv)
throw new EOFException(getString(
"transportReturnedEOF"));
86 if (Debug.debug) Debug.print(Debug.DEBUG,
"Only got " +
len[1] +
" of 4 bytes of header");
93 headerlen = (int) Message.demarshallint(
tbuf, 0, endian, 4);
94 if (0 != headerlen % 8)
95 headerlen += 8 - (headerlen % 8);
97 headerlen =
header.length - 8;
101 header =
new byte[headerlen + 8];
105 if (
len[2] < headerlen) {
108 }
catch (SocketTimeoutException STe) {
111 if (-1 == rv)
throw new EOFException(getString(
"transportReturnedEOF"));
114 if (
len[2] < headerlen) {
115 if (Debug.debug) Debug.print(Debug.DEBUG,
"Only got " +
len[2] +
" of " + headerlen +
" bytes of header");
121 if (null ==
body) bodylen = (int) Message.demarshallint(
buf, 4, endian, 4);
123 body =
new byte[bodylen];
129 }
catch (SocketTimeoutException STe) {
132 if (-1 == rv)
throw new EOFException(getString(
"transportReturnedEOF"));
136 if (Debug.debug) Debug.print(Debug.DEBUG,
"Only got " +
len[3] +
" of " +
body.length +
" bytes of body");
142 case Message.MessageType.METHOD_CALL:
143 m =
new MethodCall();
145 case Message.MessageType.METHOD_RETURN:
146 m =
new MethodReturn();
148 case Message.MessageType.SIGNAL:
149 m =
new DBusSignal();
151 case Message.MessageType.ERROR:
155 throw new MessageTypeException(MessageFormat.format(getString(
"messageTypeUnsupported"),
new Object[]{type}));
158 Debug.print(Debug.VERBOSE, Hexdump.format(
buf));
159 Debug.print(Debug.VERBOSE, Hexdump.format(
tbuf));
160 Debug.print(Debug.VERBOSE, Hexdump.format(
header));
161 Debug.print(Debug.VERBOSE, Hexdump.format(
body));
165 }
catch (DBusException DBe) {
166 if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, DBe);
172 }
catch (RuntimeException Re) {
173 if (AbstractConnection.EXCEPTION_DEBUG && Debug.debug) Debug.print(Debug.ERR, Re);
181 Debug.print(Debug.INFO,
"=> " + m);
int [] len
Definition: MessageReader.java:34
byte [] tbuf
Definition: MessageReader.java:31
byte [] buf
Definition: MessageReader.java:30
byte [] header
Definition: MessageReader.java:32
byte [] body
Definition: MessageReader.java:33
InputStream in
Definition: MessageReader.java:29