chrome: dbus: add default MessageReader constructor

There's no need for a dbus::MessageReader to be initialized with
a message, the underlying DBusMessageIter is fully initialized by
dbus_message_iter_recurse() as called by PopArray, etc.

This allows for:

  dbus::MessageReader reader;
  other_reader->PopArray(&reader);

BUG=none
TEST=verified with arrays, variants and dictionary types.

Change-Id: Id4a9d2de2b28ec3a2da42f822934a39865d9e9ef


Review URL: http://codereview.chromium.org/9342009

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@120864 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/dbus/message.h b/dbus/message.h
index ceeb0ed..a4b0f9b 100644
--- a/dbus/message.h
+++ b/dbus/message.h
@@ -1,4 +1,4 @@
-// Copyright (c) 2011 The Chromium Authors. All rights reserved.
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
@@ -240,8 +240,9 @@
 //
 class MessageWriter {
  public:
-  // Data added with Append* will be written to |message|.
-  MessageWriter(Message* message);
+  // Data added with Append* will be written to |message|, which may be NULL
+  // to create a sub-writer for passing to OpenArray, etc.
+  explicit MessageWriter(Message* message);
   ~MessageWriter();
 
   // Appends a byte to the message.
@@ -331,8 +332,9 @@
 // starting with Pop advance the iterator on success.
 class MessageReader {
  public:
-  // The data will be read from the given message.
-  MessageReader(Message* message);
+  // The data will be read from the given |message|, which may be NULL to
+  // create a sub-reader for passing to PopArray, etc.
+  explicit MessageReader(Message* message);
   ~MessageReader();
 
   // Returns true if the reader has more data to read. The function is