Thu, 22 Jan 2015 13:21:57 +0100
Incorporate requested changes from Mozilla in review:
https://bugzilla.mozilla.org/show_bug.cgi?id=1123480#c6
1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
4 * You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_dom_mobilemessage_Types_h
7 #define mozilla_dom_mobilemessage_Types_h
9 #include "IPCMessageUtils.h"
11 namespace mozilla {
12 namespace dom {
13 namespace mobilemessage {
15 // For MmsMessageData.state and SmsMessageData.deliveryState
16 // Please keep the following files in sync with enum below:
17 // mobile/android/base/GeckoSmsManager.java
18 enum DeliveryState {
19 eDeliveryState_Sent = 0,
20 eDeliveryState_Received,
21 eDeliveryState_Sending,
22 eDeliveryState_Error,
23 eDeliveryState_Unknown,
24 eDeliveryState_NotDownloaded,
25 // This state should stay at the end.
26 eDeliveryState_EndGuard
27 };
29 // For {Mms,Sms}MessageData.deliveryStatus.
30 enum DeliveryStatus {
31 eDeliveryStatus_NotApplicable = 0,
32 eDeliveryStatus_Success,
33 eDeliveryStatus_Pending,
34 eDeliveryStatus_Error,
35 eDeliveryStatus_Reject,
36 eDeliveryStatus_Manual,
37 // This state should stay at the end.
38 eDeliveryStatus_EndGuard
39 };
41 // For MmsMessageData.readStatus.
42 enum ReadStatus {
43 eReadStatus_NotApplicable = 0,
44 eReadStatus_Success,
45 eReadStatus_Pending,
46 eReadStatus_Error,
47 // This state should stay at the end.
48 eReadStatus_EndGuard
49 };
51 // For {Mms,Sms}FilterData.read.
52 enum ReadState {
53 eReadState_Unknown = -1,
54 eReadState_Unread,
55 eReadState_Read,
56 // This state should stay at the end.
57 eReadState_EndGuard
58 };
60 // For {Mms,Sms}FilterData.messageClass.
61 enum MessageClass {
62 eMessageClass_Normal = 0,
63 eMessageClass_Class0,
64 eMessageClass_Class1,
65 eMessageClass_Class2,
66 eMessageClass_Class3,
67 // This state should stay at the end.
68 eMessageClass_EndGuard
69 };
71 // For ThreadData.
72 enum MessageType {
73 eMessageType_SMS = 0,
74 eMessageType_MMS,
75 // This state should stay at the end.
76 eMessageType_EndGuard
77 };
79 } // namespace mobilemessage
80 } // namespace dom
81 } // namespace mozilla
83 namespace IPC {
85 /**
86 * Delivery state serializer.
87 */
88 template <>
89 struct ParamTraits<mozilla::dom::mobilemessage::DeliveryState>
90 : public ContiguousEnumSerializer<
91 mozilla::dom::mobilemessage::DeliveryState,
92 mozilla::dom::mobilemessage::eDeliveryState_Sent,
93 mozilla::dom::mobilemessage::eDeliveryState_EndGuard>
94 {};
96 /**
97 * Delivery status serializer.
98 */
99 template <>
100 struct ParamTraits<mozilla::dom::mobilemessage::DeliveryStatus>
101 : public ContiguousEnumSerializer<
102 mozilla::dom::mobilemessage::DeliveryStatus,
103 mozilla::dom::mobilemessage::eDeliveryStatus_NotApplicable,
104 mozilla::dom::mobilemessage::eDeliveryStatus_EndGuard>
105 {};
107 /**
108 * Read status serializer.
109 */
110 template <>
111 struct ParamTraits<mozilla::dom::mobilemessage::ReadStatus>
112 : public ContiguousEnumSerializer<
113 mozilla::dom::mobilemessage::ReadStatus,
114 mozilla::dom::mobilemessage::eReadStatus_NotApplicable,
115 mozilla::dom::mobilemessage::eReadStatus_EndGuard>
116 {};
118 /**
119 * Read state serializer.
120 */
121 template <>
122 struct ParamTraits<mozilla::dom::mobilemessage::ReadState>
123 : public ContiguousEnumSerializer<
124 mozilla::dom::mobilemessage::ReadState,
125 mozilla::dom::mobilemessage::eReadState_Unknown,
126 mozilla::dom::mobilemessage::eReadState_EndGuard>
127 {};
129 /**
130 * Message class serializer.
131 */
132 template <>
133 struct ParamTraits<mozilla::dom::mobilemessage::MessageClass>
134 : public ContiguousEnumSerializer<
135 mozilla::dom::mobilemessage::MessageClass,
136 mozilla::dom::mobilemessage::eMessageClass_Normal,
137 mozilla::dom::mobilemessage::eMessageClass_EndGuard>
138 {};
140 /**
141 * MessageType class serializer.
142 */
143 template <>
144 struct ParamTraits<mozilla::dom::mobilemessage::MessageType>
145 : public ContiguousEnumSerializer<
146 mozilla::dom::mobilemessage::MessageType,
147 mozilla::dom::mobilemessage::eMessageType_SMS,
148 mozilla::dom::mobilemessage::eMessageType_EndGuard>
149 {};
151 } // namespace IPC
153 #endif // mozilla_dom_mobilemessage_Types_h