diff -r 000000000000 -r 6474c204b198 dom/mobilemessage/src/Types.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dom/mobilemessage/src/Types.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,153 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this file, + * You can obtain one at http://mozilla.org/MPL/2.0/. */ + +#ifndef mozilla_dom_mobilemessage_Types_h +#define mozilla_dom_mobilemessage_Types_h + +#include "IPCMessageUtils.h" + +namespace mozilla { +namespace dom { +namespace mobilemessage { + +// For MmsMessageData.state and SmsMessageData.deliveryState +// Please keep the following files in sync with enum below: +// mobile/android/base/GeckoSmsManager.java +enum DeliveryState { + eDeliveryState_Sent = 0, + eDeliveryState_Received, + eDeliveryState_Sending, + eDeliveryState_Error, + eDeliveryState_Unknown, + eDeliveryState_NotDownloaded, + // This state should stay at the end. + eDeliveryState_EndGuard +}; + +// For {Mms,Sms}MessageData.deliveryStatus. +enum DeliveryStatus { + eDeliveryStatus_NotApplicable = 0, + eDeliveryStatus_Success, + eDeliveryStatus_Pending, + eDeliveryStatus_Error, + eDeliveryStatus_Reject, + eDeliveryStatus_Manual, + // This state should stay at the end. + eDeliveryStatus_EndGuard +}; + +// For MmsMessageData.readStatus. +enum ReadStatus { + eReadStatus_NotApplicable = 0, + eReadStatus_Success, + eReadStatus_Pending, + eReadStatus_Error, + // This state should stay at the end. + eReadStatus_EndGuard +}; + +// For {Mms,Sms}FilterData.read. +enum ReadState { + eReadState_Unknown = -1, + eReadState_Unread, + eReadState_Read, + // This state should stay at the end. + eReadState_EndGuard +}; + +// For {Mms,Sms}FilterData.messageClass. +enum MessageClass { + eMessageClass_Normal = 0, + eMessageClass_Class0, + eMessageClass_Class1, + eMessageClass_Class2, + eMessageClass_Class3, + // This state should stay at the end. + eMessageClass_EndGuard +}; + +// For ThreadData. +enum MessageType { + eMessageType_SMS = 0, + eMessageType_MMS, + // This state should stay at the end. + eMessageType_EndGuard +}; + +} // namespace mobilemessage +} // namespace dom +} // namespace mozilla + +namespace IPC { + +/** + * Delivery state serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::DeliveryState, + mozilla::dom::mobilemessage::eDeliveryState_Sent, + mozilla::dom::mobilemessage::eDeliveryState_EndGuard> +{}; + +/** + * Delivery status serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::DeliveryStatus, + mozilla::dom::mobilemessage::eDeliveryStatus_NotApplicable, + mozilla::dom::mobilemessage::eDeliveryStatus_EndGuard> +{}; + +/** + * Read status serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::ReadStatus, + mozilla::dom::mobilemessage::eReadStatus_NotApplicable, + mozilla::dom::mobilemessage::eReadStatus_EndGuard> +{}; + +/** + * Read state serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::ReadState, + mozilla::dom::mobilemessage::eReadState_Unknown, + mozilla::dom::mobilemessage::eReadState_EndGuard> +{}; + +/** + * Message class serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::MessageClass, + mozilla::dom::mobilemessage::eMessageClass_Normal, + mozilla::dom::mobilemessage::eMessageClass_EndGuard> +{}; + +/** + * MessageType class serializer. + */ +template <> +struct ParamTraits + : public ContiguousEnumSerializer< + mozilla::dom::mobilemessage::MessageType, + mozilla::dom::mobilemessage::eMessageType_SMS, + mozilla::dom::mobilemessage::eMessageType_EndGuard> +{}; + +} // namespace IPC + +#endif // mozilla_dom_mobilemessage_Types_h