1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */
3 /* This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 #ifndef mozilla_dom_PaymentActionResponse_h
8 #define mozilla_dom_PaymentActionResponse_h
10 #include "nsIPaymentActionResponse.h"
15 class PaymentRequestParent
;
17 class PaymentResponseData
: public nsIPaymentResponseData
{
20 NS_DECL_NSIPAYMENTRESPONSEDATA
22 PaymentResponseData() = default;
25 virtual ~PaymentResponseData() = default;
30 class GeneralResponseData final
: public PaymentResponseData
,
31 public nsIGeneralResponseData
{
33 NS_DECL_ISUPPORTS_INHERITED
34 NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
35 NS_DECL_NSIGENERALRESPONSEDATA
37 GeneralResponseData();
40 ~GeneralResponseData() = default;
45 class BasicCardResponseData final
: public nsIBasicCardResponseData
,
46 public PaymentResponseData
{
48 NS_DECL_ISUPPORTS_INHERITED
49 NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
50 NS_DECL_NSIBASICCARDRESPONSEDATA
52 BasicCardResponseData();
55 ~BasicCardResponseData() = default;
57 nsString mCardholderName
;
59 nsString mExpiryMonth
;
61 nsString mCardSecurityCode
;
62 nsCOMPtr
<nsIPaymentAddress
> mBillingAddress
;
65 class PaymentActionResponse
: public nsIPaymentActionResponse
{
68 NS_DECL_NSIPAYMENTACTIONRESPONSE
70 PaymentActionResponse();
73 virtual ~PaymentActionResponse() = default;
79 class PaymentCanMakeActionResponse final
80 : public nsIPaymentCanMakeActionResponse
,
81 public PaymentActionResponse
{
83 NS_DECL_ISUPPORTS_INHERITED
84 NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
85 NS_DECL_NSIPAYMENTCANMAKEACTIONRESPONSE
87 PaymentCanMakeActionResponse();
90 ~PaymentCanMakeActionResponse() = default;
95 class PaymentShowActionResponse final
: public nsIPaymentShowActionResponse
,
96 public PaymentActionResponse
{
98 NS_DECL_ISUPPORTS_INHERITED
99 NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
100 NS_DECL_NSIPAYMENTSHOWACTIONRESPONSE
102 PaymentShowActionResponse();
105 ~PaymentShowActionResponse() = default;
107 uint32_t mAcceptStatus
;
108 nsString mMethodName
;
109 nsCOMPtr
<nsIPaymentResponseData
> mData
;
111 nsString mPayerEmail
;
112 nsString mPayerPhone
;
115 class PaymentAbortActionResponse final
: public nsIPaymentAbortActionResponse
,
116 public PaymentActionResponse
{
118 NS_DECL_ISUPPORTS_INHERITED
119 NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
120 NS_DECL_NSIPAYMENTABORTACTIONRESPONSE
122 PaymentAbortActionResponse();
125 ~PaymentAbortActionResponse() = default;
127 uint32_t mAbortStatus
;
130 class PaymentCompleteActionResponse final
131 : public nsIPaymentCompleteActionResponse
,
132 public PaymentActionResponse
{
134 NS_DECL_ISUPPORTS_INHERITED
135 NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
136 NS_DECL_NSIPAYMENTCOMPLETEACTIONRESPONSE
138 PaymentCompleteActionResponse();
141 ~PaymentCompleteActionResponse() = default;
143 uint32_t mCompleteStatus
;
146 class MethodChangeDetails
: public nsIMethodChangeDetails
{
149 NS_DECL_NSIMETHODCHANGEDETAILS
151 MethodChangeDetails() = default;
154 virtual ~MethodChangeDetails() = default;
159 class GeneralMethodChangeDetails final
: public MethodChangeDetails
,
160 public nsIGeneralChangeDetails
{
162 NS_DECL_ISUPPORTS_INHERITED
163 NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
164 NS_DECL_NSIGENERALCHANGEDETAILS
166 GeneralMethodChangeDetails();
169 ~GeneralMethodChangeDetails() = default;
174 class BasicCardMethodChangeDetails final
: public MethodChangeDetails
,
175 public nsIBasicCardChangeDetails
{
177 NS_DECL_ISUPPORTS_INHERITED
178 NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
179 NS_DECL_NSIBASICCARDCHANGEDETAILS
181 BasicCardMethodChangeDetails();
184 ~BasicCardMethodChangeDetails() = default;
186 nsCOMPtr
<nsIPaymentAddress
> mBillingAddress
;
190 } // end of namespace mozilla