summaryrefslogtreecommitdiff
path: root/chromium/components/gcm_driver/common/gcm_message.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/gcm_driver/common/gcm_message.h')
-rw-r--r--chromium/components/gcm_driver/common/gcm_message.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/chromium/components/gcm_driver/common/gcm_message.h b/chromium/components/gcm_driver/common/gcm_message.h
new file mode 100644
index 00000000000..0226934616b
--- /dev/null
+++ b/chromium/components/gcm_driver/common/gcm_message.h
@@ -0,0 +1,56 @@
+// Copyright 2015 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.
+
+#ifndef COMPONENTS_GCM_DRIVER_COMMON_GCM_MESSAGE_H_
+#define COMPONENTS_GCM_DRIVER_COMMON_GCM_MESSAGE_H_
+
+#include <map>
+#include <string>
+
+#include "components/gcm_driver/common/gcm_driver_export.h"
+
+namespace gcm {
+
+// Message data consisting of key-value pairs.
+using MessageData = std::map<std::string, std::string>;
+
+// Message to be delivered to the other party.
+struct GCM_DRIVER_EXPORT OutgoingMessage {
+ OutgoingMessage();
+ OutgoingMessage(const OutgoingMessage& other);
+ ~OutgoingMessage();
+
+ // Message ID.
+ std::string id;
+ // In seconds.
+ int time_to_live = kMaximumTTL;
+ MessageData data;
+
+ static const int kMaximumTTL;
+};
+
+// Message being received from the other party.
+struct GCM_DRIVER_EXPORT IncomingMessage {
+ IncomingMessage();
+ IncomingMessage(const IncomingMessage& other);
+ IncomingMessage(IncomingMessage&& other);
+ ~IncomingMessage();
+
+ IncomingMessage& operator=(const IncomingMessage& other);
+ IncomingMessage& operator=(IncomingMessage&& other);
+
+ MessageData data;
+ std::string collapse_key;
+ std::string sender_id;
+ std::string message_id;
+ std::string raw_data;
+
+ // Whether the contents of the message have been decrypted, and are
+ // available in |raw_data|.
+ bool decrypted = false;
+};
+
+} // namespace gcm
+
+#endif // COMPONENTS_GCM_DRIVER_COMMON_GCM_MESSAGE_H_