DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Implementation

Mercurial (b6d82b1a6b02)

VCS Links

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* 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_PaymentActionResponse_h
#define mozilla_dom_PaymentActionResponse_h

#include "nsIPaymentActionResponse.h"

namespace mozilla {
namespace dom {

class PaymentRequestParent;

class PaymentResponseData : public nsIPaymentResponseData {
 public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPAYMENTRESPONSEDATA

  PaymentResponseData() = default;

 protected:
  virtual ~PaymentResponseData() = default;

  uint32_t mType;
};

class GeneralResponseData final : public PaymentResponseData,
                                  public nsIGeneralResponseData {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
  NS_DECL_NSIGENERALRESPONSEDATA

  GeneralResponseData();

 private:
  ~GeneralResponseData() = default;

  nsString mData;
};

class BasicCardResponseData final : public nsIBasicCardResponseData,
                                    public PaymentResponseData {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTRESPONSEDATA(PaymentResponseData::)
  NS_DECL_NSIBASICCARDRESPONSEDATA

  BasicCardResponseData();

 private:
  ~BasicCardResponseData() = default;

  nsString mCardholderName;
  nsString mCardNumber;
  nsString mExpiryMonth;
  nsString mExpiryYear;
  nsString mCardSecurityCode;
  nsCOMPtr<nsIPaymentAddress> mBillingAddress;
};

class PaymentActionResponse : public nsIPaymentActionResponse {
 public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIPAYMENTACTIONRESPONSE

  PaymentActionResponse();

 protected:
  virtual ~PaymentActionResponse() = default;

  nsString mRequestId;
  uint32_t mType;
};

class PaymentCanMakeActionResponse final
    : public nsIPaymentCanMakeActionResponse,
      public PaymentActionResponse {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTCANMAKEACTIONRESPONSE

  PaymentCanMakeActionResponse();

 private:
  ~PaymentCanMakeActionResponse() = default;

  bool mResult;
};

class PaymentShowActionResponse final : public nsIPaymentShowActionResponse,
                                        public PaymentActionResponse {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTSHOWACTIONRESPONSE

  PaymentShowActionResponse();

 private:
  ~PaymentShowActionResponse() = default;

  uint32_t mAcceptStatus;
  nsString mMethodName;
  nsCOMPtr<nsIPaymentResponseData> mData;
  nsString mPayerName;
  nsString mPayerEmail;
  nsString mPayerPhone;
};

class PaymentAbortActionResponse final : public nsIPaymentAbortActionResponse,
                                         public PaymentActionResponse {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTABORTACTIONRESPONSE

  PaymentAbortActionResponse();

 private:
  ~PaymentAbortActionResponse() = default;

  uint32_t mAbortStatus;
};

class PaymentCompleteActionResponse final
    : public nsIPaymentCompleteActionResponse,
      public PaymentActionResponse {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIPAYMENTACTIONRESPONSE(PaymentActionResponse::)
  NS_DECL_NSIPAYMENTCOMPLETEACTIONRESPONSE

  PaymentCompleteActionResponse();

 private:
  ~PaymentCompleteActionResponse() = default;

  uint32_t mCompleteStatus;
};

class MethodChangeDetails : public nsIMethodChangeDetails {
 public:
  NS_DECL_ISUPPORTS
  NS_DECL_NSIMETHODCHANGEDETAILS

  MethodChangeDetails() = default;

 protected:
  virtual ~MethodChangeDetails() = default;

  uint32_t mType;
};

class GeneralMethodChangeDetails final : public MethodChangeDetails,
                                         public nsIGeneralChangeDetails {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
  NS_DECL_NSIGENERALCHANGEDETAILS

  GeneralMethodChangeDetails();

 private:
  ~GeneralMethodChangeDetails() = default;

  nsString mDetails;
};

class BasicCardMethodChangeDetails final : public MethodChangeDetails,
                                           public nsIBasicCardChangeDetails {
 public:
  NS_DECL_ISUPPORTS_INHERITED
  NS_FORWARD_NSIMETHODCHANGEDETAILS(MethodChangeDetails::)
  NS_DECL_NSIBASICCARDCHANGEDETAILS

  BasicCardMethodChangeDetails();

 private:
  ~BasicCardMethodChangeDetails() = default;

  nsCOMPtr<nsIPaymentAddress> mBillingAddress;
};

}  // namespace dom
}  // end of namespace mozilla

#endif