buffet: Expose RegistrationStatus over DBus

This new property lets applications monitor Buffet's connection to
cloud services.

BUG=brillo:16
TEST=Unittests, buffet_Registration has been expanded appropriately.
CQ-DEPEND=CL:*199337
Change-Id: I30253e8199cb65068a74dd8b780a8ab0954bf9fa
Reviewed-on: https://chromium-review.googlesource.com/250011
Reviewed-by: Alex Vakulenko <avakulenko@chromium.org>
Tested-by: Christopher Wiley <wiley@chromium.org>
Commit-Queue: Christopher Wiley <wiley@chromium.org>
diff --git a/buffet/registration_status.h b/buffet/registration_status.h
new file mode 100644
index 0000000..fa2e2cb
--- /dev/null
+++ b/buffet/registration_status.h
@@ -0,0 +1,25 @@
+// Copyright 2015 The Chromium OS Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef BUFFET_REGISTRATION_STATUS_H_
+#define BUFFET_REGISTRATION_STATUS_H_
+
+#include <string>
+
+namespace buffet {
+
+// See the DBus interface XML file for complete descriptions of these states.
+enum class RegistrationStatus {
+  kOffline,  // We have credentials but are offline.
+  kCloudError,  // We're online, but can't talk to cloud services.
+  kUnregistered,  // We have no credentials.
+  kRegistering,  // We've just been given credentials.
+  kRegistered,  // We're registered and online.
+};
+
+std::string StatusToString(RegistrationStatus status);
+
+}  // namespace buffet
+
+#endif  // BUFFET_REGISTRATION_STATUS_H_