Bumping manifests a=b2g-bump
[gecko.git] / dom / mobilemessage / MobileMessageManager.h
blobbf8ebc2d9d07624e7659a28510b6d39716de1f87
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
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
6 #ifndef mozilla_dom_mobilemessage_MobileMessageManager_h
7 #define mozilla_dom_mobilemessage_MobileMessageManager_h
9 #include "mozilla/Attributes.h"
10 #include "mozilla/DOMEventTargetHelper.h"
11 #include "nsIObserver.h"
13 class nsISmsService;
14 class nsIDOMMozSmsMessage;
15 class nsIDOMMozMmsMessage;
17 namespace mozilla {
18 namespace dom {
20 class Promise;
21 class DOMRequest;
22 class DOMCursor;
23 struct MmsParameters;
24 struct MmsSendParameters;
25 struct MobileMessageFilter;
26 class OwningLongOrMozSmsMessageOrMozMmsMessage;
27 struct SmsSendParameters;
28 struct SmscAddress;
30 class MobileMessageManager MOZ_FINAL : public DOMEventTargetHelper
31 , public nsIObserver
33 public:
34 NS_DECL_ISUPPORTS_INHERITED
35 NS_DECL_NSIOBSERVER
37 NS_REALLY_FORWARD_NSIDOMEVENTTARGET(DOMEventTargetHelper)
39 explicit MobileMessageManager(nsPIDOMWindow* aWindow);
41 void Init();
42 void Shutdown();
44 nsPIDOMWindow*
45 GetParentObject() const { return GetOwner(); }
47 // WrapperCache
48 virtual JSObject*
49 WrapObject(JSContext* aCx) MOZ_OVERRIDE;
51 // WebIDL Interface
52 already_AddRefed<DOMRequest>
53 GetSegmentInfoForText(const nsAString& aText,
54 ErrorResult& aRv);
56 already_AddRefed<DOMRequest>
57 Send(const nsAString& aNumber,
58 const nsAString& aText,
59 const SmsSendParameters& aSendParams,
60 ErrorResult& aRv);
62 void
63 Send(const Sequence<nsString>& aNumbers,
64 const nsAString& aText,
65 const SmsSendParameters& aSendParams,
66 nsTArray<nsRefPtr<DOMRequest>>& aReturn,
67 ErrorResult& aRv);
69 already_AddRefed<DOMRequest>
70 SendMMS(const MmsParameters& aParameters,
71 const MmsSendParameters& aSendParams,
72 ErrorResult& aRv);
74 already_AddRefed<DOMRequest>
75 GetMessage(int32_t aId,
76 ErrorResult& aRv);
78 already_AddRefed<DOMRequest>
79 Delete(int32_t aId,
80 ErrorResult& aRv);
82 already_AddRefed<DOMRequest>
83 Delete(nsIDOMMozSmsMessage* aMessage,
84 ErrorResult& aRv);
86 already_AddRefed<DOMRequest>
87 Delete(nsIDOMMozMmsMessage* aMessage,
88 ErrorResult& aRv);
90 already_AddRefed<DOMRequest>
91 Delete(const Sequence<OwningLongOrMozSmsMessageOrMozMmsMessage>& aParams,
92 ErrorResult& aRv);
94 already_AddRefed<DOMCursor>
95 GetMessages(const MobileMessageFilter& aFilter,
96 bool aReverse,
97 ErrorResult& aRv);
99 already_AddRefed<DOMRequest>
100 MarkMessageRead(int32_t aId,
101 bool aRead,
102 bool aSendReadReport,
103 ErrorResult& aRv);
105 already_AddRefed<DOMCursor>
106 GetThreads(ErrorResult& aRv);
108 already_AddRefed<DOMRequest>
109 RetrieveMMS(int32_t aId,
110 ErrorResult& aRv);
112 already_AddRefed<DOMRequest>
113 RetrieveMMS(nsIDOMMozMmsMessage* aMessage,
114 ErrorResult& aRv);
116 already_AddRefed<DOMRequest>
117 GetSmscAddress(const Optional<uint32_t>& aServiceId,
118 ErrorResult& aRv);
120 already_AddRefed<Promise>
121 SetSmscAddress(const SmscAddress& aSmscAddress,
122 const Optional<uint32_t>& aServiceId,
123 ErrorResult& aRv);
125 IMPL_EVENT_HANDLER(received)
126 IMPL_EVENT_HANDLER(retrieving)
127 IMPL_EVENT_HANDLER(sending)
128 IMPL_EVENT_HANDLER(sent)
129 IMPL_EVENT_HANDLER(failed)
130 IMPL_EVENT_HANDLER(deliverysuccess)
131 IMPL_EVENT_HANDLER(deliveryerror)
132 IMPL_EVENT_HANDLER(readsuccess)
133 IMPL_EVENT_HANDLER(readerror)
134 IMPL_EVENT_HANDLER(deleted)
136 private:
137 ~MobileMessageManager() {}
140 * Internal Send() method used to send one message.
142 already_AddRefed<DOMRequest>
143 Send(nsISmsService* aSmsService,
144 uint32_t aServiceId,
145 const nsAString& aNumber,
146 const nsAString& aText,
147 ErrorResult& aRv);
149 already_AddRefed<DOMRequest>
150 Delete(int32_t* aIdArray,
151 uint32_t aSize,
152 ErrorResult& aRv);
154 nsresult
155 DispatchTrustedSmsEventToSelf(const char* aTopic,
156 const nsAString& aEventName,
157 nsISupports* aMsg);
159 nsresult
160 DispatchTrustedDeletedEventToSelf(nsISupports* aDeletedInfo);
163 * Helper to get message ID from SMS/MMS Message object
165 nsresult
166 GetMessageId(JSContext* aCx,
167 const JS::Value& aMessage,
168 int32_t* aId);
171 } // namespace dom
172 } // namespace mozilla
174 #endif // mozilla_dom_mobilemessage_MobileMessageManager_h